Abstract
The Micro Edition of the Java 2 platform (J2ME) provides an application environment specifically designed to address the demands of embedded devices like cell phones, PDAs or set-top boxes. Since the J2ME platform does not include a crypto package, developers are forced to use third-party classes or to implement all cryptographic primitives from scratch. However, most existing implementations of elliptic curve (EC) cryptography for J2ME do not perform well on resource-restricted devices, in most cases due to poor efficiency of the underlying arithmetic operations. In this paper we present an optimized Java implementation of EC scalar multiplication that combines efficient finite-field arithmetic with efficient group arithmetic. More precisely, our implementation uses a pseudo-Mersenne (PM) prime field for fast modular reduction and a Gallant-Lambert-Vanstone (GLV) curve with an efficiently computable endomorphism to speed up the scalar multiplication with random base points. Our experimental results show that a conventional mobile phone without Java acceleration, such as the Nokia 6610, is capable to execute a 174-bit scalar multiplication in roughly 400 msec, which is more than 45 times faster than the widely-used Bouncy Castle Lightweight Crypto API for J2ME.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
ARM Limited: JazelleTM– ARM® Architecture Extensions for Java Applications. White paper (October 2000), http://www.arm.com/armtech/jazelle?OpenDocument
Arnold, K., Gosling, J., Holmes, D.: The JavaTM Programming Language, 4th edn. Prentice Hall (2005)
Barrett, P.: Implementing the Rivest Shamir and Adleman Public Key Encryption Algorithm on a Standard Digital Signal Processor. In: Odlyzko, A.M. (ed.) CRYPTO 1986. LNCS, vol. 263, pp. 311–323. Springer, Heidelberg (1987)
Bernstein, D.J.: Curve25519: New Diffie-Hellman Speed Records. In: Yung, M., Dodis, Y., Kiayias, A., Malkin, T. (eds.) PKC 2006. LNCS, vol. 3958, pp. 207–228. Springer, Heidelberg (2006)
Cohen, H., Frey, G.: Handbook of Elliptic and Hyperelliptic Curve Cryptography, Discrete Mathematics and Its Applications, vol. 34. Chapmann & Hall\CRC (2006)
Comba, P.G.: Exponentiation cryptosystems on the IBM PC. IBM Systems Journal 29(4), 526–538 (1990)
Craig, I.D.: Virtual Machines. Springer (2006)
Cramer, T., Friedman, R., Miller, T., Seberger, D., Wilson, R., Wolczko, M.: Compiling Java just in time. IEEE Micro 17(3), 36–43 (1997)
Crandall, R.E.: Method and apparatus for public key exchange in a cryptographic system (October 1992), U.S. Patent No. 5,159,632
Edwards, H.M.: A normal form for elliptic curves. Bulletin of the American Mathematical Society 44(3), 393–422 (2007)
Galbraith, S.D., Lin, X., Scott, M.: Endomorphisms for Faster Elliptic Curve Cryptography on a Large Class of Curves. In: Joux, A. (ed.) EUROCRYPT 2009. LNCS, vol. 5479, pp. 518–535. Springer, Heidelberg (2009)
Gallant, R.P., Lambert, R.J., Vanstone, S.A.: Faster Point Multiplication on Elliptic Curves with Efficient Endomorphisms. In: Kilian, J. (ed.) CRYPTO 2001. LNCS, vol. 2139, pp. 190–200. Springer, Heidelberg (2001)
Gosling, J., McGilton, H.: The JavaTM Language Environment. White paper. Sun Microsystems, Inc., Mountain View (1996)
Großschädl, J., Avanzi, R.M., Savaş, E., Tillich, S.: Energy-Efficient Software Implementation of Long Integer Modular Arithmetic. In: Rao, J.R., Sunar, B. (eds.) CHES 2005. LNCS, vol. 3659, pp. 75–90. Springer, Heidelberg (2005)
Hankerson, D.R., Menezes, A.J., Vanstone, S.A.: Guide to Elliptic Curve Cryptography. Springer (2004)
Hennessy, J.L., Jouppi, N.P., Baskett, F., Gross, T.R., Gill, J.: Hardware/software tradeoffs for increased performance. In: Proceedings of the 1st International Symposium on Architectural Support for Programming Languages and Operating Systems (ASPLOS 1982), pp. 2–11. ACM Press (1982)
Institute of Electrical and Electronics Engineers (IEEE): IEEE Std 1363-2000: IEEE Standard Specifications for Public-Key Cryptography (August 2000)
Koblitz, N.: CM-Curves with Good Cryptographic Properties. In: Feigenbaum, J. (ed.) CRYPTO 1991. LNCS, vol. 576, pp. 279–287. Springer, Heidelberg (1992)
Menezes, A.J., van Oorschot, P.C., Vanstone, S.A.: Handbook of Applied Cryptography. CRC Press (1996)
Möller, B.: Securing Elliptic Curve Point Multiplication against Side-Channel Attacks. In: Davida, G.I., Frankel, Y. (eds.) ISC 2001. LNCS, vol. 2200, pp. 324–334. Springer, Heidelberg (2001)
Montgomery, P.L.: Speeding the Pollard and elliptic curve methods of factorization. Mathematics of Computation 48(177), 243–264 (1987)
Smart, N.P. (ed.): ECRYPT II Yearly Report on Algorithms and Keysizes (2009-2010). European Network of Excellence in Cryptology (ECRYPT II) (March 2010), deliverable D.SPA.13, http://www.ecrypt.eu.org/documents/D.SPA.13.pdf
Solinas, J.A.: Low-weight binary representations for pairs of integers. Tech. Rep. CORR 2001-41, Centre for Applied Cryptographic Research (CACR), University of Waterloo, Waterloo, Canada (2001)
Standards for Efficient Cryptography Group (SECG): SEC 1: Elliptic Curve Cryptography (May 2009), http://www.secg.org
Stiftung Secure Information and Communication Technologies (SIC): IAIK JCE Micro Edition (Version 3.04) (September 2006), http://jce.iaik.tugraz.at/sic/Products/Mobile-Security/JCE-ME
The Legion of the Bouncy Castle: Lightweight Cryptography API (Release 1.47) (March 2012), http://www.bouncycastle.org
Tillich, S., Großschädl, J.: A Survey of Public-Key Cryptography on J2ME-Enabled Mobile Devices. In: Aykanat, C., Dayar, T., Körpeoğlu, İ. (eds.) ISCIS 2004. LNCS, vol. 3280, pp. 935–944. Springer, Heidelberg (2004)
White, J.P., Hemphill, D.A.: Java 2 Micro Edition. Manning Publications (2002)
Wiener, M.J., Zuccherato, R.J.: Faster Attacks on Elliptic Curve Cryptosystems. In: Tavares, S., Meijer, H. (eds.) SAC 1998. LNCS, vol. 1556, pp. 190–200. Springer, Heidelberg (1999)
Yanık, T., Savaş, E., Koç, Ç.K.: Incomplete reduction in modular arithmetic. IEE Proceedings – Computers and Digital Techniques 149(2), 46–52 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 IFIP International Federation for Information Processing
About this paper
Cite this paper
Großschädl, J., Page, D., Tillich, S. (2012). Efficient Java Implementation of Elliptic Curve Cryptography for J2ME-Enabled Mobile Devices. In: Askoxylakis, I., Pöhls, H.C., Posegga, J. (eds) Information Security Theory and Practice. Security, Privacy and Trust in Computing Systems and Ambient Intelligent Ecosystems. WISTP 2012. Lecture Notes in Computer Science, vol 7322. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30955-7_17
Download citation
DOI: https://doi.org/10.1007/978-3-642-30955-7_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-30954-0
Online ISBN: 978-3-642-30955-7
eBook Packages: Computer ScienceComputer Science (R0)