ECC椭圆曲线加密算法(1)

btc地址:1 fmwxnjt 3 jvkahbqs 2 gas 6 plgvwx 1 ZP phf

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/