Elliptic Curves and Their Applications to Cryptography: An Introduction