Algebraic Curves and Finite Fields: Cryptography and Other Applications