@techreport{TR-IC-00-10, number = {IC-00-10}, author = {Julio López and Ricardo Dahab}, title = {An Overview of Elliptic Curve Cryptography}, month = {May}, year = {2000}, institution = {Institute of Computing, University of Campinas}, note = {In English, 34 pages. \par\selectlanguage{english}\textbf{Abstract} Elliptic curve cryptography (ECC) was introduced by Victor Miller and Neal Koblitz in 1985. ECC, proposed as an alternative to established public-key systems such as DSA and RSA, has recently gained a lot attention in industry and academia. The main reason for the attractiveness of ECC is the fact that there is no sub-exponential algorithm known to solve the discrete logarithm problem on a properly chosen elliptic curve. This means that significantly smaller parameters can be used in ECC than in other competitive systems such RSA and DSA, but with equivalent levels of security. Some benefits of having smaller key sizes include faster computations, and reductions in processing power, storage space and bandwidth. This makes ECC ideal for constrained environments such as pagers, PDAs, cellular phones and smart cards. The implementation of ECC, on the other hand, requires several choices such as the type of the underlying finite field, algorithms for implementing the finite field arithmetic, the type of elliptic curve, algorithms for implementing the elliptic group operation, and elliptic curve protocols. Many of these selections may have a major impact on the overall performance. In this paper we present a selective overview of the main methods and techniques used for practical implementations of elliptic curve cryptosystems. We also present a summary of the most recent reported software implementations of ECC. } }