RSA算法的危机在于其纯在压指数算法,对ECC算法而言通常没有亚指数攻击算法算法
SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同等安全程度要求下,椭圆曲线密码较其余公钥秒速昂发所需密钥长度小不少。安全
ECC算法描述:编码
一、用户A选定一条适合加密的椭圆曲线Ep(a,b)(如:y2=x3+ax+b),并取椭圆曲线上一点,做为基点G。 二、用户A选择一个私有密钥k,并生成公开密钥(公钥PB)K=kG。 三、用户A将Ep(a,b)和点(公钥)K,G传给用户B。 四、用户B接到信息后 ,将待传输的明文(M)编码到Ep(a,b)上一点M,并产生一个随机整数r(r<n)。加密开始 五、用户B计算点C1=M+rK;C2=rG。 六、用户B将C一、C2传给用户A。 七、用户A接到信息后,计算C1-kC2,结果就是点M。由于C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M 再对点M进行解码就能够获得明文。加密
密码学中,描述一条Fp上的椭圆曲线,经常使用到六个参量: T=(p,a,b,G,n,h)。 (p 、a 、b 用来肯定一条椭圆曲线,G为基点,n为点G的阶,h 是椭圆曲线上全部点的个数m与n相除的整数部分)ip
这几个参量取值的选择,直接影响了加密的安全性。参量值通常要求知足如下几个条件:密码
一、p 固然越大越安全,但越大,计算速度会变慢,200位左右能够知足通常安全要求;密码学
二、p≠n×h;安全性
三、pt≠1 (mod n),1≤t<20; 四、4a3+27b2≠0 (mod p); 五、n 为素数; 六、h≤4。生成