信息安全原理及应用第5章消息认证资料教程.ppt

信息安全原理及应用第5章消息认证资料教程.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hash与MAC的区别 MAC需要对全部数据进行加密 MAC速度慢 Hash是一种直接产生鉴别码的方法 Hash可用于数字签名 常用Hash算法 迭代型hash函数的一般结构 f f f Y0 Y1 YL-1 b b b n n n n n IV=CV0 CV1 CVL-1 CVL 明文M被分为L个分组 Y0,Y1,…,YL-1 b:明文分组长度 n:输出hash长度 CV:各级输出,最后 一个输出值是hash值 无碰撞压缩函数f是设计的关键 迭代型hash函数 这种结构的hash函数已被证明是合理的,如果采用其他结构,不一定安全。 设计新的hash函数只是改进这种结构,或者增加hash码长。 算法的核心技术是设计无碰撞的压缩函数f,而敌手对算法的攻击重点是f 的内部结构,由于f 和分组密码一样是由若干轮处理过程组成,所以对f 的攻击需通过对各轮之间的位模式的分析来进行,分析过程常常需要先找出f 的碰撞。由于f 是压缩函数,其碰撞是不可避免的,因此在设计f 时就应保证找出其碰撞在计算上是不可行的。 MD5 hash算法 MD5 Hash Algorithm MD4是MD5杂凑算法的前身,由Ron Rivest于1990年10月作为RFC提出,1992年4月公布的MD4的改进(RFC 1320,1321)称为MD5。 MD5的算法框图 输入消息可任意长,压缩后输出为128bits。 算法步骤(1)-分组填充 消息 100…0 64bit 消息长度 填充图样 L×512bit Kbit 如果消息长度大于264,则取其对264的模。 执行完后,消息的长度为512的倍数(设为L倍),则可将消息表示为分组长为512的一系列分组Y0,Y1,…,YL-1,而每一分组又可表示为16个32比特长的字,这样消息中的总字数为N=L×16,因此消息又可按字表示为M[0,…,N-1]。 算法步骤(2)-缓冲区初始化 hash函数的中间结果和最终结果保存于128位的缓冲区中,缓冲区用32位的寄存器表示。可用4个32bits字表示:A,B,C,D。初始存数以十六进制表示为 AB=89ABCDEF C=FEDCBA98 D算法步骤(3) -HMD5运算 以分组为单位对消息进行处理每一分组Yq(q=0,…,L-1)都经一压缩函数HMD5处理。HMD5是算法的核心,其中又有4轮处理过程。 HMD5的4轮处理过程结构一样,但所用的逻辑函数不同,分别表示为F、G、H、I。每轮的输入为当前处理的消息分组Yq和缓冲区的当前值A、B、C、D,输出仍放在缓冲区中以产生新的A、B、C、D。 每轮又要进行16步迭代运算,4轮共需64步完成。 第四轮的输出与第一轮的输入相加得到最后的输出。 压缩函数中的一步迭代 基本逻辑函数定义 轮 基本函数 g g(b, c, d) f F F( b,c,d) ( b^c) V ( bˉ^d) f G G( b,c,d) ( b^d) V (c^ dˉ) f H H( b,c,d) b ? c ? d f I I( b,c,d) c ? ( b V dˉ) X[k] 当前分组的第k个32位的字。 第1轮 x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] x[8] x[9] x[10] x[11] x[12] x[13] x[14] x[15] 第2轮 x[1] x[6] x[11] x[0] x[5] x[10] x[15] x[4] x[9] x[14] x[3] x[8] x[13] x[2] x[7] x[12] 第3轮 x[5] x[8] x[11] x[14] x[1] x[4] x[7] x[10] x[13] x[0] x[3] x[6] x[9] x[12] x[15] x[2] 第4轮 x[0] x[7] x[14] x[5] x[12] x[3] x[10] x[1] x[8] x[15] x[6] x[13] x[4] x[11] x[2] x[9] T[i] T[1,…,64]为64个元素表,分四组参与不同轮的计算。T[i]为232×abs(Sin(i))的整数部分,i是弧度。T[i]可用32 bit二元数表示,T是32 bit随机数源。 T[1]= d76aa478 T[17]= f61e2562 T[33]= fffa3942 T[49]= f4292244 T[2]= e8c7b756 T[18]= c040b340 T[34]= 8771f681 T[50]= 432aff97 T[3]= 242070db T[19]= 265e5a51 T[35]= 6d9d6122 T[51

文档评论(0)

youngyu0301 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档