| < draft-ietf-ipsecme-safecurves-03.txt | draft-ietf-ipsecme-safecurves-04.txt > | |||
|---|---|---|---|---|
| Network Working Group Y. Nir | Network Working Group Y. Nir | |||
| Internet-Draft Check Point | Internet-Draft Check Point | |||
| Intended status: Standards Track S. Josefsson | Intended status: Standards Track S. Josefsson | |||
| Expires: February 10, 2017 SJD | Expires: March 3, 2017 SJD | |||
| August 9, 2016 | August 30, 2016 | |||
| Curve25519 and Curve448 for IKEv2 Key Agreement | Curve25519 and Curve448 for IKEv2 Key Agreement | |||
| draft-ietf-ipsecme-safecurves-03 | draft-ietf-ipsecme-safecurves-04 | |||
| Abstract | Abstract | |||
| This document describes the use of Curve25519 and Curve448 for | This document describes the use of Curve25519 and Curve448 for | |||
| ephemeral key exchange in the Internet Key Exchange (IKEv2) protocol. | ephemeral key exchange in the Internet Key Exchange (IKEv2) protocol. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| skipping to change at page 1, line 32 ¶ | skipping to change at page 1, line 32 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on February 10, 2017. | This Internet-Draft will expire on March 3, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 30 ¶ | skipping to change at page 2, line 30 ¶ | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 1. Introduction | 1. Introduction | |||
| The "Elliptic Curves for Security" document [RFC7748] describes two | The "Elliptic Curves for Security" document [RFC7748] describes two | |||
| elliptic curves: Curve25519 and Curve448, as well as the X25519 and | elliptic curves: Curve25519 and Curve448, as well as the X25519 and | |||
| X448 functions for performing key agreement (Diffie-Hellman) | X448 functions for performing key agreement (Diffie-Hellman) | |||
| operations with these curves. The curves and functions are designed | operations with these curves. The curves and functions are designed | |||
| for both performance and security. | for both performance and security. | |||
| Almost ten years ago the "ECP Groups for IKE and IKEv2" document | Elliptic curve Diffie-Hellman [RFC5903] has been specified for the | |||
| [RFC4753] specified the first elliptic curve Diffie-Hellman groups | Internet Key Exchange (IKEv2 - [RFC7296]) for almost ten years. That | |||
| for the Internet Key Exchange protocol (IKEv2 - [RFC7296]). These | document specified the so-called NIST curves. The state of the art | |||
| were the so-called NIST curves. The state of the art has advanced | has advanced since then. More modern curves allow faster | |||
| since then. More modern curves allow faster implementations while | implementations while making it much easier to write constant-time | |||
| making it much easier to write constant-time implementations free | implementations free from time-based side-channel attacks. This | |||
| from time-based side-channel attacks. This document defines two such | document defines two such curves for use in IKE. See [Curve25519] | |||
| curves for use in IKE. See [Curve25519] for details about the speed | for details about the speed and security of the Curve25519 function. | |||
| and security of the Curve25519 function. | ||||
| 1.1. Conventions Used in This Document | 1.1. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| 2. Curve25519 & Curve448 | 2. Curve25519 & Curve448 | |||
| All cryptographic computations are done using the X25519 and X448 | All cryptographic computations are done using the X25519 and X448 | |||
| skipping to change at page 4, line 26 ¶ | skipping to change at page 4, line 26 ¶ | |||
| 4. Security Considerations | 4. Security Considerations | |||
| Curve25519 and Curve448 are designed to facilitate the production of | Curve25519 and Curve448 are designed to facilitate the production of | |||
| high-performance constant-time implementations. Implementors are | high-performance constant-time implementations. Implementors are | |||
| encouraged to use a constant-time implementation of the functions. | encouraged to use a constant-time implementation of the functions. | |||
| This point is of crucial importance if the implementation chooses to | This point is of crucial importance if the implementation chooses to | |||
| reuse its supposedly ephemeral key pair for many key exchanges, which | reuse its supposedly ephemeral key pair for many key exchanges, which | |||
| some implementations do in order to improve performance. | some implementations do in order to improve performance. | |||
| Curve25519 is intended for the ~128-bit security level, comparable to | Curve25519 is intended for the ~128-bit security level, comparable to | |||
| the 256-bit random ECP group (group 19) defined in RFC 4753, also | the 256-bit random ECP group (group 19) defined in RFC 5903, also | |||
| known as NIST P-256 or secp256r1. Curve448 is intended for the | known as NIST P-256 or secp256r1. Curve448 is intended for the | |||
| ~224-bit security level. | ~224-bit security level. | |||
| While the NIST curves are advertised as being chosen verifiably at | While the NIST curves are advertised as being chosen verifiably at | |||
| random, there is no explanation for the seeds used to generate them. | random, there is no explanation for the seeds used to generate them. | |||
| In contrast, the process used to pick these curves is fully | In contrast, the process used to pick these curves is fully | |||
| documented and rigid enough so that independent verification has been | documented and rigid enough so that independent verification has been | |||
| done. This is widely seen as a security advantage, since it prevents | done. This is widely seen as a security advantage, since it prevents | |||
| the generating party from maliciously manipulating the parameters. | the generating party from maliciously manipulating the parameters. | |||
| skipping to change at page 5, line 45 ¶ | skipping to change at page 5, line 45 ¶ | |||
| [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves | [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves | |||
| for Security", RFC 7748, January 2016. | for Security", RFC 7748, January 2016. | |||
| 7.2. Informative References | 7.2. Informative References | |||
| [Curve25519] | [Curve25519] | |||
| Bernstein, J., "Curve25519: New Diffie-Hellman Speed | Bernstein, J., "Curve25519: New Diffie-Hellman Speed | |||
| Records", LNCS 3958, February 2006, | Records", LNCS 3958, February 2006, | |||
| <http://dx.doi.org/10.1007/11745853_14>. | <http://dx.doi.org/10.1007/11745853_14>. | |||
| [RFC4753] Fu, D. and J. Solinas, "ECP Groups For IKE and IKEv2", | [RFC5903] Fu, D. and J. Solinas, "Elliptic Curve Groups modulo a | |||
| RFC 4753, January 2007. | Prime (ECP Groups) for IKE and IKEv2", RFC 5903, June | |||
| 2010. | ||||
| [RFC6954] Merkle, J. and M. Lochter, "Using the Elliptic Curve | [RFC6954] Merkle, J. and M. Lochter, "Using the Elliptic Curve | |||
| Cryptography (ECC) Brainpool Curves for the Internet Key | Cryptography (ECC) Brainpool Curves for the Internet Key | |||
| Exchange Protocol Version 2 (IKEv2)", RFC 6954, July 2013. | Exchange Protocol Version 2 (IKEv2)", RFC 6954, July 2013. | |||
| Appendix A. Numerical Example for Curve25519 | Appendix A. Numerical Example for Curve25519 | |||
| Suppose we have both the initiator and the responder generating | Suppose we have both the initiator and the responder generating | |||
| private keys by generating 32 random octets. As usual in IKEv2 and | private keys by generating 32 random octets. As usual in IKEv2 and | |||
| its extension, we will denote Initiator values with the suffix _i and | its extension, we will denote Initiator values with the suffix _i and | |||
| End of changes. 6 change blocks. | ||||
| 16 lines changed or deleted | 16 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||