《信息安全原理与实践-第二版05 哈希函数及其他》由会员分享,可在线阅读,更多相关《信息安全原理与实践-第二版05 哈希函数及其他(40页珍藏版)》请在金锄头文库上搜索。
1、 渊KKtSAttSINGHUAUNIVERSITYPRESS信息安全原理与实脸InformationSecurity:PrinciplesandPractice,2ndEdition美MarkStamp著张立“译渊RKtKtt版)政SINGHUAUNIVERSITYPRESS第5章哈希函数及其他清RKtKtt版)改SINGHUAUNIVERSITYPRESS5.1引言本章内容。加密哈希函数加密哈希函数的标准应用。哈希函数的高级应用*加密相关的副作用问题ls寅禀_G!髯u委】菅_vH菖R皇喀T已IP愧Ess5.2什么是加密哈希函数一个加密咏希函数h(0,必须满足下列所有条件;“压缉一一对于任何
2、长度的输入值x,输出值y=X的长度都比铮小。在实际使用中,通常输出值是固定长度的(比如160位长度的二进制值),而无论输入值的长度是多少。高效一一对于任何的输入值x,必须能鲟很容易地计算出00X)。当然,伴随着输入值x的长度增加,计算M0XJ所需要的计算量也会随之增加,但是,这不能增长得太快。单向一一给定任意值y要想找到一个值x,使得x)=y将是计算不可行的。换一种不同的说法,即对于景希运算,没有行之有效的逆运算抗弱碰撩性一一给定x和0X),要想找到任意y漱足y#x,并且(y)=XJ,这是不可能的。抗强碍撞性_一要想找到任意的x和y,佩得xfy,并且50x)=y),这是不可能的。也就是说,我们
3、不能锡找到任何两个输入,倬得它们经过哨希后会产生相同的输出值。渊月X朋SINGHUAUNIVERSITYPRESS腑希函数在数字签名上的应用。以前Alice对一条消息M实施笠名,是通过侧用她自已的私钻进行“加密“计兼得制的,即要计勐S=MIicse。如桂Alice发送消息M和笠名S给Bob,Bob尬能鳄通过执行验证过程MJ=SJaies来验证试筠名的有放性。但是,如柱消息M佳大,MIie尬是一个成本很高的计算,更个用提发送消息M和签名S的祸密需求了,这丽者都会侃大。相比之下,在计算一个MAC财,加密的速度会很快,而东在发送时,我们也仅霁要作随着消息发送少量附加的校验位(比如MAC)而已。*倬用
4、晗希函数之后假设Alice有一个加密哈希函数人那么,h(M可以被看健文档M的一个“指政“,也就怠说,0M比M4小得多,但是它能够标识出M、如录M不同于市,部么即使仅仅相差一个单狡的二进制位,啸帝函数执行的结柱也几才肯定会不同。而东,哈帝医数的抗碰撷特性意显相想要W萍换为任何不同的消息M,使得以伟=以M)是不可能的1一五哈希值发生相同的情况,该怎么办呢?好的明你巳经发玮了一个磅播,也就心显着你已经改砥了这个晋帝函数,于是你就成为一个著名的密码磁解专家了所以,这是个双蘸的好事渊KKHHSINGHUAUNIVERSITYPRESS签名的正确方法M,S=h(MJJucs一AliceBob计答ES=Ih
5、(MJIash(MJ-SJaes假设没有碰撞,那么对h(M)签名和对消息M实施签名的效果一样好。事实上,对晏希值实施签名比起仅仅对消息本身实施签名,实际上会更加安全。现在数字签名的安全性不仅依赖于公钥系统的安全性,而且也依赖于背希函数本身的安全性一一如果二者中有任何一个比较骏,签名体制就可能会被破解。lss累_G壹嚣u委u盲_vH菖R骜T事IP【Ess5.3生日问题假如你和其他N个人同在一个房间里。那么,N&须多大,你才有指望找到至少一个人和你有相同的生日呻?或者说N&须多大,才会使得“有苦个人与你生日相同“的概率大于1/2呻?你的生日是在一年中特定的一天。如果一个人和你的生日不同,那么他或她
6、的生日必定是在其他364天中的一天。假设所有的生日都是概率相等的,那么“一个随机选择的人不与你的生日相同“的概玄就是364/365。这样,所有的N个人都跟你的生日不同的概率就是(364/365)%,于是,至少有一个人与你的生日相同的概率就是:1-(364/365)设置这个表达式等于/2,并解出N,得到N=253。渊KKHHSINGHUAUNIVERSITYPRESS。真正的生日问题我们给房间里的N个人分别编上号码1,2,3,.,N。缉号为1的人的生日是一年365天中的一天。如果所有人的生日各不相同,那么编号为2的人必须与缉号为1的人的生日不相同,也就是说,编号为2的人的生日只能是割余的364天
7、中的任意一天。同样,编号为3的人的生日只能是再剩余的363天中的任意一天,依此类推。假设所有的生日都是概率相等的,考虐上述情况的补集,其最后的概率计算如下式所示13651365.364/365.363/365.(365N+D1365设置这个表达式等于/2,并解出N,我们得到N=2渊KKHHSINGHUAUNIVERSITYPRESS延伸对于一个生成N位二进制长度输出的安全哈希函数来说,一个计算开销大约以2V2为回子的强力破解方式,就能够对其发起有效的攻击。相比较而言,对于一个蜜钥长度为N位二进制数的安全对称密钥加密方案来说,对其强力碟解的计算开销的因子是2V.。所以,安全晏希函数的输出必须是对
8、称加密蜜钥二进制位数的大约两倍长,才能够获得与后者基本相当的安全水平。个xsttiSINGHUAUNIVERSITYPRESS5.4生日攻击假设哈希函数生成一个p位二进制长的输出。Trudy原则上能够发起一次生日攻击具体如下:Trudy浑择一条“恶怀“消恩E,这是妇想让Alice简名的消恩,但是Alice并不想对其笠复Trudy也创建了一条无哈的消息/,绘有信心Aice愿意对这条消恩笠名。rudy通过对消息实施软小的编楼性修改,生成2条该无宫消息前变体这些,我们分别标讨为儿其中|=0,1,.2吃1,所有消恩都与剧含义相同,本身不同,那么它们的哥希值岳示一样。同样,Trudy创建出2m2个恬意消恩E的变体,分别标设为5荣中历0.1,.2叹-1-这些消息也都与原始的想意消恩E表达吟样的吾义,但是它们皓哈带借不二祥Trudy对所有的恶意消息5bL及所有的无害消息/宝施哈帝运算。根据上述生日问题的讨论,纤舫有希通报到一个磁撞,比方说,WE)=日基二这待的一个础葛,Trudy痕8名。既烨看起来没有问题,Alice就对其迹行签名,并将/和AJJaee返回络Trudy既然0,部么由此可以得出(EJJain=UJjacs,于是,Trudy实际上舫已经获得了Alce对恶意消息下的筠名