
学习密码学除了感叹人类的聪明外,就没有什么可以做的了……
之前了解的古典密码学随着计算机的发展,破解变得相当简单,现代密码学则采用更为复杂的算法来加密数据,使得破解的计算量相当大,可以认为一般情况下不可能完成。但计算机技术是不断发展的,计算速度不断提高,破解的可能性也在增加,为了提高数据安全性,密码体制也在改进。
椭圆曲线与RSA体制都有很复杂的算法,但椭圆曲线优于RSA的地方在于它有更高效的密钥,即短密钥,这对大量的电子交易来说非常适用。
那套很复杂的算法搞得人很头疼……说实话我也不知道它是怎么实现短密钥的,怎么保证破解复杂性的也不知道……大致是应用点的映射吧~
课题要研究的是SHA散列函数,所以下面就是SHA-1散列算法。
在某种情况下,我们要对想知道某条消息在传输过程中是否被改变了,单从字面上我们很难辨别,消息认证应运而生。我们只需要“验证”这一功能,不需要知道消息本身,SHA-1算法将任意长度的消息(长度小于2^64-1)转换为160位的消息摘要。在我们得到消息后,只需要验证这160位消息摘要就能知道消息是不是被改动,是不是伪造。
记得在做网站时有用到MD5加密。MD5也是种散列函数加密,任意长度的密码生成了固定长度的MD5值,我们只需要认证这个值是否符合就可以知道是不是用户的密码,根本不需要知道用户的真实密码。
SHA-1散列函数相对简单,80次迭代生成的散列值跟消息的每一个字符都相关,如果消息改动哪怕一个比特,散列值都会差得十万八千里。这对于想伪造一份消息的人来说,是不可能的。
将散列函数与椭圆曲线密码体制结合起来就形成了椭圆曲线签名体制(ECDSA)。
加密过程包括基于HASH函数生成消息摘要,椭圆曲线计算和模计算。签名证实过程包括生成消息摘要,模计算,椭圆曲线计算和签名核实。我们分别传送椭圆曲线加密的消息和签名,再通过加密后的消息和签名来认证消息是否在传输过程中被篡改过。
对于SHA-1函数内部的算法是这次学习的重点~~
1 comment:
hust才人,关注ing
Post a Comment