RFC 8734 ECC Brainpool Curves for TLS 1.3 February 2020
Bruckert, et al. Informational [Page]
溪流:
独立提交
RFC:
8734
类别:
信息性
发表:
国际刊号:
2070-1721
作者:
L·布鲁克特
secunet 安全网络
J·默克尔
secunet 安全网络
M·洛赫特
英国标准协会

RFC 8734

用于传输层安全 (TLS) 版本 1.3 的椭圆曲线加密 (ECC) Brainpool 曲线

摘要

椭圆曲线加密 (ECC) Brainpool 曲线是传输层安全 (TLS) 协议版本 1.2 中身份验证和密钥交换的一个选项,但 IETF 已弃用与 TLS 版本 1.3 一起使用,因为它们很少使用。 然而,这些曲线尚未被证明具有明显的加密弱点,并且有人对在 TLS 1.3 中使用其中几条曲线感兴趣。

本文档提供了在 TLS 1.3 中使用 ECC Brainpool 曲线所需的协议机制。 此方法未得到 IETF 认可。

本备忘录的状态

本文档不是互联网标准跟踪规范;发布仅供参考。

这是对 RFC 系列的贡献,独立于任何其他 RFC 流。 RFC 编辑自行决定发布本文档,并且未声明其实施或部署的价值。 RFC 编辑批准发布的文档不是任何级别的互联网标准的候选文档;请参阅 RFC 7841 第 2 节。

有关本文档当前状态、任何勘误表以及如何提供反馈的信息,请访问 https://www.rfc-editor.org/info/rfc8734

目录

1. 简介

[RFC5639] 指定一组新的有限素数域上的椭圆曲线组,用于加密应用程序。 这些组表示为 ECC Brainpool 曲线,以可验证的伪随机方式生成,并符合 ISO [ISO1][ISO2]、ANSI [ANSI1]、NIST [FIPS]、和 SECG [SEC2]¶0>

[RFC8422] 定义了 TLS 1.2 及更早版本中用于身份验证和密钥协商的椭圆曲线的使用,以及 [RFC7027] 定义 ECC Brainpool 曲线在 TLS 中进行身份验证和密钥交换的用法。 后者适用于 TLS 1.2 及更早版本,但不适用于 TLS 1.3,由于缺乏广泛部署,TLS 1.3 弃用了 [RFC7027] 中定义的 ECC Brainpool 曲线 ID。 然而,人们对在 TLS 1.3 中使用这些曲线感兴趣。

根据 [RFC8446],TLS 1.3 中密钥交换的 ECC Brainpool 曲线协商需要定义和分配额外的 NamedGroup ID。 本文档提供了使用 [RFC5639] 中的三个 ECC Brainpool 曲线所需的附加 SignatureScheme ID 的定义和分配。

这种方法并未得到 IETF 的认可。 实施者和部署者需要了解他们使用的所有安全机制的优点和缺点。

2. 需求术语

关键字“必须”、“不得”、“必需”、“应当”、“不应"、"应该"、"不应"、"推荐"、"不推荐本文档中的“”、“可以”和“可选0>”应按照 BCP 14 [RFC2119 中的描述进行解释t12>]1> [RFC81744>]3> 当且仅当它们全部大写出现时,如此处所示。¶5>

3. Brainpool 命名组类型

根据 [RFC8446],“supported_groups”扩展用于在启动新 TLS 会话的握手期间协商 Diffie-Hellman 组和椭圆曲线组以进行密钥交换。 本文档将 [RFC5639] 中定义的三个椭圆曲线的新命名组添加到“supported_groups”扩展中,如下所示。

        enum {
             brainpoolP256r1tls13(31),
             brainpoolP384r1tls13(32),
             brainpoolP512r1tls13(33)
        } NamedGroup;

sec256r1、secp384r1 和 secp521r1 的临时椭圆曲线 Diffie-Hellman (ECDHE) 参数的编码,如 [RFC8446]第 4.2.8.2 节 中定义/t0>,也适用于本文档。

附录 A 中提供了使用这些椭圆曲线进行 Diffie-Hellman 密钥交换的测试向量。

4. Brainpool 签名方案类型

