手机版 | 登陆 | 注册 | 留言 | 设首页 | 加收藏
当前位置: 网站首页 > 炒币机器人 > 文章 当前位置: 炒币机器人 > 文章

椭圆曲线加密算法的特点

时间:2022-01-11    点击: 次    来源:网络    作者:佚名 - 小 + 大

椭圆曲线加密算法,英文全称是EllipticCurveCryptography,英文缩写为ECC,它是在有限域内、在椭圆曲线的代数结构的基础上对公钥进行加密的一种算法,这是比特币中采用的一种加密算法,目的在于确保只能由正确的拥有者来支付资金。

公钥的加密过程一般都是通过解出难度较高的数学问题来实现,早期的公钥系统常用加密方法是把一个很大的整数分解成两个或多个大素数的方式;而椭圆曲线加密算法采用的是“点乘”运算,即沿着椭圆曲线对一个点进行连续相加。与其他加密算法相比,椭圆曲线加密算法能够用更小的密钥实现相同的安全性,降低了数据储存和传输的需求,比如,一个128位的椭圆曲线加密密钥,能够提供的安全性与一个3072位的RSA密钥一样。

椭圆曲线加密算法最早是由美国华盛顿大学的数学教授NealKoblitz和普林斯顿大学教授Victors.Miller1985年开始独立使用,20042005年间得以广泛应用。由于其特点,这种算法常用于加密、数字签名以及伪随机码生成器等方面。

基于有限质数F,的椭圆曲线加密算法,根据其椭圆曲线所选参数的不同,一共有八类,表34列出了各类的特性。

其中,SECP256K1就是比特币系统选用的椭圆曲线加密算法的参数集。

用于加密的椭圆曲线是在有限域上的一.条平面曲线,这条平面曲线由满足一个椭圆曲线方程的点以及一个无限远的点(1表示)组成。有限域,是指对于一个集合F,其中的元素在经过加法和乘法计算后,得到的结果仍然包含在集合F的元素范围中。椭圆曲线加密算法中使用了两种类型的有限域:一种是质数域F,P为一个质数;另一种是基于特征值2的有限域F2m,即关于2"的有限域,其中m>1F2m又称为二元扩域。

在实数域中和质数域中,椭圆曲线的方程表达式为:y2=x2+a.x+b

方程中,x,y,a,b都为实数,不同的赋值可以画出不同的椭圆曲线,比如,当a=4,b=0.67时,其椭圆曲线如图3.7所示。

满足4a'+27b20的点,组成了椭圆曲线群,每一个椭圆曲线群都是加法群,因为在椭圆曲线中,定义了一种几何的加法运算:P+Q=R,这种加法与我们常规所认识的加法并不相同。另外,在椭圆曲线群中对点的映射进行了定义,即对于点P(xpyp),它关于x轴的映射为点一P(xp,yp)

在此基础上,P+Q=R的详细过程是这样的:假定在椭圆曲线上有两个不重合的点PQ,且P≠一Q,连接PQ作一条直线,这条直线交椭圆曲线于一点一R,这个一R点是R点关于x轴的映射,规定P+Q=R,这就是椭圆曲线中采用几何定义的“加法”,图3.8为一个例子。

但对于P点和一P点,连接这两个点的直线与椭圆曲线没有第三个交点,因此不能像上述的规则那样把P和一P相加。为此,在椭圆曲线群中包括一个无限点0,并定义P+(P)=0,这个等式经过变换后的结果就是P+O=P,定义域为椭圆曲线群。0点称为该椭圆曲线群的“加法恒等元”,所有的椭圆曲线群都有一个加法恒等元。

3.9为在一个椭圆曲线群中P+(P)的图示。父家

对一个点P倍加,即P+P,在椭圆曲线上的定义是:先从P点做椭圆曲线的切线,如果P点的y坐标不为0,则该切线会与椭圆曲线交于另一个点一R,再做点一R关于x轴的映射点R,定义P+P=2P=R。图3.10所示为对一条椭圆曲线上的点P的倍加过程:

如果P点在y轴上的坐标值为0.这样的点怎样倍加呢?对于这样的P点,在P点做椭圆曲线的切线,这条切线将总是垂直于x轴,与椭圆曲线没有交点,因此,定义这条切线在无限远处与椭圆曲线相交于点0,即当y,=0时,定义2P=O,交点在无限远处。

