音乐模式 |静音模式|音乐投稿
免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 回复 发帖
ECC算法也是一个能同时用于加密和数字签名的算法,也易于理解和操作。同RSA算法是一样是非对称密码算法使用其中一个加密,用另一个才能解密。

  公开密钥算法总是要基于一个数学上的难题。比如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<n)。

  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进行解码就可以得到明文。

  ECC的功能比RSA强。而令人感兴趣的是点和点的过程,这也是其功能之来源。
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
返回列表
高级模式 | 发新话题
B Color Image Link Quote Code Smilies