SM2算法原理及实现

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。生成

相关文章
相关标签/搜索