正文描述:《crypto4c-ch12-散列算法和mac算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第12章散列算法和MAC算法12.1安全散列算法(SHA)12.2散列函数Whirlpool12.3HMAC12.4CMAC散列函数消息摘要Messagedigest对于任意给定的消息,产生固定长度的散列值函数特性单向性抗碰撞性(弱、强)应用举例代替CRC等很多软件发行时文件的MD5校验,序列号识别产生消息认证码MAC散列函数的典型结构将输入的消息分为L个固定长度的分组,每个分组长为b位,不足时需填充,且最后一个分组包含输入的总长度。重复使用压缩函数f,其输入是上一步的n位结果(称为链接变量)及当前处理的b位分
2、组,输出一个n位分组。b>n,称为压缩。散列算法的总体结构MD5近几年对散列算法的分析就是从MD5上获得突破的,MD5的抗强碰撞性被打破。但是MD5是目前仍广泛使用的散列算法,而且看起来抗强碰撞性的丢失对实用影响不大。MD5算法是很多其他散列算法的前身,包括SHA-1。MD5算法将逐渐被取代,如SHA其它版本、WHIRLPOOL、RIPEMD-160。MD系列作者RonaldRivestRSA的设计者之一MD2、MD4、MD51989年、1990年、1991年应用曾经是使用最广泛的消息摘要算法但是散列值太短(1
3、28位)而SHA有160位MD5结构ABCD初值MD5细节输入任意长输出128位过程填充在Y[L]消息填充1~512位,使之≡448mod512填充64位长度值填充后消息被划分成512位分组初始寄存器(IV)(低端格式存储)A=67452301B=EFCDAB89C=98BADCFED=10325476分组处理…MD5单个分组输入128位+512位输出128位过程FGHI布尔函数T[]是常量表X[k]为512位分组中的第k个32位字常量表T[i]=232×abs(sin(i))T[1]=D76AA478T[2]
4、=E8C7B756T[3]=242070DBT[4]=C1BDCEEET[5]=F57COFAFT[6]=4787C62AT[7]=A8304613T[8]=FD469501T[9]=698098D8T[10]=8B44F7AFT[11]=FFFF5BB1T[12]=895CD7BET[13]=6B901122T[14]=FD987193T[15]=A679438ET[16]=49B40821T[17]=F61E2562T[18]=C040B340T[19]=265E5A51T[20]=E9B6C7AAT[21
5、]=D62F105DT[22]=02441453T[23]=D8A1E681T[24]=E7D3FBC8T[25]=21E1CDE6T[26]=C33707D6T[27]=F4D50D87T[28]=455A14EDT[29]=A9E3E905T[30]=FCEFA3F8T[31]=676F02D9T[32]=8D2A4C8AT[33]=FFFA3942T[34]=8771F681T[35]=699D6122T[36]=FDE5380CT[37]=A4BEEA44T[38]=4BDECFA9T[39]=F6BB
6、4B60T[40]=BEBFBC70T[41]=289B7EC6T[42]=EAA127FAT[43]=D4EF3085T[44]=04881D05T[45]=D9D4D039T[46]=E6DB99E5T[47]=1FA27CF8T[48]=C4AC5665T[49]=F4292244T[50]=432AFF97T[51]=AB9423A7T[52]=FC93A039T[53]=655B59C3T[54]=8F0CCC92T[55]=FFEFF47DT[56]=85845DD1T[57]=6FA87E4FT[
7、58]=FE2CE6E0T[59]=A3014314T[60]=4E0811A1T[61]=F7537E82T[62]=BD3AF235T[63]=2AD7D2BBT[64]=EB86D391MD5轮函数四个函数真值表bcdFGHI00000010011010010011001110011000011101010111011001111110MD5安全性特性散列码(128b)的每一个比特是输入的每一个比特的函数找两条碰撞消息的计算量是2^64(生日攻击)找给定消息的碰撞的计算量是2^128攻击进展2004年攻击
8、成功将被SHA的其它版本取代12.1SHA-1SHA:SecureHashAlgorithm作者NIST1993FIPSPUB180SHA{SHA-0}1995FIPSPUB180-1SHA-1修正版2002FIPSPUB180-2SHA-2包括SHA-256/384/512基于MD4,类似MD5SHA-1细节输入任意消息(<2^64位)输出160位过程填充消息、长度成512位分组初始
显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。