您好、欢迎来到盛赢棋牌网!
当前位置:主页 > 比特币曲线 >

区块链中的密码学(三)-椭圆曲线加密算法分析

发布时间:2019-08-14 13:39 来源:未知 编辑:admin

  在目前密码学的非对称加密算法中,RSA算法依然是一种主流,但是随着比特币中对于一种之前不太流行的算法:椭圆加密算法(ECC)的成功应用后,这种算法得到了很大的关注和普及。有一种说法是中本聪不信任RSA算法,认为美国人在其中留有后门,而据斯诺登的爆料也确实如此。相较RSA,ECC不仅在某种程度上杜绝所谓留有后门的情况,而且加密性能/安全性都有提高。本文就带大家一窥ECC算法的天地。

  鉴于ECC算法对数学知识要求比较高,不像RSA依赖于中学数学的水平,ECC用到了许多《近世代数基础》,《初等数论》的知识,本文将从一个密码学爱好者并区块链的角度,讲述一下ECC在区块链中的应用。

  这是一个数学公式,它的理论基础要从平行线谈起。数学上人们认为的平行线永不相交,这在某种程度上是无法验证的,因为没有一个无限远处的概念,假设平行线在无限远处相交,这样的好处是所有的直接都有且只有一个焦点,那么基于这个事实,我们中学学过的笛卡尔平面直角坐标系可以映射出另外一个平面坐标系:

  假设平面直角坐标系中有点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的公式,因为这种情况下的椭圆曲线的曲线如下:

  感兴趣的读者可以去模拟一下,通过修改a,b的值观看曲线变化。需要注意的是并不是所有椭圆曲线都是关于X轴对称的。读者可以改变多改变a1的值来发现。

  显然这并不是传统的数学上的加法,运算法则:任意取椭圆曲线上两点P、Q (若P、Q两点重合,则做P点的切线)做直线交于椭圆曲线的另一点R,过R做y轴的平行线交于R。我们规定P+Q=R。所以很容易理解nP的值,就是P经过n次加法(对P做切线,取得另一个交点的关于X轴的对称点)。

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

Copyright © 2002-2019 盛赢棋牌 版权所有