赞
踩
RSA密码体制在我们现在还是非常常用的,但是当今,计算机运算速度之快给该加密方式带来了一定的威胁,为了保证安全性,它的密钥长度需要一再地增大,使其运算负担也随之增大。相比下,椭圆密码体制ECC(elliptic curve cryptography)可以用短得多的密钥获得同样的安全性,因而具有广泛的前景,如果没记错的话,区块链技术就有用到椭圆曲线密码体制,感兴趣的小伙伴可以了解了解。
在密码中,比较普遍的是采用有限域的椭圆曲线,有限域的椭圆曲线指的是曲线方程y2+axy+by=x3+cx2+dx+e(一般形式)中,所有系数都是某一有限域GF(p)中的元素(其中p为一个大素数)。(GF(p)是定义在整数集合{0, 1, 2, …, p-1}上的域,GF(p)上的加法和乘法分别是模加法和模乘法)。其中最常用的曲线方程是y2≡x3+ax+b(mod p)(其中a,b属于GF(p),4a3+27b2≠0)。
查阅了很多网上的资料,椭圆曲线上的点集计算大多数的人都是通过代码或者伪代码(大多都是用暴力穷举)来表示给我们看。但是对于需要考试,用笔计算的我来说可能不太适用,所以在此,想和大家分享下动笔计算的方法。
以我们假定的椭圆曲线为例,即:椭圆曲线方程为:y2≡x3+x+1,p=23。所以满足a,b属于GF(p),4a3+27b2≠0。下面就开始计算点集E23(1,1),我们可以进行计算第一象限的点集,即{(x, y)|0<=x<p, 0<=y<p, x, y均为整数}:
1.对于每一x计算x3+ax+b(mod p),记录其值,假定为x’。
2. 对于每一个y计算y2(mod p),记录其值,假定为y’。
3. 如果x’==y’,就记录(x, y)这一点就是椭圆曲线点集中的一点。
4. 在这个例子中,x可以有23种可能,y也可能有23种可能,所以我们要计算232个点。
5. 最终满足条件的点所构成的集合就是该曲线方程的点集。
我们可以从步骤种看出我们所需要计算量之大,因此用程序跑,可能会省时省力。
在这个计算中,P点和Q点的相加不是我们初高中所列的式子(x1+x2, y1+y2)这么简单,椭圆密码体制下的P+Q有其一套运算。
假定P点为(x1, y1),Q点为(x2, y2),P+Q为(x3, y3),因此P+Q由以下规则确定:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。