3.11yP=0时的倍加图例。

y,=0的情况下,因为2P=O,所以2P+P=P+O=P,即3P=P

同理可以推导出4P=O5P=P,6P=O,7P=P,以此类推。


加密算法的一大特性是,算法群的数据点是有限的。基于实数的加密算法存在舍人错误,导致速度慢而且不准确。因此,基于有限域F,F,m的椭圆曲线群在实践中得到了应用和发展。

F,表示数据取值范围为0p1,算到除以p的余数时结束,比如F23域由022的整数组成,并且这个域中的任意运算结果的范围也是022之间的整数。

位于基础域F。的椭圆曲线由位于域F。内的不同变量ab组成,椭圆曲线包含所有的点P(x,y),其中xy是域F,内的取值,这些点也都满足椭圆曲线方程模p的计算。

例如,ymodP=x'+ax+bmodp,如果a,b都位于域F,内,则椭圆曲线方程的基础域也在域F。内。

此时,只要x2+ax+b不含重复因式(或者等价于4a2+27b2modp不等于0),这一椭圆曲线就可以组成一个群,这个群中,既包含椭圆曲线上所有的点,也包含一个特殊的点,即无限远的O点,也就是加法恒等元。

下面举一个例子进行详细说明。比如.条椭圆曲线的基础域为F23,当a=1,b=0时,椭圆曲线的方程为y"=x'+x,(9,5)满足方程的要求,因为:y'modp=x+xmodP

25mod23=729+9mod23

25mod23+738mod23

2=2

按此方法,可以求出所有的满足椭圆曲线方程的23个点,即(0,0)(15)(118)(95)(918)(1110)(11,13)(135)(1318)(153)(1520)(168)(1615)(17,10)(1713)(1810)(1813)(191)(1922)(20,4)(2019)(21,6)(21,17)

在二维坐标轴上描出这23个点(见图3.12)

从图3.12中可以看出,每一个x值都有两个点,而且尽管看起来是随机分布的,实际上这些点是关于=11.5对称的。另外,根据实数的椭圆曲线的特性,每一个点都有一个负的、关于x轴的映射点。

在有限域F,内的椭圆曲线,与实数域的椭圆曲线有几个主要区别。有限域F,内的椭圆曲线群拥有数量有限的点,这特点正是加密算法所需要的,这些曲线都是由离散的点组成的,怎样把这些点连成一条曲线,或者这些曲线之间应用了怎样的几何关系,这些都不清楚。因此,应用于实数椭圆曲线群的几何规则并不能应用到有限域F,内的椭圆曲线群,不过二者的代数运算规则是相同的,另外与实数椭圆曲线不同的是,有限城F,内的计算不会出现舍人错误,这正是加密算法所需的。

有限域F。内的椭圆曲线的代数运算规则是这样的:

(1)两个不同的点PQ相加

对于点P(xp,yp),其对应的负值为一P(xp,ypmodP)。如果PQ为不同的点且P不等于一Q,则:

P+Q=R,R的坐标值为(XxR,YR)

此时连接PQ点的直线的斜率s:

s=(yp~Yg)/(xpxg)modp

xR=s2xpxemodp,yk=Yp+s(xpxp)

modP

计算出了xpYR,就可以确定R点所在了。

(2)P点倍加

y,不为0时,P点的倍加2P=R,则有:

8=(3x2+a)/(2yp)modp

xn82xpmodpYyr=)yp+s(xpxn)modp

基础域在二元扩域F,m内的椭圆曲线,其代数算法与上述算法原理相似,也包括异点加法和同点信加两种运算,只是情圆曲线方程的表达式不一样,是一个二元的表达式:r*xy=r2+ax+b。由于比特币系统只采用了在质数域F,的棚四曲线加密算法,因此本章不再对二元扩城F,m内的精圆曲线算法做详细说明。

以上内容由自动量化软件提供!

上一篇:区块的数据结构

下一篇:尚持云资产平台的简介

备案ICP编号  |   标题:炒数字虚拟加密货币-自动炒币量化交易机器人软件-免费测试  |  地址:自动炒币量化交易机器人软件  |  电话:12345678910  |