| < draft-merkle-tls-brainpool-01.txt | draft-merkle-tls-brainpool-02.txt > | |||
|---|---|---|---|---|
| Network Working Group J. Merkle | Network Working Group J. Merkle | |||
| Internet-Draft secunet Security Networks | Internet-Draft secunet Security Networks | |||
| Updates: 4492 (if approved) M. Lochter | Updates: 4492 (if approved) M. Lochter | |||
| Intended status: Informational Bundesamt fuer Sicherheit in der | Intended status: Informational Bundesamt fuer Sicherheit in der | |||
| Expires: November 14, 2013 Informationstechnik (BSI) | Expires: December 26, 2013 Informationstechnik (BSI) | |||
| May 13, 2013 | June 24, 2013 | |||
| ECC Brainpool Curves for Transport Layer Security (TLS) | ECC Brainpool Curves for Transport Layer Security (TLS) | |||
| draft-merkle-tls-brainpool-01 | draft-merkle-tls-brainpool-02 | |||
| Abstract | Abstract | |||
| This document specifies the use of several ECC Brainpool elliptic | This document specifies the use of several ECC Brainpool curves for | |||
| curves for authentication and key exchange in the Transport Layer | authentication and key exchange in the Transport Layer Security (TLS) | |||
| Security (TLS) protocol. | 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. | |||
| 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 November 14, 2013. | This Internet-Draft will expire on December 26, 2013. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Values to be Used in the Supported Elliptic Curve Extension . 4 | 2. Security Considerations . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 4. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5. Intellectual Property Rights . . . . . . . . . . . . . . . . . 7 | 4.1. Normative References . . . . . . . . . . . . . . . . . . . 6 | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.2. Informative References . . . . . . . . . . . . . . . . . . 6 | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . . 8 | Appendix A. Test Vectors . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . . 8 | A.1. 256 Bit Curve . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| Appendix A. Test Vectors . . . . . . . . . . . . . . . . . . . . 10 | A.2. 384 Bit Curve . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| A.1. 256 Bit Curve . . . . . . . . . . . . . . . . . . . . . . 10 | A.3. 512 Bit Curve . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| A.2. 384 Bit Curve . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| A.3. 512 Bit Curve . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 1. Introduction | 1. Introduction | |||
| In [RFC5639], a new set of elliptic curve groups over finite prime | In [RFC5639], a new set of elliptic curve groups over finite prime | |||
| fields for use in cryptographic applications was specified. These | fields for use in cryptographic applications was specified. These | |||
| groups, denoted as ECC Brainpool curves, were generated in a | groups, denoted as ECC Brainpool curves, were generated in a | |||
| verifiably pseudo-random way and comply with the security | verifiably pseudo-random way and comply with the security | |||
| requirements of relevant standards from ISO [ISO1] [ISO2], ANSI | requirements of relevant standards from ISO [ISO1] [ISO2], ANSI | |||
| [ANSI1], NIST [FIPS], and SecG [SEC2]. | [ANSI1], NIST [FIPS], and SecG [SEC2]. | |||
| Usage of elliptic curves for authentication and key agreement in TLS | Usage of elliptic curves for authentication and key agreement in TLS | |||
| 1.0 and TLS 1.1 is defined in [RFC4492]. While the ASN.1 object | 1.0 and TLS 1.1 is defined in [RFC4492]. While the ASN.1 object | |||
| identifiers defined in [RFC5639] already allow usage of the ECC | identifiers defined in [RFC5639] already allow usage of the ECC | |||
| Brainpool curves for TLS (client or server) authentication through | Brainpool curves for TLS (client or server) authentication through | |||
| reference in X.509 certificates according to [RFC3279], their | reference in X.509 certificates according to [RFC3279] and [RFC5480] | |||
| negotiation for key exchange according to [RFC4492] requires the | , their negotiation for key exchange according to [RFC4492] requires | |||
| definition and assignment of additional NamedCurve IDs. This | the definition and assignment of additional NamedCurve IDs. This | |||
| document specifies such values for three curves from [RFC5639]. | document specifies such values for three curves from [RFC5639]. | |||
| 2. Values to be Used in the Supported Elliptic Curve Extension | ||||
| According to [RFC4492], the Supported Elliptic Curve Extension allows | ||||
| the negotiation of elliptic curve groups during a handshake starting | ||||
| a new TLS session. A client that proposes ECC cipher suites in its | ||||
| ClientHello message SHOULD include this extension to indicate the | ||||
| elliptic curves it supports through NamedCurve IDs, and a server that | ||||
| receives a ClientHello containing this extension MUST use the | ||||
| client's enumerated capabilities to guide its selection of an | ||||
| appropriate cipher suite. Furthermore, the server SHOULD use a | ||||
| NamedCurve ID, if applicable, to specify the elliptic curve | ||||
| corresponding to its ephemeral ECDH public key. | ||||
| The values of NamedCurve, by which the elliptic curves are | ||||
| identified, are governed by the EC Named Curve Registry of IANA | ||||
| [IANA-TLS]. In Table 1, new values for NamedCurve for three of the | ||||
| ECC Brainpool curves defined in [RFC5639] are specified. All three | ||||
| curves are suitable for usage in DTLS [RFC6347]. | ||||
| +-----------------+-------+ | ||||
| | Curve | Value | | ||||
| +-----------------+-------+ | ||||
| | brainpoolP256r1 | TBD1 | | ||||
| | | | | ||||
| | brainpoolP384r1 | TBD2 | | ||||
| | | | | ||||
| | brainpoolP512r1 | TBD3 | | ||||
| +-----------------+-------+ | ||||
| Table 1 | ||||
| Test vectors for a Diffie-Hellman key exchange using these ECC | Test vectors for a Diffie-Hellman key exchange using these ECC | |||
| Brainpool curves are provided in Appendix A | Brainpool curves are provided in Appendix A | |||
| 3. Security Considerations | 2. Security Considerations | |||
| The security considerations of [RFC5246] apply accordingly. | The security considerations of [RFC5246] apply accordingly. | |||
| The confidentiality, authenticity and integrity of the TLS | The confidentiality, authenticity and integrity of the TLS | |||
| communication is limited by the weakest cryptographic primitive | communication is limited by the weakest cryptographic primitive | |||
| applied. In order to achieve a maximum security level when using one | applied. In order to achieve a maximum security level when using one | |||
| of the elliptic curves from Table 1 for authentication and / or key | of the elliptic curves from Table 1 for authentication and / or key | |||
| exchange in TLS, the key derivation function, the algorithms and key | exchange in TLS, the key derivation function, the algorithms and key | |||
| lengths of symmetric encryption and message authentication as well as | lengths of symmetric encryption and message authentication as well as | |||
| the algorithm, bit length and hash function used for signature | the algorithm, bit length and hash function used for signature | |||
| skipping to change at page 6, line 5 ¶ | skipping to change at page 5, line 5 ¶ | |||
| y*Z^3) with the coefficient Z specified for that curve in [RFC5639], | y*Z^3) with the coefficient Z specified for that curve in [RFC5639], | |||
| in order to take advantage of an an efficient arithmetic based on the | in order to take advantage of an an efficient arithmetic based on the | |||
| twisted curve's special parameters (A = -3): although the twisted | twisted curve's special parameters (A = -3): although the twisted | |||
| curve itself offers the same level of security as the corresponding | curve itself offers the same level of security as the corresponding | |||
| random curve (through mathematical equivalence), an arithmetic based | random curve (through mathematical equivalence), an arithmetic based | |||
| on small curve parameters may be harder to protect against side- | on small curve parameters may be harder to protect against side- | |||
| channel attacks. General guidance on resistence of elliptic curve | channel attacks. General guidance on resistence of elliptic curve | |||
| cryptography implementations against side-channel-attacks is given in | cryptography implementations against side-channel-attacks is given in | |||
| [BSI1] and [HMV]. | [BSI1] and [HMV]. | |||
| 4. IANA Considerations | 3. IANA Considerations | |||
| Before this document can become an RFC, IANA is required to assign | IANA is requested to assign numbers for the ECC Brainpool curves, | |||
| numbers for the elliptic curves specified in Table 1 to the | defined in [RFC5639], found in Table 1 in the Transport Layer | |||
| NamedCurve name space in its Transport Layer Security (TLS) | Security (TLS) Parameters NamedCurve registry [IANA-TLS]. These | |||
| Parameters registry [IANA-TLS]. For all these elliptic curves, | curves are suitability for use with DTLS. | |||
| suitability with DTLS shall be indicated in the registry. | ||||
| 5. Intellectual Property Rights | +-------+-----------------+---------+-----------+ | |||
| | Value | Description | DTLS-OK | Reference | | ||||
| +-------+-----------------+---------+-----------+ | ||||
| | TBD1 | brainpoolP256r1 | Y | This doc | | ||||
| | | | | | | ||||
| | TBD2 | brainpoolP384r1 | Y | This doc | | ||||
| | | | | | | ||||
| | TBD3 | brainpoolP512r1 | Y | This doc | | ||||
| +-------+-----------------+---------+-----------+ | ||||
| Although, the authors have no knowledge about any intellectual | Table 1 | |||
| property rights which cover the general usage of the ECP groups | ||||
| defined herein, implementations based on these domain parameters may | ||||
| require use of inventions covered by patent rights. In particular, | ||||
| techniques for an efficient arithmetic exploiting the special | ||||
| parameters of the twisted curves (see Section 3) may be covered by | ||||
| patents. | ||||
| 6. References | 4. References | |||
| 6.1. Normative References | 4.1. Normative References | |||
| [IANA-TLS] Internet Assigned Numbers Authority, "Transport Layer | [IANA-TLS] Internet Assigned Numbers Authority, "Transport Layer | |||
| Security (TLS) Parameters", <http://www.iana.org/ | Security (TLS) Parameters", <http://www.iana.org/ | |||
| assignments/tls-parameters/tls-parameters.xml>. | assignments/tls-parameters/tls-parameters.xml>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC4492] Blake-Wilson, S., Bolyard, N., Gupta, V., Hawk, C., and | [RFC4492] Blake-Wilson, S., Bolyard, N., Gupta, V., Hawk, C., and | |||
| B. Moeller, "Elliptic Curve Cryptography (ECC) Cipher | B. Moeller, "Elliptic Curve Cryptography (ECC) Cipher | |||
| skipping to change at page 8, line 32 ¶ | skipping to change at page 6, line 32 ¶ | |||
| Security (TLS) Protocol Version 1.2", RFC 5246, | Security (TLS) Protocol Version 1.2", RFC 5246, | |||
| August 2008. | August 2008. | |||
| [RFC5639] Lochter, M. and J. Merkle, "Elliptic Curve Cryptography | [RFC5639] Lochter, M. and J. Merkle, "Elliptic Curve Cryptography | |||
| (ECC) Brainpool Standard Curves and Curve Generation", | (ECC) Brainpool Standard Curves and Curve Generation", | |||
| RFC 5639, March 2010. | RFC 5639, March 2010. | |||
| [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | |||
| Security Version 1.2", RFC 6347, January 2012. | Security Version 1.2", RFC 6347, January 2012. | |||
| 6.2. Informative References | 4.2. Informative References | |||
| [ANSI1] American National Standards Institute, "Public Key | [ANSI1] American National Standards Institute, "Public Key | |||
| Cryptography For The Financial Services Industry: The | Cryptography For The Financial Services Industry: The | |||
| Elliptic Curve Digital Signature Algorithm (ECDSA)", | Elliptic Curve Digital Signature Algorithm (ECDSA)", | |||
| ANSI X9.62, 2005. | ANSI X9.62, 2005. | |||
| [BSI1] Bundesamt fuer Sicherheit in der Informationstechnik, | [BSI1] Bundesamt fuer Sicherheit in der Informationstechnik, | |||
| "Minimum Requirements for Evaluating Side-Channel | "Minimum Requirements for Evaluating Side-Channel | |||
| Attack Resistance of Elliptic Curve Implementations", | Attack Resistance of Elliptic Curve Implementations", | |||
| July 2011. | July 2011. | |||
| skipping to change at page 9, line 22 ¶ | skipping to change at page 7, line 22 ¶ | |||
| [NIST800-57] National Institute of Standards and Technology, | [NIST800-57] National Institute of Standards and Technology, | |||
| "Recommendation for Key Management - Part 1: General | "Recommendation for Key Management - Part 1: General | |||
| (Revised)", NIST Special Publication 800-57, | (Revised)", NIST Special Publication 800-57, | |||
| March 2007. | March 2007. | |||
| [RFC3279] Bassham, L., Polk, W., and R. Housley, "Algorithms and | [RFC3279] Bassham, L., Polk, W., and R. Housley, "Algorithms and | |||
| Identifiers for the Internet X.509 Public Key | Identifiers for the Internet X.509 Public Key | |||
| Infrastructure Certificate and Certificate Revocation | Infrastructure Certificate and Certificate Revocation | |||
| List (CRL) Profile", RFC 3279, April 2002. | List (CRL) Profile", RFC 3279, April 2002. | |||
| [RFC5480] Turner, S., Brown, D., Yiu, K., Housley, R., and T. | ||||
| Polk, "Elliptic Curve Cryptography Subject Public Key | ||||
| Information", RFC 5480, March 2009. | ||||
| [RFC6090] McGrew, D., Igoe, K., and M. Salter, "Fundamental | [RFC6090] McGrew, D., Igoe, K., and M. Salter, "Fundamental | |||
| Elliptic Curve Cryptography Algorithms", RFC 6090, | Elliptic Curve Cryptography Algorithms", RFC 6090, | |||
| February 2011. | February 2011. | |||
| [SEC1] Certicom Research, "Elliptic Curve Cryptography", | [SEC1] Certicom Research, "Elliptic Curve Cryptography", | |||
| Standards for Efficient Cryptography (SEC) 1, | Standards for Efficient Cryptography (SEC) 1, | |||
| September 2000. | September 2000. | |||
| [SEC2] Certicom Research, "Recommended Elliptic Curve Domain | [SEC2] Certicom Research, "Recommended Elliptic Curve Domain | |||
| Parameters", Standards for Efficient Cryptography | Parameters", Standards for Efficient Cryptography | |||
| (SEC) 2, September 2000. | (SEC) 2, September 2000. | |||
| Appendix A. Test Vectors | Appendix A. Test Vectors | |||
| This section provides some test vectors for example Diffie-Hellman | This section provides some test vectors for example Diffie-Hellman | |||
| key exchanges using each of the curves defined in Section 2 . In all | key exchanges using each of the curves defined in Table 1 . In all | |||
| of the following sections the following notation is used: | of the following sections the following notation is used: | |||
| d_A: the secret key of party A | d_A: the secret key of party A | |||
| x_qA: the x-coordinate of the public key of party A | x_qA: the x-coordinate of the public key of party A | |||
| y_qA: the y-coordinate of the public key of party A | y_qA: the y-coordinate of the public key of party A | |||
| d_B: the secret key of party B | d_B: the secret key of party B | |||
| End of changes. 17 change blocks. | ||||
| 72 lines changed or deleted | 44 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/ | ||||