<script type="text/JavaScript"> </script> <script src="http://a.alimama.cn/inf.js" type="text/javascript"></script>
椭圆曲线密码学(Elliptic curve cryptography,缩写为ECC)是基于椭圆曲线数学的一种公钥密码的方法。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。
椭圆签名算法应该是微软最先用在软件保护上的,我们平常用的25位序列号就是基于椭圆签名算法的。理论上说,椭圆签名算法是很难破解的,因为...(省略,感兴趣的可以看看《ECC加密算法入门介绍》这篇文章)。但是因为微软出于序列号长度的考虑,签名的长度只有62bit(具体是多少,忘了),所以可以暴力计算私钥。我们用过的算号器就是这样的。
定义:
椭圆曲线Ep=(p,a,b,G,n,h) p、a、b 用来确定曲线,G为基点,n为点G的阶,h是椭圆曲线上所有点的个数m与n相除的整数部分
签名过程
1,选择一条椭圆曲线Ep(a,b),和基点G
2,选择私有密钥k(k<n,n为G的阶),利用基点G计算公开密钥K=kG
3,取一个随机整数r(r<n),计算点R=rG
4,计算特征信息和R的散列值,即Hash=SHA(data,x,y)
5,计算sig≡r-Hash*k(mod n)
6,使用sig和Has