码迷,mamicode.com
首页 > 其他好文 > 详细

密码学之《Hash函数》

时间:2014-12-25 16:01:56      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:

延续昨天的肚子疼- -我们来继续看密码学。

Hash函数是啥?

Hash函数将任意长度的消息压缩为某一固定长度消息摘要的函数。是多对一的映射。

 

Hash函数有啥用?

1. 最基础的,加密。sha系列,md5等等一大波常用的加密都属于Hash函数。

2. 用于数字签名(关于数字签名,请看:http://www.cnblogs.com/kuoaidebb/p/4183605.html)。主要作用有两个:一,提高签名速度。由于Hash函数是消息摘要,在一定程度上缩短需要签名的消息的长度。二,不泄露签名所对应的消息。对消息m的签名是y=Sig(z),z=H(m),H是个Hash函数。y是签名应当公开,消息摘要z也可以公开,m可以保密。

3. 消息的完整性检测。在消息传输之前对消息做Hash变换,接收方对收到的消息原文作Hash变换,和接收到的Hash值对比,若相同,可以认为消息是完整无篡改的。貌似压缩文件是这样检测完整性的。

 

神马是强无碰撞,神马是弱无碰撞?神马又是单向的?

已知HASH函数f(x),单向是指已知x可以求出f(x),但是从f(x)无法推断x

弱无碰撞是指已知x,要找出y使得f(y)=f(x)是不可行的。

强无碰撞是指想找出数对x,y,使得f(x)=f(y)是不可行的

 

一个密码学上安全的Hash函数应该具有下列性质:

1. 对任意消息x,计算H(x)是容易的

2. 寻找两个不同的消息x,y使得H(x)=H(y)是难解的,即是强无碰撞的。

 

MD4和SHA-1分别输出多少位?

MD4输出一个128bit的消息摘要,SHA-1是160bit。

密码学之《Hash函数》

标签:

原文地址:http://www.cnblogs.com/kuoaidebb/p/4184641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!