根据[RFC8446],名称空间 SignatureScheme 用于通过“signature_algorithms”扩展协商椭圆曲线组以进行身份​​验证。 此外,在签名之前还需要指定用于对消息进行哈希处理的哈希函数。 本文档为 [RFC5639] 中定义的三个椭圆曲线添加了新的 SignatureScheme 类型,如下所示。

        enum {
             ecdsa_brainpoolP256r1tls13_sha256(0x081A),
             ecdsa_brainpoolP384r1tls13_sha384(0x081B),
             ecdsa_brainpoolP512r1tls13_sha512(0x081C)
        } SignatureScheme;

5. IANA 注意事项

IANA 已更新“传输层安全 (TLS) 参数”注册表的“TLS 支持的组”[IANA-TLS] 子注册表中列出的 ECC Brainpool 曲线的参考参考本文档。

Table 1
Value Description DTLS-OK Recommended Reference
31 brainpoolP256r1tls13 Y N RFC 8734
32 brainpoolP384r1tls13 Y N RFC 8734
33 brainpoolP512r1tls13 Y N RFC 8734

IANA 已更新“传输层安全 (TLS) 参数”注册表的“TLS SignatureScheme”子注册表 [IANA-TLS] 中 ECC Brainpool 曲线的引用,以供参考到此文档。

Table 2
Value Description Recommended Reference
0x081A ecdsa_brainpoolP256r1tls13_sha256 N RFC 8734
0x081B ecdsa_brainpoolP384r1tls13_sha384 N RFC 8734
0x081C ecdsa_brainpoolP512r1tls13_sha512 N RFC 8734

6. 安全注意事项

[RFC8446] 的安全注意事项相应适用。

TLS 通信的机密性、真实性和完整性受到所应用的最弱加密原语的限制。 为了在使用表 1 中的椭圆曲线之一进行密钥交换和/或使用表 2 中的签名算法之一进行 TLS 身份验证时实现最高安全级别,其他部署的加密方案的参数应选择相应的强度,例如,根据[NIST800-57][RFC5639的建议] 特别是,这适用于(a)密钥导出函数,(b)对称加密和消息认证的算法和密钥长度,以及(c)用于签名生成的算法、位长度和散列函数。 此外,私钥 Diffie-Hellman 密钥应从随机密钥流生成,其长度等于 [RFC5639] 中定义的群 E(GF(p)) 的阶数长度 私钥 Diffie-Hellman 密钥的值应小于群 E(GF(p)) 的阶数。

当使用 ECDHE 密钥协议与曲线 BrainpoolP256r1tls13、brainpoolP384r1tls13 或 BrainpoolP512r1tls13 时,节点必须通过确保该点是椭圆曲线上的有效点来验证彼此的公共值 Q。 如果不进行此检查,攻击者可以强制将密钥交换到一个小子组中,并且可以以更少的努力猜测出结果共享秘密。

TLS 椭圆曲线加密的实现可能容易受到旁道攻击。 对于使用系数 Z 的映射 (x',y') = (x*Z^2, y*Z^3) 将曲线点内部转换为相应“扭曲曲线”上的点的实现,应特别小心在 [RFC5639] 中为该曲线指定,以便利用基于扭曲曲线的特殊参数 (A = -3) 的高效算术。 尽管扭曲曲线本身提供与相应随机曲线相同级别的安全性(通过数学等价),但基于小曲线参数的算术可能更难防范侧信道攻击。 [BSI1][HMV] 中给出了椭圆曲线加密实现抵御旁路攻击的一般指导t2>.

7. 参考文献

7.1. 规范性参考文献

