ELLIPTIC CURVE CRYPTOGRAPHY. JAVA PLATFORM IMPLEMENTATIONS V. Gayoso Martínez 1 , L. Hernández Encinas 1 , C. Sánchez Ávila 2 1 Departamento Tratamiento de la Información y Codificación Instituto de Física Aplicada. CSIC, Madrid {victor.gayoso, luis}@iec.csic.es 2 Departamento de Matemática Aplicadas a las Tecnologías de la Información ETSI Telecomunicación, Univ. Politécnica de Madrid, Madrid csa@mat.upm.es Spain Abstract: Elliptic Curve Cryptography (ECC) is one of the most interesting systems for protecting sensitive information nowadays. The latest versions of the Java Platform include classes and interfaces making ECC available to programmers, but due to the nature of Java it is still necessary to employ additional third party packages in order to use cryptographic operations and procedures related to ECC. In the present work, an extensive review of the most important ECC implementations in Java is presented. Key words: Elliptic Curve Cryptography, Java Platform, ECDSA, ECDH, ECIES. 1. INTRODUCTION 1.1. Public key cryptography Since the development of public key cryptography by Whitfield Diffie and Martin Hellman in 1976 [1], several cryptosystems have been proposed. The most important features to be requested to a cryptosystem are security and efficiency, and in general, both characteristics depend on the mathematical problem on which it is based. The list of problems that are considered computationally infeasible to solve includes the integer factorization problem (IFP), the discrete logarithm problem (DLP), and the elliptic curve discrete logarithm problem (ECDLP). In 1985, Victor Miller [2] and Neal Koblitz [3] independently proposed a cryptosystem based on elliptic curves, whose security relies on the ECDLP problem. Elliptic Curve Cryptography (ECC) can be applied to data encryption and decryption, as well as to the creation and verification of digital signatures. This paper has been presented in the Plenary Session of the International Conference on Information Technologies (InfoTech-2009), Bulgaria, 17-20 September 2009.