http://www.7klian.com

一场椭圆曲线的寻根问祖之旅

NIST:
https://www.lmfdb.org/knowledge/show/ec.weierstrass_coeffs

橙色底纹的几个SEC曲线没有对应的NIST曲线,因此SEC尺度包括的曲线比NIST多一些,本文开头提到的secp256k1就是SEC单独存在的。
SEC2:
https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
https://link.springer.com/content/pdf/10.1007%2F3-540-46766-1_22.pdf

在「SEC 2」中还界说了sect163k1、sect163r1等曲线,个中,t暗示的是该曲线基于F2m。在「NIST FIPS 186-4」中定了P-256、B-163等曲线,P-暗示基于Fp,B-暗示基于F2m。
第一部门是「sec」,sec是Standards for Efficient Cryptography 的简称,是SECG宣布的一种暗码学协议尺度。

「SafeCurve」此处较久没有更新,有些尺度已经更新了多次,譬喻NIST关于数字签名的尺度 FIPS 186今朝在用的是第四版,第五版也在起草中了,从「NIST」官网中可见。
3、有限域巨细
Curve25519 wiki:

「NIST FIPS 186-4」尺度中界说了若干椭圆曲线尺度,譬喻NIST P-256、NIST P-384等,个中开头NIST也代表暗码协议尺度的名字。后续描写都是环绕这两个尺度来理会。
这个secp256k1为什么如此定名?
https://en.wikipedia.org/wiki/Twisted_Edwards_curve

Montgomery Curve wiki:
上述问题再一次触遇到我的常识盲区,所以接下来只好以截图为主,内容源自Wikipedia,,假如以为看着有点晕,可直接跳过看结论。
Curve25519是一种曲线,Ed25519是一种签名算法
调研发明,「STD」记录了比「SafeCurve」更为具体的尺度和曲线,感受这可以算是椭圆曲线族谱了。翻阅该网站记录的所有曲线,发明绝大部门照旧基于「(2)有限域」中的曲线,推荐的参数差异罢了。
有乐趣的同学可以搜索「Dual_EC_DRBG后门」,更大的八卦是听说中本聪选择secp256k1作为签名算法的曲线,而没有选择更常用的secp256r1,也是因为这个躲藏的风险。
目前咬文嚼字,摸清椭圆道理,揭开曲线家谱。
https://en.wikipedia.org/wiki/Twisted_Edwards_curve
又是一个深夜,拥抱最新的收获,混合更多的狐疑。电脑中正亏得播放“把太细的神经割掉,会不会较量睡得着…”
https://safecurves.cr.yp.to
在《一个数字激发的摸索——ECDSA理会》中提到的椭圆曲线secp256k1,它有一些特性,可以快速计较出recoveryID。
SECG宣布的「SEC 1」和「SEC 2」两个关于椭圆曲线的协议尺度,在「SEC 2」中有具体说明secp256k1以及其他曲线的参数界说。
对比之下,Pesudo-Random Curve的对应参数是通过随机种子计较出来的,有尺度的检讨算法可以检测所有参数是随机种子发生而来。
NIST是美国的国度尺度技能研究所(National Institute of Standards and Technology),因此,NIST的尺度也是美国尺度。

4、Koblitz Curve

STD:
Edward Curve和Montgomery Curve这两种曲线都具有非凡属性,譬喻可以或许为计较加快
基于Fp的椭圆曲线为:

椭圆曲线族谱

「Ed25519」的界说如下:

https://en.wikipedia.org/wiki/Curve25519
Koblitz Curves:

2、有限域
到了第五部门「1」,这是代表在前4个条件下提供了多种推荐参数配置,在SEC尺度中大部门该位都是1,即只提供一种推荐参数,sect163r2是一个破例。
笔者主要参考Wikipedia和相关组织网站的信息举办整理,不解除呈现马虎的大概,接待专家品评指正。

一个大概你没体贴过的问题

不难发明,前面提到过的各个公式都是Weierstrass equation的一种演化版本(Twisted Edward Curve看起来不是,可是它可以转换到Montgomery Curve,本质上也一样)
对应「2、有限域」中的两个椭圆曲线,Koblitz Curve别离简化为

「STD」中摆列了多个其他尺度,譬喻Brainpool曲线系列、BN曲线系列、MNT曲线系列等,这些系列的背后都代表了一种奇特的曲线生成哲学,或是为了提供可验证的随机数,或是为了提供满意Paring的特性,或是为了提高抗进攻的本领等等,每一份经心选择的参数都是一群数学家们鬼斧神工的设计。
5、末位标志

按照Wikipedia,或许可以整理出这么几个信息:

SEC尺度在这块的配置和NIST尺度雷同,我们会看到p系列的曲线有p192、p224、p256(secp256k1就是个中一种)、p384和p521,t/B系列有t163/B-163、t233/B-233等。
25519的取名来自于该曲线的有限域参数p=2255- 19

到此,为椭圆曲线寻根问到祖,而且从「STD」也获知了椭圆曲线家属的族谱。
「Edward Curve」界说如下:

在「NIST FIPS 186-4」中Koblitz Curve曲线以「K-」标志开头,别离有K-163、K-233等。
https://en.wikipedia.org/wiki/Montgomery_curve
说到这里,不得不提一个正经八卦。听说,NIST推荐的Pesudo-Random Curve,也就是P和B系列,并没有发布随机数挑选法则,外界存在一种疑虑,大概NSA(美国国度安详局)把握了后门,可以或许等闲破解这些暗码协议。
SEC1 : 
暗码学中利用椭圆曲线都是基于有限域的,除了素数有限域Fp之外,尚有另一种特征为2的有限域F2m(因名目问题,2m应为2的m次方,下同) ,Fp的巨细(元素个数)为p,F2m的巨细为2m。
后话

「Curve25519」界说如下:

本文先容暗码学中常见的椭圆曲线以及他们之间的干系,先容差异尺度体系的定名法则,实验描写椭圆曲线之间的家属演义干系。文章试图讲清椭圆曲线相关观念和成果,不涉及巨大的数学证明和推理,接待感乐趣的同学阅读。
http://cr.yp.to/ecdh/curve25519-20060209.pdf

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。