ECC椭圆曲线加密算法(1)
eth地址:0xd 91 c 747 b4a 76 b 8013aa 336 CBC 52 FD 95 a 7a 9 BD 3d 9
随着区块链的普及,椭圆曲线算法也成为密码学中的热门话题。比特币地址生成采用椭圆曲线加密算法。
椭圆曲线的一般表达式:
椭圆曲线不是椭圆,而是下图:
比特币使用特殊的椭圆曲线secp256k1,公式为:
这东西是怎么加密的?
19世纪,挪威青年尼尔斯·阿贝尔从普通代数运算中抽象出加法群(也叫阿贝尔群或交换群),使实数和椭圆曲线的算法统一在加法群中。这是什么意思?
我们在实数中用到的加减乘除也可以用在椭圆曲线上!
对,椭圆曲线也可以有加法和乘法运算。
数学中的一个群就是一个集合,我们为它定义了一个二元运算,我们称之为“加法”,用符号+表示。假设我们要经营集团?表示要定义的添加必须遵循以下四个特征:
如果加上第五个条件:
换向定律:a+b = b+a
然后,称这个群为阿贝尔群。根据这个定义,整数集是阿贝尔群。
换个话题,伽罗瓦和阿贝尔独立提出了群论,他们也被称为现代群论的奠基人。不幸的是,两位天才都英年早逝。
如上所述,我们可以基于椭圆曲线定义一个群。具体来说:
在椭圆曲线上,有两点A和B,这两点不重合,也不对称。两点在X处与曲线相交,X和X轴的对称点为R,这是A+B的结果..这是椭圆曲线的加法定义。
因为椭圆曲线方程中有一项,椭圆曲线必须关于x对称。
曲线:
坐标:A=(2,5),B=(3,7)
a和B正好在曲线上,因为坐标满足曲线公式。
那么如何找到第三个交点呢?
通过点A和B确定线性方程,
设直线的方程为:m是直线的斜率。
此外,得到c=1。
联立方程:
X(-1,-1)的X坐标-1的代换方式正好满足方程,所以A、B两点所在的直线与曲线相交于X(-1,-1),X点关于X轴的对称点为R (-65438)。
根据椭圆曲线的群论公式,我们可以方便地计算R点。
曲线方程:
当A=(x1,y1),B=(x2,y2),R=A+B=(x3,y3),x1≠x2,
m是斜率。
x3=
y3=m(x1-x3)-y1
A = (2,5),b = (3,7),r = (-1,1)符合上式。
椭圆曲线加法符合交换律吗?
先算(A+B),再算A+B+C。
先算B+C,再算b+c+a。
看图像,计算结果是一样的。让我们手动操作。
A+A呢?怎么算?
当两点重合时,不可能画出一条“穿过两点直线”。在这种情况下,
椭圆曲线过A点的切线与X点相交,X点关于X轴的对称点为2A。这种计算称为“椭圆曲线上的双重运算”。
下图显示了椭圆曲线乘法运算:
我们将在ECC椭圆曲线加密算法(2)中介绍有限域上椭圆曲线的离散对数问题。椭圆曲线加密是离散对数问题的应用。
参考:
/区块链-101-基础数学
/区块链-101-椭圆曲线加密
https://Andrea . corbellini . name/2015/05/17/椭圆曲线加密-a-gentle-introduction/