椭圆曲线ECC加密算法入门介绍(五)

椭圆曲线ECC加密算法入门介绍(五),第1张

椭圆曲线ECC加密算法入门介绍(五),第2张

六、椭圆曲线上简单的加密/解密
  公开密钥算法总是要基于一个数学上的难题。比如RSA 依据的是:给定两个素数p、q 很容易相乘得到n,而对n进行因式分解却相对困难。那椭圆曲线上有什么难题呢?

  考虑如下等式:
  K=kG [其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数]
  不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。
  这就是椭圆曲线加密算法采用的难题。我们把点G称为基点(base point),k(k

  现在我们描述一个利用椭圆曲线进行加密通信的过程:

  1、用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。
  2、用户A选择一个私有密钥k,并生成公开密钥K=kG。
  3、用户A将Ep(a,b)和点K,G传给用户B。
  4、用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上一点M(编码方法很多,这里不作讨论),并产生一个随机整数r(r  5、用户B计算点C1=M+rK;C2=rG。
  6、用户B将C1、C2传给用户A。
  7、用户A接到信息后,计算C1-kC2,结果就是点M。因为
C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M
   再对点M进行解码就可以得到明文。

  在这个加密通信中,如果有一个偷窥者H ,他只能看到Ep(a,b)、K、G、C1、C2 而通过K、G 求k 或通过C2、G求r 都是相对困难的。因此,H无法得到A、B间传送的明文信息。

  密码学中,描述一条Fp上的椭圆曲线,常用到六个参量:
T=(p,a,b,G,n,h)。
  (p 、a 、b 用来确定一条椭圆曲线,G为基点,n为点G的阶,h 是椭圆曲线上所有点的个数m与n相除的整数部分)

  这几个参量取值的选择,直接影响了加密的安全性。参量值一般要求满足以下几个条件:

  1、p 当然越大越安全,但越大,计算速度会变慢,200位左右可以满足一般安全要求;
  2、p≠n×h;
  3、pt≠1 (mod n),1≤t<20;
  4、4a3+27b2≠0 (mod p);
  5、n 为素数;
  6、h≤4。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 椭圆曲线ECC加密算法入门介绍(五)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情