[IANA-TLS]
IANA“传输层安全 (TLS) 参数”<https://www.iana.org/assignments/tls-parameters t3>>
[RFC2119]
布拉德纳,S.“RFC 中用于指示需求级别的关键字”BCP 14RFC 2119DOI 10.17487/RFC2119 t3>、<https://www.rfc-editor.org/info/rfc2119>
[RFC5639]
洛赫特,M. 和 J. Merkle“椭圆曲线加密 (ECC) Brainpool 标准曲线和曲线生成”RFC 5639DOI 10.17487/ RFC5639,,<https://www.rfc-editor.org/info/rfc5639>
[RFC7027]
默克尔,J. 和 M. Lochter“用于传输层安全 (TLS) 的椭圆曲线加密 (ECC) 脑库曲线”RFC 7027 DOI 10.17487/RFC7027,,<https://www.rfc-editor.org/info/rfc7027>
[RFC8174]
莱巴,B.“RFC 2119 关键字中大写与小写的歧义”BCP 14RFC 8174DOI 10.17487/RFC8174<https://www.rfc-editor.org/info/rfc8174>
[RFC8422]
尼尔,Y.,约瑟夫森,S. 和 M. Pegourie-Gonnard“传输层安全 (TLS) 1.2 版及更早版本的椭圆曲线加密 (ECC) 密码套件”RFC 8422DOI 10.17487/RFC8422<https://www.rfc-editor.org/info/rfc8422 t6>>
[RFC8446]
雷斯科拉,E.“传输层安全 (TLS) 协议版本 1.3”RFC 8446DOI 10.17487/RFC8446,<https://www.rfc-editor.org/info/rfc8446>

7.2. 信息参考

[ANSI1]
美国国家标准协会“金融服务行业的公钥加密技术:椭圆曲线数字签名算法 (ECDSA)”ANSI X9.62,
[BSI1]
Bundesamt fuer Sicherheit in der Informationstechnik,“评估椭圆曲线实现的侧信道攻击抵抗能力的最低要求”,
[FIPS]
美国国家标准与技术研究所“数字签名标准 (DSS)”FIPS PUB 186-4DOI 10.6028/NIST .FIPS.186-4<https://doi.org/10.6028/NIST.FIPS.186-4>
[HMV]
汉克森,D.,梅内塞斯,A. 和 S. Vanstone,“椭圆曲线密码学指南”,Springer Verlag,
[ISO1]
国际标准化组织“信息技术 - 安全技术 - 数字签名及附录 - 第 3 部分:基于离散对数的机制”ISO/IEC 14888-3,
[ISO2]
国际标准化组织“信息技术 - 安全技术 - 基于椭圆曲线的密码技术 - 第 2 部分:数字签名”ISO/IEC 15946-2: 2002 年,
[NIST800-57]
美国国家标准与技术研究所“密钥管理建议 - 第 1 部分:概述(修订版)”NIST 特别出版物 800-57DOI 10.6028/NIST.SP.800-57ptlr4<https://doi.org/10.6028/NIST.SP.800 -57ptlr4>
[SEC1]
高效密码学组织标准,“SEC1:椭圆曲线密码学”,
[SEC2]
高效密码学组标准,“SEC 2:推荐的椭圆曲线域参数”,

附录 A。 测试载体

此非规范性附录提供了一些测试向量(例如,使用表 1 中定义的每条曲线进行 Diffie-Hellman 密钥交换)。 以下符号用于所有后续部分:

d_A:
A方秘钥
x_qA:
A方公钥的x坐标
y_qA:
A方公钥的y坐标
D b:
B方秘钥
x_qB:
B方公钥的x坐标
y_qB:
B 方公钥的 y 坐标
x_Z:
完成 Diffie-Hellman 计算后得到的共享密钥的 x 坐标,即预主密钥的十六进制表示
y_Z:
完成 Diffie-Hellman 计算所得的共享密钥的 y 坐标

使用 [SEC1] 中指定的 FieldElement-to-OctetString 转换方法将字段元素 x_qA、y_qA、x_qB、y_qB、x_Z 和 y_Z 表示为十六进制值。

A.1。 256 位曲线

曲线 BrainpoolP256r1

dA =
81DB1EE100150FF2EA338D708271BE38300CB54241D79950F77B063039804F1D

x_qA =
44106E913F92BC02A1705D9953A8414DB95E1AAA49E81D9E85F929A8E3100BE5

y_qA =
8AB4846F11CACCB73CE49CBDD120F5A900A69FD32C272223F789EF10EB089BDC

dB =
55E40BC41E37E3E2AD25C3C6654511FFA8474A91A0032087593852D3E7D76BD3

x_qB =
8D2D688C6CF93E1160AD04CC4429117DC2C41825E1E9FCA0ADDD34E6F1B39F7B

y_qB =
990C57520812BE512641E47034832106BC7D3E8DD0E4C7F1136D7006547CEC6A

