idnits 2.17.1 draft-ietf-ipsec-ike-ecp-groups-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 13. -- Found old boilerplate from RFC 3978, Section 5.5 on line 416. ** This document has an original RFC 3978 Section 5.4 Copyright Line, instead of the newer IETF Trust Copyright according to RFC 4748. ** This document has an original RFC 3978 Section 5.5 Disclaimer, instead of the newer disclaimer which includes the IETF Trust according to RFC 4748. ** The document seems to lack an RFC 3979 Section 5, para. 1 IPR Disclosure Acknowledgement. ** The document seems to lack an RFC 3979 Section 5, para. 2 IPR Disclosure Acknowledgement. ** The document seems to lack an RFC 3979 Section 5, para. 3 IPR Disclosure Invitation. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard == It seems as if not all pages are separated by form feeds - found 0 form feeds but 10 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 129: '... implementations SHOULD support an ECP...' RFC 2119 keyword, line 169: '... implementations SHOULD support an ECP...' RFC 2119 keyword, line 213: '... implementations SHOULD support an ECP...' Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (May 27, 2005) is 6881 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 2409 (ref. 'IKE') (Obsoleted by RFC 4306) == Outdated reference: A later version (-10) exists of draft-ietf-ipsec-ike-ecc-groups-04 Summary: 8 errors (**), 0 flaws (~~), 4 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 IPSec Working Group J. Solinas, NSA 2 INTERNET-DRAFT 3 Expires November 27, 2005 May 27, 2005 5 ECP Groups For IKE 6 8 Status of this Memo 10 By submitting this Internet-Draft, each author represents that any 11 applicable patent or other IPR claims of which he or she is aware 12 have been or will be disclosed, and any of which he or she becomes 13 aware will be disclosed, in accordance with Section 6 of BCP 79. 15 Internet-Drafts are working documents of the Internet Engineering 16 Task Force (IETF), its areas, and its working groups. Note that other 17 groups may also distribute working documents as Internet-Drafts. 19 Internet-Drafts are draft documents valid for a maximum of six months 20 and may be updated, replaced, or obsoleted by other documents at any 21 time. It is inappropriate to use Internet-Drafts as reference 22 material or to cite them other than as "work in progress." 24 The list of current Internet-Drafts can be accessed at 25 http://www.ietf.org/1id-abstracts.html 27 The list of Internet-Draft Shadow Directories can be accessed at 28 http://www.ietf.org/shadow.html 30 Abstract 32 This document describes new ECC groups for use in the Internet Key 33 Exchange (IKE) protocol in addition to previously defined groups. 34 Specifically, the new curve groups are based on modular arithmetic 35 rather than binary arithmetic. These new groups are defined to align 36 IKE with other ECC implementations and standards, particularly NIST 37 standards. In addition, the curves defined here can provide more 38 efficient implementation than previously defined ECC groups. 40 1. Introduction 42 This document describes default groups for use in elliptic curve 43 Diffie-Hellman in IKE in addition to the Oakley groups included in 44 [IKE] and the groups defined in [RFC-3526] and [BBPS]. The document 45 assumes that the reader is familiar with the IKE protocol and the 46 concept of Oakley Groups, as defined in RFC 2409 [IKE]. 48 RFC 2409 [IKE] defines five standard Oakley Groups - three modular 49 exponentiation groups and two elliptic curve groups over GF[2^N]. 50 One modular exponentiation group (768 bits - Oakley Group 1) is 51 mandatory for all implementations to support, while the other four 52 are optional. Thirteen additional groups subsequently have 53 been defined and assigned values by IANA. All of these additional 54 groups are optional. Of the eighteen groups defined so far, eight 55 are modular exponentiation groups and ten are elliptic curve groups 56 over GF[2^N]. 58 The purpose of this document is to expand the options available to 59 implementers of elliptic curve groups by adding three new elliptic 60 curve groups. Unlike the previous elliptic curve groups, the three 61 groups proposed in this document are defined over GF[p] with p prime. 62 The reasons for adding these new groups include the following. 64 - The groups proposed afford efficiency advantages in software 65 applications since the underlying arithmetic is integer arithmetic 66 modulo a prime rather than binary field arithmetic. (Additional 67 computational advantages for these groups are presented in [GMN].) 69 - The groups proposed encourage alignment with other elliptic curve 70 standards. The proposed groups are among those standardized by 71 NIST, by the SECG, by ISO, and by ANSI. (See section 3 for 72 details.) 74 - The groups proposed are capable of providing security consistent 75 with the new Advanced Encryption Standard. 77 These groups could also be defined using the New Group Mode but 78 including them in this RFC will encourage interoperability of IKE 79 implementations based upon elliptic curve groups. In addition, the 80 availability of standardized groups will result in optimizations for 81 a particular curve and field size as well as allowing precomputation 82 that could result in faster implementations. 84 It is anticipated that the groups proposed here will be assigned 85 identifiers by IANA [IANA]. In that case the full list of assigned 86 values for the Group Description class within IKE will be the 87 following. (The groups defined in this document are listed as 88 19, 20, and 21.) 89 Group Description Value 90 ----------------- ----- 91 Default 768-bit MODP group [IKE] 1 92 Alternate 1024-bit MODP group [IKE] 2 93 EC2N group over GF[2^155] [IKE] 3 94 EC2N group over GF[2^185] [IKE] 4 95 1536-bit MODP group [RFC-3526] 5 96 EC2N group over GF[2^163] [BBPS] 6 97 EC2N group over GF[2^163] [BBPS] 7 98 EC2N group over GF[2^283] [BBPS] 8 99 EC2N group over GF[2^283] [BBPS] 9 100 EC2N group over GF[2^409] [BBPS] 10 101 EC2N group over GF[2^409] [BBPS] 11 102 EC2N group over GF[2^571] [BBPS] 12 103 EC2N group over GF[2^571] [BBPS] 13 104 2048-bit MODP group [RFC-3526] 14 105 3072-bit MODP group [RFC-3526] 15 106 4096-bit MODP group [RFC-3526] 16 107 6144-bit MODP group [RFC-3526] 17 108 8192-bit MODP group [RFC-3526] 18 109 256-bit ECP group (EC group modulo a 256-bit prime) 19 110 384-bit ECP group (EC group modulo a 384-bit prime) 20 111 521-bit ECP group (EC group modulo a 521-bit prime) 21 113 The IANA group type [IANA] of the three new groups is 2 (ECP - 114 elliptic curve group over GF(P)). The previous eighteen groups all 115 have group types 1 or 3. 117 In summary, due to the performance advantages of elliptic curve 118 groups in IKE implementations and the need for further alignment with 119 other standards, this document defines three elliptic curve groups 120 based on modular arithmetic. 122 2. Additional ECC Groups 124 The notation adopted in RFC2409 [IKE] is used below to describe the 125 new groups proposed. 127 2.1 Nineteenth Group 129 IKE implementations SHOULD support an ECP group with the following 130 characteristics. This group is assigned id 19 (nineteen). The curve 131 is based on the integers modulo the generalized Mersenne prime p 132 given by 134 p = 2^(256)-2^(224)+2^(192)+2^(96)-1 . 136 The equation for the elliptic curve is: 138 y^2 = x^3 - 3 x + b. 140 Field size: 141 256 143 Group Prime/Irreducible Polynomial: 144 FFFFFFFF 00000001 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFF 146 Group Curve b: 147 5AC635D8 AA3A93E7 B3EBBD55 769886BC 651D06B0 CC53B0F6 3BCE3C3E 27D2604B 149 Group Generator point P (x coordinate): 150 6B17D1F2 E12C4247 F8BCE6E5 63A440F2 77037D81 2DEB33A0 F4A13945 D898C296 152 Group Generator point P (y coordinate): 153 4FE342E2 FE1A7F9B 8EE7EB4A 7C0F9E16 2BCE3357 6B315ECE CBB64068 37BF51F5 155 Group order: 156 FFFFFFFF 00000000 FFFFFFFF FFFFFFFF BCE6FAAD A7179E84 F3B9CAC2 FC632551 158 The group was chosen verifiably at random using SHA-1 as specified in 159 [IEEE-1363] from the seed: 161 C49D3608 86E70493 6A6678E1 139D26B7 819F7E90 163 The data in the KE payload when using this group represents the 164 point on the curve obtained by taking the scalar multiple Ka*P, 165 where Ka is the randomly chosen secret. 167 2.2 Twentieth Group 169 IKE implementations SHOULD support an ECP group with the following 170 characteristics. This group is assigned id 20 (twenty). The curve is 171 based on the integers modulo the generalized Mersenne prime p given by 173 p = 2^(384)-2^(128)-2^(96)+2^(32)-1 . 175 The equation for the elliptic curve is: 177 y^2 = x^3 - 3 x + b. 179 Field size: 180 384 182 Group Prime/Irreducible Polynomial: 183 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 184 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF 00000000 00000000 FFFFFFFF 186 Group Curve b: 187 B3312FA7 E23EE7E4 988E056B E3F82D19 188 181D9C6E FE814112 0314088F 5013875A C656398D 8A2ED19D 2A85C8ED D3EC2AEF 190 Group Generator point P (x coordinate): 191 AA87CA22 BE8B0537 8EB1C71E F320AD74 192 6E1D3B62 8BA79B98 59F741E0 82542A38 5502F25D BF55296C 3A545E38 72760AB7 194 Group Generator point P (y coordinate): 195 3617DE4A 96262C6F 5D9E98BF 9292DC29 196 F8F41DBD 289A147C E9DA3113 B5F0B8C0 0A60B1CE 1D7E819D 7A431D7C 90EA0E5F 198 Group order: 199 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 200 FFFFFFFF FFFFFFFF C7634D81 F4372DDF 581A0DB2 48B0A77A ECEC196A CCC52973 202 The group was chosen verifiably at random using SHA-1 as specified in 203 [IEEE-1363] from the seed: 205 A335926A A319A27A 1D00896A 6773A482 7ACDAC73 207 The data in the KE payload when using this group represents the 208 point on the curve obtained by taking the scalar multiple Ka*P, 209 where Ka is the randomly chosen secret. 211 2.3 Twenty-First Group 213 IKE implementations SHOULD support an ECP group with the following 214 characteristics. This group is assigned id 21 (twenty-one). The 215 curve is based on the integers modulo the Mersenne prime p given by 217 p = 2^(521)-1 . 219 The equation for the elliptic curve is: 221 y^2 = x^3 - 3 x + b. 223 Field size: 224 521 226 Group Prime/Irreducible Polynomial: 227 000001FF 228 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 229 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 231 Group Curve b: 232 00000051 233 953EB961 8E1C9A1F 929A21A0 B68540EE A2DA725B 99B315F3 B8B48991 8EF109E1 234 56193951 EC7E937B 1652C0BD 3BB1BF07 3573DF88 3D2C34F1 EF451FD4 6B503F00 236 Group Generator point P (x coordinate): 237 000000C6 238 858E06B7 0404E9CD 9E3ECB66 2395B442 9C648139 053FB521 F828AF60 6B4D3DBA 239 A14B5E77 EFE75928 FE1DC127 A2FFA8DE 3348B3C1 856A429B F97E7E31 C2E5BD66 241 Group Generator point P (y coordinate): 242 00000118 243 39296A78 9A3BC004 5C8A5FB4 2C7D1BD9 98F54449 579B4468 17AFBD17 273E662C 244 97EE7299 5EF42640 C550B901 3FAD0761 353C7086 A272C240 88BE9476 9FD16650 246 Group order: 247 000001FF 248 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFA 249 51868783 BF2F966B 7FCC0148 F709A5D0 3BB5C9B8 899C47AE BB6FB71E 91386409 251 The group was chosen verifiably at random using SHA-1 as specified in 252 [IEEE-1363] from the seed: 254 D09E8800 291CB853 96CC6717 393284AA A0DA64BA 256 The data in the KE payload when using this group represents the 257 point on the curve obtained by taking the scalar multiple Ka*P, 258 where Ka is the randomly chosen secret. 260 3. Alignment with Other Standards 262 The following table summarizes the appearance of these three 263 elliptic curve groups in other standards. 265 Standard Group 19 Group 20 Group 21 267 NIST [DSS] P-256 P-384 P-521 269 ISO/IEC [ISO-15946-1] P-256 271 ISO/IEC [ISO-18031] P-256 P-384 P-521 273 ANSI [X9.62-1998] Sect. J.5.3, 274 Example 1 276 ANSI [X9.62-2003] Sect. J.6.5.3 Sect. J.6.6 Sect. J.6.7 278 ANSI [X9.63] Sect. J.5.4, Sect. J.5.5 Sect. J.5.6 279 Example 2 281 SECG [SEC2] secp256r1 secp384r1 secp521r1 283 See also [NIST], [ISO-14888-3], [ISO-15946-2], [ISO-15946-3], and 284 [ISO-15946-4]. 286 4. Security Considerations 288 Since this document proposes new groups for use within IKE, many of 289 the security considerations contained within RFC 2409 apply here as 290 well. 292 The groups proposed in this document correspond to the symmetric key 293 sizes 128 bits, 192 bits, and 256 bits. This allows the IKE key 294 exchange to offer security comparable with the AES algorithms [AES]. 296 5. IANA Considerations 298 Before this document can become an RFC, it is required that IANA 299 update its registry of Diffie-Hellman groups for IKE in [IANA] to 300 include the three groups defined above. 302 6. References 304 6.1 Normative 306 [IKE] D. Harkins and D. Carrel, The Internet Key Exchange, RFC 2409, 307 November 1998. 309 6.2 Informative 311 [AES] U.S. Department of Commerce/National Institute of Standards 312 and Technology, Advanced Encryption Standard (AES), FIPS PUB 197, 313 November 2001. (http://csrc.nist.gov/publications/fips/index.html) 315 [BBPS] S. Blake-Wilson, D. Brown, Y. Poeluev, M. Salter, Additional 316 ECC Groups for IKE, draft-ietf-ipsec-ike-ecc-groups-04.txt, 317 July 2002. 319 [DSS] U.S. Department of Commerce/National Institute of Standards 320 and Technology, Digital Signature Standard (DSS), FIPS PUB 186-2, 321 January 2000. (http://csrc.nist.gov/publications/fips/index.html) 323 [GMN] J. Solinas, Generalized Mersenne Numbers, Combinatorics 324 and Optimization Research Report 99-39, 1999. 325 (http://www.cacr.math.uwaterloo.ca/) 327 [IANA] Internet Assigned Numbers Authority, Internet Key Exchange 328 (IKE) Attributes. (http://www.iana.org/assignments/ipsec-registry) 330 [IEEE-1363] Institute of Electrical and Electronics Engineers. IEEE 331 1363-2000, Standard for Public Key Cryptography. 332 (http://grouper.ieee.org/groups/1363/index.html) 334 [ISO-14888-3] International Organization for Standardization and 335 International Electrotechnical Commission, ISO/IEC First 336 Committee Draft 14888-3 (2nd ed.), Information Technology: 337 Security Techniques: Digital Signatures with Appendix: Part 3 - 338 Discrete Logarithm Based Mechanisms. 340 [ISO-15946-1] International Organization for Standardization and 341 International Electrotechnical Commission, ISO/IEC 15946-1: 342 2002-12-01, Information Technology: Security Techniques: 343 Cryptographic Techniques based on Elliptic Curves: Part 1 - 344 General. 346 [ISO-15946-2] International Organization for Standardization and 347 International Electrotechnical Commission, ISO/IEC 15946-2: 348 2002-12-01, Information Technology: Security Techniques: 349 Cryptographic Techniques based on Elliptic Curves: Part 2 - 350 Digital Signatures. 352 [ISO-15946-3] International Organization for Standardization and 353 International Electrotechnical Commission, ISO/IEC 15946-3: 354 2002-12-01, Information Technology: Security Techniques: 355 Cryptographic Techniques based on Elliptic Curves: Part 3 - 356 Key Establishment. 358 [ISO-15946-4] International Organization for Standardization and 359 International Electrotechnical Commission, ISO/IEC 15946-4: 360 2004-10-01, Information Technology: Security Techniques: 361 Cryptographic Techniques based on Elliptic Curves: Part 4 - 362 Digital Signatures giving Message Recovery. 364 [ISO-18031] International Organization for Standardization and 365 International Electrotechnical Commission, ISO/IEC Final 366 Committee Draft 18031, Information Technology: Security 367 Techniques: Random Bit Generation, October 2004. 369 [NIST] U.S. Department of Commerce/National Institute of Standards 370 and Technology. Recommendation for Key Establishment Schemes 371 Using Discrete Logarithm Cryptography, NIST Special Publication 372 800-56. (http://csrc.nist.gov/CryptoToolkit/KeyMgmt.html) 374 [RFC-3526] T. Kivinen and M. Kojo, More Modular Exponential (MODP) 375 Diffie-Hellman groups for Internet Key Exchange (IKE), RFC 376 3526, May 2003. 378 [SEC2] Standards for Efficient Cryptography Group. SEC 2 - 379 Recommended Elliptic Curve Domain Parameters, v. 1.0, 2000. 380 (http://www.secg.org) 382 [X9.62-1998] American National Standards Institute, X9.62-1998: 383 Public Key Cryptography for the Financial Services Industry: The 384 Elliptic Curve Digital Signature Algorithm. January 1999. 386 [X9.62-2003] American National Standards Institute, X9.62-1998: 387 Public Key Cryptography for the Financial Services Industry: The 388 Elliptic Curve Digital Signature Algorithm, 389 Revised-Draft-2003-02-26, February 2003. 391 [X9.63] American National Standards Institute. X9.63-2001, 392 Public Key Cryptography for the Financial Services Industry: Key 393 Agreement and Key Transport using Elliptic Curve Cryptography. 394 November 2001. 396 7. Author's Address 398 Jerome A. Solinas 399 National Security Agency 400 jasolin@orion.ncsc.mil 402 Comments are solicited and should be addressed to the author. 404 Copyright (C) The Internet Society (2005). 406 This document is subject to the rights, licenses and restrictions 407 contained in BCP 78, and except as set forth therein, the authors 408 retain all their rights. 410 This document and the information contained herein are provided on an 411 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 412 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET 413 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, 414 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE 415 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 416 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 418 Expires November 27, 2005