计算机安全完整性服务定义,计算机网络安全导论--5完整性保护.ppt

本文深入探讨了数据完整性保护中的MD5算法,这是一种广泛使用的单向散列函数,用于生成数据的“指纹”。MD5通过特定的运算过程,包括信息填充、初始化和多轮压缩,确保对任意长度报文都能产生固定长度的128比特信息摘录,以检测内容、序列和定时修改等攻击。该算法在实际中提供了较高的安全性,但存在生日攻击的理论风险。
摘要由CSDN通过智能技术生成

计算机网络安全导论--5完整性保护

东南大学 第四章 数据的完整性保护 与数据完整性有关的威胁 Content modification 包括对一个报文的内容进行插入、删除、改变等的攻击动作 Sequence modification 包括对报文序列进行插入、删除和错序等攻击动作 Timing modification 对报文进行延迟或回放 4.1 信息摘录技术 Message Digest 数据的“ 指纹”:完整性保护,数据特征 单向散列函数的定长输出 校验码的长度只有32比特 信息摘录的长度大于等于128比特 信息摘录的安全性基于生日问题 一定会有不同的输入产生相同的输出 k/2个输入对产生相同输出的概率才会大于50% (k为输出的可能) 但是264个报文中寻找相同输出目前在计算上是不可行的 MD5 MIT的R. Rivest,RFC1321 MD5计算出的信息摘录长度为128比特,用4个字表示,分别记为d0,d1,d2,d3 输入信息被分成512比特的等长块,逐块处理,尾部要进行填充 最后64比特指出原始信息长度,其余为100…… 每块包含16个字,分别记为m0, m1, ..., m15。每块的处理分四遍扫描,每遍对d0,d1,d2,d3使用不同的扰乱函数进行计算 处理前的信息摘录与处理后的相加成为下一块处理时信息摘录的当前值。最后一块信息处理之后的信息摘录当前值即为最终的信息摘录值。 MD5描述 输入:任意长度的报文 输入分组长度:512 bit 输出:128 bit 报文 MD5描述-step 1 附加长度值 对报文进行填充,使其比特数与448模512同余,即填充长度为512的整数倍减去64 填充方法:填充比特串的最高位为1,其余各位均为0 MD5描述-step 2 附加长度值 |M2|为512的倍数: Y0,Y1,…,YL-1 MD5描述-step 3 初始化MD缓存 MD为128bit,用于存放散列函数的中间及最终结果 MD可表示为4个32bit的寄存器(A,B,C,D),初始化如下: MD5描述-step 4 压缩:4个循环的压缩算法 MD5描述-step 5 输出 MD5摘录的初值 d0 = d1 = 89abcdefH d2 = fedcba98H d3 = 常数Ti = [232|sin i|] MD5-PASS 1 d(-i)?3 = (d(-i)?3 + F(d(1-i)?3, d(2-i)?3, d(3-i)?3) + mi + Ti+1)?S1(i?3) 选择函数 F(x, y, z) = (x ? y) ? (~x ? z) 移位函数 S1(i) = 7 + 5i d0 = (d0 + F(d1, d2, d3) + m0 + T1) ? 7 d3 = (d3 + F(d0, d1, d2) + m1 + T2) ? 12 d2 = (d2 + F(d3, d0, d1) + m2 + T3) ? 17 d1 = (d1 + F(d2, d3, d0) + m3 + T4) ? 22 d0 = (d0 + F(d1, d2, d3) + m4 + T5) ? 7 MD5-PASS 2 d(-i)?3 = (d(-i)?3 + G(d(1-i)?3, d(2-i)?3, d(3-i)?3) + m(5i+1)?15 + Ti+17)?S2(i?3) 选择函数 G(x, y, z) = (x ? z) ? (y ? ~z) 移位函数 S2(i) = i(i+7)/2 + 5 d0 = (d0 + G(d1, d2, d3) + m1 + T17) ? 5 d3 = (d3 + G(d0, d1, d2) + m6 + T18) ? 9 d2 = (d2 + G(d3, d0, d1) + m11 + T19) ? 14 d1 = (d1 + G(d2, d3, d0) + m0 + T20) ? 20 d0 = (d0 + G(d1, d2, d3) + m5 + T21) ? 5 MD5-PASS 3 d(-i)?3 = (d(-i)?3 + H(d(1-i)?3, d(2-i)?3, d(3-i)?3) + m(3i+5)?15 + Ti+33)?S3(i?3) 扰乱函数 H(x, y, z) = x ? y ? z 移位函数 S3(0)=4,S3(1)=11,S3(2)=16,S3(3)=23 d0 = (d0 + H(d1, d2, d3) + m5 + T33) ? 4 d3 = (d3 + H(d0, d1, d2) + m8 + T34) ? 11 d2 = (d2 + H(d3, d0, d1) + m11 + T35)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值