x_Z =
89AFC39D41D3B327814B80940B042590F96556EC91E6AE7939BCE31F3A18BF2B

y_Z =
49C27868F4ECA2179BFD7D59B1E3BF34C1DBDE61AE12931648F43E59632504DE

A.2。 384 位曲线

曲线 BrainpoolP384r1

dA = 1E20F5E048A5886F1F157C74E91BDE2B98C8B52D58E5003D57053FC4B0BD6
5D6F15EB5D1EE1610DF870795143627D042

x_qA = 68B665DD91C195800650CDD363C625F4E742E8134667B767B1B47679358
8F885AB698C852D4A6E77A252D6380FCAF068

y_qA = 55BC91A39C9EC01DEE36017B7D673A931236D2F1F5C83942D049E3FA206
07493E0D038FF2FD30C2AB67D15C85F7FAA59

dB = 032640BC6003C59260F7250C3DB58CE647F98E1260ACCE4ACDA3DD869F74E
01F8BA5E0324309DB6A9831497ABAC96670

x_qB = 4D44326F269A597A5B58BBA565DA5556ED7FD9A8A9EB76C25F46DB69D19
DC8CE6AD18E404B15738B2086DF37E71D1EB4

y_qB = 62D692136DE56CBE93BF5FA3188EF58BC8A3A0EC6C1E151A21038A42E91
85329B5B275903D192F8D4E1F32FE9CC78C48

x_Z = 0BD9D3A7EA0B3D519D09D8E48D0785FB744A6B355E6304BC51C229FBBCE2
39BBADF6403715C35D4FB2A5444F575D4F42

y_Z = 0DF213417EBE4D8E40A5F76F66C56470C489A3478D146DECF6DF0D94BAE9
E598157290F8756066975F1DB34B2324B7BD

A.3。 512 位曲线

曲线 BrainpoolP512r1

dA = 16302FF0DBBB5A8D733DAB7141C1B45ACBC8715939677F6A56850A38BD87B
D59B09E80279609FF333EB9D4C061231FB26F92EEB04982A5F1D1764CAD5766542
2

x_qA = 0A420517E406AAC0ACDCE90FCD71487718D3B953EFD7FBEC5F7F27E28C6
149999397E91E029E06457DB2D3E640668B392C2A7E737A7F0BF04436D11640FD0
9FD

y_qA = 72E6882E8DB28AAD36237CD25D580DB23783961C8DC52DFA2EC138AD472
A0FCEF3887CF62B623B2A87DE5C588301EA3E5FC269B373B60724F5E82A6AD147F
DE7

dB = 230E18E1BCC88A362FA54E4EA3902009292F7F8033624FD471B5D8ACE49D1
2CFABBC19963DAB8E2F1EBA00BFFB29E4D72D13F2224562F405CB80503666B2542
9

x_qB = 9D45F66DE5D67E2E6DB6E93A59CE0BB48106097FF78A081DE781CDB31FC
E8CCBAAEA8DD4320C4119F1E9CD437A2EAB3731FA9668AB268D871DEDA55A54731
99F

y_qB = 2FDC313095BCDD5FB3A91636F07A959C8E86B5636A1E930E8396049CB48
1961D365CC11453A06C719835475B12CB52FC3C383BCE35E27EF194512B7187628
5FA

x_Z = A7927098655F1F9976FA50A9D566865DC530331846381C87256BAF322624
4B76D36403C024D7BBF0AA0803EAFF405D3D24F11A9B5C0BEF679FE1454B21C4CD
1F

y_Z = 7DB71C3DEF63212841C463E881BDCF055523BD368240E6C3143BD8DEF8B3
B3223B95E0F53082FF5E412F4222537A43DF1C6D25729DDB51620A832BE6A26680
A2

作者地址

莱奥妮·布鲁克特
secunet 安全网络
阿蒙斯特。 74
01067 德累斯顿
德国
电话: +49 201 5454 3819
约翰内斯·默克尔
secunet 安全网络
默根塔勒大道 77 号
65760 埃施伯恩
德国
电话: +49 201 5454 3091
曼弗雷德·洛赫特
英国标准协会
邮编200363
53133 波恩
德国
电话: +49 228 9582 5643