赞
踩
一个基本的加密目标:使各方能够以安全的方式通过开放的通信渠道进行通信。
机密性:防止(窃听/CPA)对手了解通过通道发送的消息内容(长度除外)。
消息认证(消息完整性):确保每一方都可以验证收到的消息是由声称已发送消息的一方发送的,并且没有以任何方式修改。
加密并不意味着任何真实性;消息完整性并不意味着任何保密性。
例:一次一密(完美的安全加密)——
同样的攻击适用于我们简单地将消息异或为(伪)随机字符串的任何方案,例如输出反馈模式(OFB)。
规范验证:
通常 Mac 是确定性的,在这种情况下 Vrfyk (m, t) 可以定义为:Vrfyk (m, t) = 1 ⇐⇒ Mack(m) = t
安全目标:在不知道 K的前提下,应该很难为新的消息M'想出 M′ ,T′ 使得 VrfyK(M ′ , T′ ) = 1。
如果对于所有 PPT 对手 A:Pr[A 赢得上述游戏] = Pr[Mac-forgeA,Π (n) = 1] ≤ negl(n),则MAC Π = (Gen, Mac, Vrfy) 在自适应选择消息攻击下是存在不可伪造性的。
MAC 仅保证消息是由知道密钥的一方发送的。控制通道的对手仍然可以重复、重新排序或删除消息。——使用序列号或时间戳。
如果 A 找到一个 (m∗, t∗),其中 m∗ /∈ Q,即它没有明确请求 t ← Mack(m∗),那么它会破坏 MAC。
只是找到一个新的 t ∗ ̸= t 其中 Vrfyk (m ∗ , t) = 1 不算作对MAC的break。满足甚至很难找到这样一个新标签的更强定义的 MAC 被称为强 MAC。
我们可以通过额外授予 A 访问验证 oracle Vrfyk (·) 的权限来加强安全定义。
对于具有规范验证的 MAC——我们将只讨论这些——这不会使攻击者变得更强大。
我们考虑一个可以向接收方发送消息/标签对的对手——因此使用接收方作为验证oracle——并且不仅可以获得接收方是接受还是拒绝,还可以了解接收方做出此决定所需的时间。
对手将 (m, t) 对发送给接收者。接收方逐字节比较 t ′ = Mack(m) 和 t,并在遇到第一个不相等的字节时立即拒绝。
攻击者发送 (m, t0)。 . .(m, t255) 到接收方,其中 tj 是前 i 个字节设置正确的字符串,第 (i + 1) 个字节等于 j,其余字节设置为 0x00。(一开始,i = 0。)
构建:
——添加“消息标识符”
如果 Π ′ 是安全的定长 MAC,则 Π 是安全的MAC
对于任何多项式 ℓ,如果 F 是 PRF,则长度为 ℓ(n) · n 的消息的 CBC-MAC 是安全的。
如果我们允许不同长度的消息,CBC-MAC 是不安全的。
两种允许任意长度消息的简单变体:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。