首页 > 计算机考试 > 软件水平考试 > 软件指导 > 椭圆曲线ECC加密算法入门介绍(六)
椭圆曲线ECC加密算法入门介绍(六)

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

2006-12-25 | 作者:网友投稿

七、椭圆曲线在软件注册保护的应用

  我们知道将公开密钥算法作为软件注册算法的好处是Cracker很难通过跟踪验证算法得到注册机。下面,将简介一种利用Fp(a,b)椭圆曲线进行软件注册的方法。

  软件作者按如下方法制作注册机(也可称为签名过程)

  1、选择一条椭圆曲线Ep(a,b),和基点G;
  2、选择私有密钥k(k<n,n为G的阶),利用基点G计算公开密钥K=kG;
  3、产生一个随机整数r(r<n),计算点R=rG;
  4、将用户名和点R的坐标值x,y作为参数,计算SHA(Secure Hash Algorithm 安全散列算法,类似于MD5)值,即Hash=SHA(username,x,y);
  5、计算sn≡r - Hash * k (mod n)
  6、将sn和Hash作为 用户名username的序列号

  软件验证过程如下:(软件中存有椭圆曲线Ep(a,b),和基点G,公开密钥K)

  1、从用户输入的序列号中,提取sn以及Hash;
  2、计算点R≡sn*G+Hash*K ( mod p ),如果sn、Hash正确,其值等于软件作者签名过程中点R(x,y)的坐标,因为
   sn≡r-Hash*k (mod n)
   所以
   sn*G + Hash*K
   =(r-Hash*k)*G+Hash*K
   =rG-Hash*kG+Hash*K
   =rG- Hash*K+ Hash*K
   =rG=R ;
  3、将用户名和点R的坐标值x,y作为参数,计算H=SHA(username,x,y);
  4、如果H=Hash 则注册成功。如果H≠Hash ,则注册失败(为什么?提示注意点R与Hash的关联性)。

  简单对比一下两个过程:
  作者签名用到了:椭圆曲线Ep(a,b),基点G,私有密钥k,及随机数r。
  软件验证用到了:椭圆曲线Ep(a,b),基点G,公开密钥K。
  Cracker要想制作注册机,只能通过软件中的Ep(a,b),点G,公开密钥K ,并利用K=kG这个关系获得k后,才可以。而求k是很困难的。


共2页: 上一页 1 [2] 下一页
编辑整理:考试啦网站
本  文:椭圆曲线ECC加密算法入门介绍(六)
用户名: 密码: 匿名 [免费注册会员]
最新评论
编辑推荐文章
一周阅读排行