《现代密码学》散列函数与消息鉴别

《现代密码学》散列函数与消息鉴别

ID:40078259

大小:604.00 KB

页数:64页

时间:2019-07-20

《现代密码学》散列函数与消息鉴别_第1页
《现代密码学》散列函数与消息鉴别_第2页
《现代密码学》散列函数与消息鉴别_第3页
《现代密码学》散列函数与消息鉴别_第4页
《现代密码学》散列函数与消息鉴别_第5页
资源描述:

《《现代密码学》散列函数与消息鉴别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《现代密码学》散列函数与消息鉴别主要内容散列函数MD5算法安全散列算法SHA-1消息鉴别基于加密技术的消息鉴别基于散列函数的消息鉴别HMAC算法散列函数的概念散列函数(hash函数)可以表示为:h=H(m)其中,m为任意长度的输入消息(message),h为固定长度的消息摘要(messagedigest,MD),也称为散列码,函数H即为散列函数。散列函数H有以下基本特性:(1)H(m)能用于任意长度的的数据并产生定长输出。(2)对于给定的m,H(m)易于计算,使得软件和硬件实现成为实际可行。(3)H(m)算法公开,不需要密钥。H还必须具有以下安全特性:(1)单向

2、性:对任何给定的码h,寻找m使得H(m)=h在计算上是不可行的(2)具有弱抗碰撞性(weekcollisionresistance):对于任何给定的消息m,寻找一个与m不同的消息m’使得H(m)=H(m’)在计算上不可行。(3)具有强抗碰撞性(strongcollisionresistance):寻找任意两个不同的消息m和m’使得使得H(m)=H(m’)在计算上不可行。对散列函数必须具有的性质的理解:系统可能存在的伪造方式伪造方式一:若攻击者截获某一消息摘要h,如果H的逆函数H-1是易求的,可算出H-1(h)=m,满足h=H(m)。为防止这一点,必须要求散列函数

3、H为单向的,即计算H的逆函数H-1在计算上是不可行的。伪造方式二:从一个有效签名(m,y)开始,此处y=sigk(H(m))。首先计算h=H(m),并企图找到一个m’=m满足H(m’)=H(m)。若做到这一点,则(m’,y)也将为有效签名。为防止这一点,要求函数h具有弱抗冲突特性,即,对给定消息m,在计算上几乎找不到不同于m的m’∈X使H(m)=H(m’)。3.伪造方式三:首先找到两个不同的消息m和m’,满足H(m)=H(m’),然后把m给他人且使他人对m的摘要H(m)签名,从而得到y,那么(m’,y)是一个对于(m,y)有效的伪造。为防止这一点,要求函数h具有

4、强抗冲突特性,即,在计算上几乎不可能找到相异的m,m'使得H(m)=H(m’).注:强抗冲突自然含弱抗冲突!散列函数的应用保证数据的完整性1.数据存储中的完整性:假定m是要存储的信息,h=H(m)是消息m的散列值,并将h安全的保存,之后使用数据m时,用户都可以先用散列函数计算其散列值并与h比较,若相等,则说明数据m是完整的,否则说明m被篡改。2.通信过程中的数据完整性:假定m是要发送的信息,h=H(m)是消息m的散列值,将(m,h)发送给接受者,接收者验证h是否等于H(m)。(存在很大的安全问题!!!)问题:Hash函数H是公开的,攻击者如果将m改成m’,消息摘

5、要也会变成h’=H(m’),接收者无法发现消息的改变。一个解决方法:带密钥的hash函数h=H(k,m)攻击者无法计算h’=H(k,m’),因为没有密钥k。散列函数实现数据传输中的完整性保护模型:假定A要给B发送一条信息m,且他们共享一个密钥k,则A进行以下计算:h=H(m,k),并把m

6、

7、h(

8、

9、表示两个消息序列的连接)发送给B,B很容易计算H(m,k),验证m的完整性。散列函数的应用数字签名将散列函数应用于数字签名,一般方法是不直接对消息m签名,而对m对应的散列码h进行签名,这样可以提高签名的速度(

10、h

11、<

12、m

13、),且不泄露签名所对应的信息,因此散列函数在数

14、字签名中应用广泛。散列函数的一般结构目前使用的大多数散列函数,其结构都是迭代型的。将输入的消息m分成t个分组(m1,,m2,…,mt),每组固定长度为b位。如果最后一个分组的长度不够,需要对其进行填充。通常的填充方法是保证最后一个分组的最后64位为m的总长度,然后在中间填充。对散列函数的攻击穷举攻击:第一种是最明显的:给定消息M的散列值H(M),破译者逐个生成其他消息M′,以使H(M)=H(M′)假定其输出为m比特,那么寻找一个消息,使其散列值与给定散列值相同则需要计算2m次。第二种攻击方法设计更巧妙:攻击者寻找两个随机的消息:M和M′,并使H(M)=H(M′)

15、(这称为碰撞),这就是所谓的生日攻击,它比第一种方法来得容易。生日悖论在k个人中,要至少有两个人生日相同的概率大于0.5,问k的最小值是多少?使k个值不重复的取值方式数目N为:而k个数任意取两个值的方式总数为:365k因此存在不重复的概率为:而出现重复的概率为:。计算可得,当k=23时,至少有一个重复的几率为0.5073,当k=100时,至少有一个重复的概率为0.9999997、生日悖论原因虽然组中某个特定的人与组中其他人生日相同的概率很小,但组中任意两人生日相同的概率却很大。推论给定一个取整数的随机变量,它服从1到n间的均匀分布,另有一个包含k个(k≤n)这样

16、随机变量的选集,至少有一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。