Skip to main content

Fast Elliptic Curve Cryptography in OpenSSL

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNSC,volume 7126))

Abstract

We present a 64-bit optimized implementation of the NIST and SECG-standardized elliptic curve P-224. Our implementation is fully integrated into OpenSSL 1.0.1: full TLS handshakes using a 1024-bit RSA certificate and ephemeral Elliptic Curve Diffie-Hellman key exchange over P-224 now run at twice the speed of standard OpenSSL, while atomic elliptic curve operations are up to 4 times faster. In addition, our implementation is immune to timing attacks—most notably, we show how to do small table look-ups in a cache-timing resistant way, allowing us to use precomputation. To put our results in context, we also discuss the various security-performance trade-offs available to TLS applications.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Acıiçmez, O., Koç, Ç.K., Seifert, J.-P.: Predicting Secret Keys Via Branch Prediction. In: Abe, M. (ed.) CT-RSA 2007. LNCS, vol. 4377, pp. 225–242. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  2. Bernstein, D.J.: A software implementation of NIST P-224 (2001), http://cr.yp.to/nistp224.html

  3. 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)

    Chapter  Google Scholar 

  4. Bernstein, D.J., Chen, H.-C., Chen, M.-S., Cheng, C.-M., Hsiao, C.-H., Lange, T., Lin, Z.-C., Yang, B.-Y.: The billion-mulmod-per-second pc. In: Workshop record of SHARCS 2009: Special-purpose Hardware for Attacking Cryptographic Systems (2009)

    Google Scholar 

  5. Brown, M., Hankerson, D., López, J., Menezes, A.: Software Implementation of the NIST Elliptic Curves over Prime Fields. In: Naccache, D. (ed.) CT-RSA 2001. LNCS, vol. 2020, pp. 250–265. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  6. Brumley, B.B., Hakala, R.M.: Cache-Timing Template Attacks. In: Matsui, M. (ed.) ASIACRYPT 2009. LNCS, vol. 5912, pp. 667–684. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  7. Internet Engineering Task Force. Elliptic curve cryptography (ECC) cipher suites for transport layer security (TLS) (2006), http://www.ietf.org/rfc/rfc4492

  8. Internet Engineering Task Force. Transport layer security (TLS) session resumption without server-side state (2008), http://www.ietf.org/rfc/rfc5077

  9. 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)

    Chapter  Google Scholar 

  10. TLS Working Group. Transport layer security (TLS) false start, https://tools.ietf.org/html/draft-bmoeller-tls-falsestart-00

  11. ECRYPT II. eBACS: ECRYPT benchmarking of cryptographic systems, http://bench.cr.yp.to/supercop.html

  12. ECRYPT II. Yearly report on algorithms and keysizes (2010), D.SPA.13 Rev. 1.0, ICT-2007-216676 (2010), http://www.ecrypt.eu.org/documents/D.SPA.13.pdf

  13. Joye, M., Tunstall, M.: Exponent Recoding and Regular Exponentiation Algorithms. In: Preneel, B. (ed.) AFRICACRYPT 2009. LNCS, vol. 5580, pp. 334–349. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  14. Kocher, P.C.: Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and other Systems. In: Koblitz, N. (ed.) CRYPTO 1996. LNCS, vol. 1109, pp. 104–113. Springer, Heidelberg (1996)

    Google Scholar 

  15. Langley, A.: curve25519-donna: A 64-bit implementation of Curve25519, http://code.google.com/p/curve25519-donna/

  16. Möller, B.: Algorithms for Multi-Exponentiation. In: Vaudenay, S., Youssef, A.M. (eds.) SAC 2001. LNCS, vol. 2259, pp. 165–180. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  17. mozilla.org. Network Security Services, http://www.mozilla.org/projects/security/pki/nss/

  18. NIST. Recommendation for key management, special publication 800-57 part 1

    Google Scholar 

  19. The OpenSSL project. OpenSSL—cryptography and SSL/TLS toolkit, http://www.openssl.org

  20. Certicom Research. SEC 2: Recommended elliptic curve domain parameters (2010)

    Google Scholar 

  21. Ivan Ristic. Internet SSL survey. Technical report, Qualys, Black Hat USA (2010)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Käsper, E. (2012). Fast Elliptic Curve Cryptography in OpenSSL. In: Danezis, G., Dietrich, S., Sako, K. (eds) Financial Cryptography and Data Security. FC 2011. Lecture Notes in Computer Science, vol 7126. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29889-9_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-29889-9_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-29888-2

  • Online ISBN: 978-3-642-29889-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics