主页 > imtoken钱包正确的下载地址 > 区块链中的密码学-椭圆曲线加密算法

区块链中的密码学-椭圆曲线加密算法

2021-05-02 椭圆曲线

首先:什么是椭圆曲线? Wolfram MathWorld 对椭圆曲线给出了非常准确和非凡的定义。但就目前而言,椭圆曲线可以简单理解为描述一组特定点的公式:

区块链中的密码学-椭圆曲线加密算法

这是一个数学公式比特币的加密算法,它的理论基础是从平行线开始的。数学上人们认为平行线永远不会相交,这有点无法验证,因为没有无穷大的概念,假设平行线相交于无穷大,这样做的好处是所有的直接和只有一个焦点,所以基于这个事实,我们中学学的笛卡尔平面直角坐标系可以映射到另一个平面坐标系:

假设平面直角坐标系中有一点A(x,y),我们定义X= x/z比特币的加密算法,Y=y/z,Z=z;那么联立方程:aX+bY+c1Z =0; aX+bY+c2Z =0 可以计算出z=0;所以我们的新坐标系中的点可以表示为:(X:Y:0);这是椭圆曲线建立坐标系的基础。

比特币的加密算法

我们来看看椭圆曲线的定义:数学上满足Weierstrass方程的曲线称为椭圆曲线

这个方程的曲线生成了许多图像。出于本文的目的,这里是介绍的公式:y2=x3+ax+b,因为这种情况下的椭圆曲线适合加密。例如y^2=x^3-10x+12的曲线如下:

区块链中的密码学-椭圆曲线加密算法

比特币的加密算法

有兴趣的读者可以通过修改a和b的值来模拟一下,观察曲线变化。应该注意的是,并非所有的椭圆曲线都关于 X 轴对称。读者可以改变a1的值来找出答案。

数学家在这条曲线上面定义了一条椭圆曲线的加法,在上面定义的公式曲线中:

区块链中的密码学-椭圆曲线加密算法

比特币的加密算法

显然这不是传统的数学加法,运算规则:在椭圆曲线上任意取两点P和Q(如果两点P和Q重合,则用点P的切线)做一条直线与椭圆曲线的另一点R相交,通过R使y轴与R'相交的平行线。我们规定 P+Q=R'。所以很容易理解nP的取值,即P相加n次(与P相切,得到另一个关于X轴对称的交点)。

椭圆曲线算法在比特币中的应用

比特币公钥加密使用的椭圆曲线参数符合secp256k1标准。在比特币流行之前,很少有人使用 secp256k1,但现在由于它的几个不错的特性变得越来越流行。比特币官方网站说:最常用的曲线是随机结构,但 secp256k1 是以一种特殊的非随机方式构造的,可以实现特别高效的计算。因此,如果实施得到充分优化,它通常比其他曲线快 30% 以上。 secp256k1 标准使用了一种特殊的算法,使生成的曲线比其他曲线快 30%。这在移动设备等小型设备上非常重要。椭圆曲线中还有一个有限域 Fp 的概念,它是一个以素数 p 为模的数的集合。它定义了椭圆曲线中x、y的取值范围,也有自己的加、乘、除、单位元(1)、零元(0)),满足汇率、分布rate.F23等列(p的值为23,要求p为素数),是0到22的一组数据,关于它的算法:

比特币的加密算法

加法:(18 + 9)mod 23 = 4 减法:(7 - 14) mod 23 = 16 乘法:4 * 7 mod 23 = 5 加法逆:x + 5 = 0 mod 23 => x= 18 乘法逆:x *9 = 1 mod 23 => x= 18 .

所以对于比特币中的椭圆曲线算法,你需要知道的是(p,a,b,G,n,h).p是Fp的模的范围,比特币中定义的是:

加密过程:从一个随机生成的私钥k开始,我们将它乘以曲线上预定的生成点G,得到曲线上的另一个点,也就是对应的公钥K。生成点是secp256k1标准,比特币**的生成点相同:{K = k * G}。

比特币的加密算法

这是比特币中的秘钥生成过程是比特币安全依赖的基础。

椭圆曲线算法安全、现状、应用

目前椭圆曲线的应用范围越来越广,在BTC、ETH、EOS、莱特币、DASH等都有使用。在密码学中正向计算很容易,但很难有效地执行称为陷门函数的反向算法。在 RSA 的章节中已经介绍过,随着因式分解的次数越来越大,RSA 的效率会越来越高,私钥增长的需求决定了 RSA 不能被视为完美的陷门函数。原来在椭圆曲线中如果你有两个点,一个初始点乘以K次到达终点,当你只知道终点时很难找到n和初始点,这就是awesome的基础活板门函数,近三年来的研究,数学家还没有找到证明它的方法。密码学家 Lenstra 介绍了“全球安全”的概念:假设**一个 ​​228 字节的 RSA 密钥比煮一勺水所需的能量更少。那么**一个 ​​228 字节的椭圆曲线密钥将需要能量来煮沸地球上所有的水。如果 RSA 要达到相同级别的安全性,您将需要一个 2,380 字节的密钥。上一篇文章提到,ECC可以使用更小的资源,产生更高的安全效果。

类别:

技术要点:

相关文章: