- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2. 抗击密码分析攻击的强度 由于SHA的设计准则未被公开,所以它抗击密码分析攻击的强度较难判断,似乎高于MD5的强度。 3. 速度 由于两个算法的主要运算都是模232加法,因此都易于在32位结构上实现。但比较起来,SHA的迭代步数(80步)多于MD5的迭代步数(64步),所用的缓冲区(160比特)大于MD5使用的缓冲区(128比特),因此在相同硬件上实现时,SHA的速度要比MD5的速度慢。 4. 简洁与紧致性 两个算法描述起来都较为简单,实现起来也较为简单,都不需要大的程序和代换表。 5. 数据的存储方式 MD5使用little-endian方式,SHA使用big-endian方式。两种方式相比看不出哪个更具优势,之所以使用两种不同的存储方式是因为设计者最初实现各自的算法时,使用的机器的存储方式不同。 HMAC算法 HMAC的设计目标 Hash函数不使用密钥,不能直接用于MAC HMAC要求 可不经修改使用现有hash函数 其中镶嵌的hash函数可易于替换为更快和更安全的hash函数 保持镶嵌的hash函数的最初性能,不因适用于HAMC而使其性能降低 以简单方式使用和处理密钥 在对镶嵌的hash函数合理假设的基础上,易于分析HMAC用于认证时的密码强度 算法描述 Ipad:b/8Opad:b/8K+:左面经填充0后的K.K+的长度为b比特 HMAC的安全性 取决于hash函数的安全性 证明了算法强度和嵌入的hash函数强度的确切关系,即证明了对HMAC攻击等价于对内嵌hash函数的下述两种攻击 攻击者能够计算压缩函数的一个输出,即使IV是秘密的和随机的 攻击者能够找出hash函数的碰撞,即使IV是随机的和秘密的。 第六章重点 MAC的作用,使用方式,应满足的要求。 两种MAC:数据认征算法,HMAC。 Hash函数的作用,使用方式,应满足的要求。 两种Hash函数:MD5,SHA。 * * * * * * * * * * * * * * * * * * * * * * * * * 目前使用的大多数杂凑函数其结构都是迭代型的,如下图所示。 5.2.4 迭代型杂凑函数的一般结构 图5.4 迭代型杂凑函数的一般结构 CV0=IV=n比特长的初值; CVi=f(CVi-1,Yi-1)1≤i≤L; H(M)=CVL CVi-1,称为链接变量 通常bn,称函数f为压缩函数 分析时需要先找出f 的碰撞 MD4是MD5杂凑算法的前身,由Ron Rivest于1990年10月作为RFC提出,1992年4月公布的MD4的改进(RFC 1320,1321)称为MD5。 5.3 MD5杂凑算法 MD5算法采用图5.4描述的迭代型杂凑函数的一般结构,算法的框图如图5.5所示。 输入:任意长的消息(图中为K比特) 分组:512比特 输出:128比特的消息摘要。 5.3.1 算法描述 图5.5 MD5的算法框图 ① 对消息填充:对消息填充,使得其比特长在模512下为448,即填充后消息的长度为512的某一倍数减64,留出的64比特备第2步使用。 步骤①是必需的,即使消息长度已满足要求,仍需填充。例如,消息长为448比特,则需填充512比特,使其长度变为960,因此填充的比特数大于等于1而小于等于512。 填充方式是: 第1位为1,其后各位皆为0。 处理过程有以下几步: ② 附加消息的长度:用留出的64比特以little-endian方式来表示消息被填充前的长度。如果消息长度大于264,则以264为模数取模。 消息的长度为512的倍数(设为L倍) 消息分Y0,Y1,…,YL-1 每一分组为16个32比特长的字 消息中的总字数为N=L×16 消息按字表示为M[0,…,N-1]。 Little-endian将最低有效字节存于低地址字节。 相反的存储方式称为big-endian方式。 ③ 对MD缓冲区初始化:算法使用128比特长的缓冲区存储中间结果和最终杂凑值。 缓冲区表示为4个32比特长的寄存器(A,B,C,D),每个寄存器都以little endian方式存储数据。 其初值取为(以存储方式) AB=89ABCDEF, C=FEDCBA98,D实际上为EFCDAB89,98BADCFE ④ 以分组为单位对消息进行处理:每一分组Yq(q=0,…,L-1)都经一压缩函数HMD5处理。HMD5是算法的核心,其中又有4轮处理过程,如图所示。 ⑤ 输出:消息的L个分组都
文档评论(0)