数据的完整性保护

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学 8
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 + 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
东南大学 3 东南大学 4
MD5
MIT的R. Rivest,RFC1321
• MD5计算出的信息摘录长度为128比特,用4个字表 示,分别记为d0,d1,d2,d3 • 输入信息被分成512比特的等长块,逐块处理,尾部 要进行填充
– 最后64比特指出原始信息长度,其余为100……
MD5摘录的初值
• • • • • d0 = 01234567H d1 = 89abcdefH d2 = fedcba98H d3 = 76543210H 常数Ti = [232|sin i|]
DSS签名方法:验证
• 计算模q下的签名逆元X-1 • 计算 dm • 计算 x = dmX-1 mod q • 计算 y = TmX-1 mod q • 计算 z = (gx * Ty mod p) mod q • 若 z = Tm,则签名得到确认
东南大学 23 东南大学 24
• 使用SHS为报文计算160比特长的信息摘录dm • 计算报文的签名 X = Sm -1(dm + STm) mod q • 向接受方传送报文 m、Tm和 X
东南大学 17
东南大学 18
基于RSA的数字签名
• 签名方
– 使用散列函数生成信息的摘录 – 使用自己的私钥对摘录加密形成签名 – 将信息和对应的签名交给验证方
El Gamal签名
• 准备条件
– 取P为质数,随机数g<P,x<P,计算y=gx mod P, 则y,g,和P为公钥,x为私钥
• 签名计算:令待签名的信息为M,取随机数k,使
k与P-1互质 – 计算 a = gk mod P – 利用Euclid算法计算M = (xa + kb) mod (P-1) – 将k保密,则M的签名为a和b
• 验证方
– 使用对方的公钥对签名进行解密 – 以同样的方法对信息生成摘录 – 比较通过解密和生成获得的摘录以确认签名 的正确
东南大学 19
• 签名验证
– 计算yaab mod P = gM mod P
东南大学 20
Digital Signature Standard签名方法
• 美国NIST于1991年8月建议的一种基于非对称加密 体制的数据签名实现方法,适合于智能卡系统 • 在DSS方法下,签名方知道S和T,验证方只知道T。 每次签名时动态地产生Sm和Tm,并将Tm通知验证 方 • 签名者的计算能力要求较低且计算时间较短,优于 RSA • 签名验证者的计算能力要求较高,劣于RSA • 可以自由使用,但安全性尚不确定
– – – – – 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) ↵ 16 d1 = (d1 + H(d2, d3, d0) + m14 + T36) ↵ 23 d0 = (d0 + H(d1, d2, d3) + m1 + T37) ↵ 4
东南大学 13
信息摘录函数MD的基本使用形式
• A→B: Ek[ M || MD(M) ]
– 明文和摘录都被加密保护,因此可提供加密 和认证服务。
• A→B:M || Ek[ MD(M) ]
– 摘录被加密保护,因此可提供认证服务。
• A→B: M || Eka[ MD(M) ]
– 由于ka只有A拥有,因此可提供A的认证和 数字签名服务。 东南大学 14
东南大学 10
安全散列标准SHS
• Secure Hash Standard所使用的是美国NIST提议的 信息摘录函数(称为SHA),使用五遍扫描 • 输入要求小于264比特,输出为160比特(5个字,分 别记为 A、B、C、D、E) • 信息分成若干个512比特的定长块,每一块与当前 的信息摘录值结合,产生信息摘录的下一个中间结 果,直至处理完毕 • SHS信息的填充与MD5相同 • 信息摘录的初值为 A = 67452301H,B = efcdab89H,C =
– s为双方为本次交互所定义的随机数,因此可提 供加密和认证服务,并可防止回放攻击。
东南大学 15
数字签名的基本概念
• 作用 • 基本要求
– 对报文的签名不会引起密钥 的泄漏 – 只有合法签名者才能产生合 – 验证签名者和日期 – 认证信息内容 – 允许第三方仲裁
4.2 数字签名技术
• 数字签名的最基本形 法的签名 抗攻击的 式是这个信息基于某 – 签名的合法性是可验证的 种特定的附加信息 可识别和无否认的 (如密钥或标识符等) 的信息摘录
东南大学 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
东南大学 6
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
信息摘录函数MD的基本使用形式
• A→B: Ek[ M || Eka[MD(M)] ]
– 可提供加密和A的认证与数字签名服务。
用于数据加密
• OFB方法
– b1 = MD(KAB|IV),bi = MD(KAB|bi-1) – 将明文分成与bi相同长度的块并与之半加, 便得到密文
• A→B:M || MD(M || k)
• 密钥的确定
– 随机选取 S < q – 令 T = gS mod p 私钥 公钥
东南大学 22
DSS签名方法:签名
• 选择每个报文使用的公开/隐蔽密钥 <Tm, Sm>
– 随机选取 Sm < q – 计算 Tm = ((gSm mod p) mod q) – 顺便计算 Sm -1 mod q(如利用Euclid算法),这样在 实际签名时不必再计算
东南大学 21
DSS签名方法:准备
• 选择q为160位的质数,p为512位的质数, 且有 p = kq + 1 • 产生g,使得gq = 1 mod p
– 取一随机数 h > 1,令 g = h(p-1)/q mod p 根据费马定理( mP-1 ≡ 1 mod P),所以在模 p下有 gq = hp-1 = 1
98badcfeH,D = 10325476H,E = c3d2e1f0H
东南大学 11
SHS的基本算法
• 先用这一块512比特的信息生成5个512比特的信息块, 用于对信息摘录的当前值实现五遍扫描 • 第一块为原信息块(字0到字15);从字16开始,字n = (字n-3 ⊕ 字n-8 ⊕ 字n-14 ⊕ 字n-16)↵ 1,n从16到79 • 令这80个字分别用w0, w1, ..., w79表示,则对于t从0到79, 有
– – – – – d0 = (d0 + F(d1, d2, d3) + m0 + T1) ↵ 7 d3 = (d3 + F(d0, d1, d2) + m1 + T2) ↵ 12 d2 = (d2 + F(d3,Biblioteka Baidud0, d1) + m2 + T3) ↵ 17 d1 = (d1 + F(d2, d3, d0) + m3 + T4) ↵ 22 d0 = (d0 + F(d1, d2, d3) + m4 + T5) ↵ 7
– – – – – – X = A; A = E + (A↵5) + Wt + Kt + f(t, B, C, D); E = D; D = C; C = B ↵ 30; B = X。
东南大学 12
SHS的基本常数与运算公式
• Kt = [230√2] = 5a827999H • Kt = [230√3] = 6ed9eba1H • Kt = [230√5] = 8f1bbcdcH • Kt = [230√10] = ca62c1d6H • f(t, B, C, D) = (B∧C)∨(~B∧D) • f(t, B, C, D) = B ⊕ C ⊕ D • f(t, B, C, D) = (B∧C)∨(B∧D)∨(C∧D) • f(t, B, C, D) = B ⊕ C ⊕ D (0 ≤ t ≤ 19) (20 ≤ t ≤ 39) (40 ≤ t ≤ 59) (60 ≤ t ≤ 79) (0 ≤ t ≤ 19) (20 ≤ t ≤ 39) (40 ≤ t ≤ 59) (60 ≤ t ≤ 79)
• 每块包含16个字,分别记为m0, m1, ..., m15。每块的 处理分四遍扫描,每遍对d0,d1,d2,d3使用不同的扰乱 函数进行计算 • 处理前的信息摘录与处理后的相加成为下一块处理时 信息摘录的当前值。最后一块信息处理之后的信息摘 东南大学 5 录当前值即为最终的信息摘录值。
i: 0..15
与数据完整性有关的威胁
• Content modification
– 包括对一个报文的内容进行插入、删除、改 变等的攻击动作
第四章 数据的完整性保护
• Sequence modification
– 包括对报文序列进行插入、删除和错序等攻 击动作
• Timing modification
东南大学 1
– 对报文进行延迟或回放
– 可提供认证服务,第二部分为M的MIC (message integrity code)。
• CFB方法
– 将明文分成 p1, p2, … – 计算 b1 = MD(KAB|IV),c1 = p1 ⊕ b1,bi = MD(KAB|ci-1),ci = pi ⊕ bi
东南大学 16
• A→B:Ek[ M || MD(M || s ) ]
– – – – – d0 = (d0 + I(d1, d2, d3) + m0 + T49) ↵ 6 d3 = (d3 + I(d0, d1, d2) + m7 + T50) ↵ 10 d2 = (d2 + I(d3, d0, d1) + m14 + T51) ↵ 15 d1 = (d1 + I(d2, d3, d0) + m5 + T52) ↵ 21 d0 = (d0 + I(d1, d2, d3) + m12 + T53) ↵ 6
东南大学 2
Message Digest
• 数据的“ 指纹”:完整性保护,数据特征 • 单向散列函数的定长输出
– 校验码的长度只有32比特 – 信息摘录的长度大于等于128比特
4.1 信息摘录技术
• 信息摘录的安全性基于生日问题
– 对信息摘录的攻击为给定信息M和Hash(M),要求构造 M’,使得Hash(M)=Hash(M’)。 – k/2个输入对产生相同输出的概率才会大于50% (k为输 出的可能) – 但是264个报文中寻找相同输出目前在计算上是不可行的
东南大学 9
MD5-PASS 4
• d(-i)∧3 = (d(-i)∧3 + I(d(1-i)∧3, d(2-i)∧3, d(3-i)∧3) + m(7i)∧15 + Ti+49)↵S4(i∧3) • 扰乱函数 I(x, y, z) = y ⊕ (x ∨ ~z) • 移位函数S4(i) = (i+3)(i+4)/2
相关文档
最新文档