密码学归约证明——基于伪随机函数的消息鉴别码方案

1. 消息鉴别码实验Macforge_{A,\Pi }\left ( n \right )

        运行Gen\left ( 1^{n} \right )得到密钥k,即k\leftarrow Gen(1^n)

        敌手A获得输入1^n,且能够访问预言机Mac,最终输出(m,t),其中t为消息m的鉴别码。设Q为敌手A访问预言机Mac的问询集合。

        当且仅当Vrfy_k(m,t)=1m \notin Q,实验输出1。其中Vrfy是鉴别码方案的验证方法。

        如果一个消息鉴别码MAC方案,满足\forall PPT敌手,存在可忽略函数negl(n),使实验Pr[Mac-forge_{A,\Pi} (n)=1]\leq negl(n),我们称其为适应性选择消息攻击下存在性不可伪造的,即CMA安全的。

2. 伪随机函数PRF​​​​​​​

       令\large F:\left \{ 0,1 \right \}^{*}\times \left \{ 0,1 \right \}^{*}\rightarrow \left \{ 0,1 \right \}^{*}是有效的、长度保留的、带密钥的函数。如果对于所有多项式时间的区分器\large D,存在可忽略函数negl(n),满足

\large \left | Pr\left [ D^{F_{k}\left ( \cdot \right )}\left ( 1^{n} \right )=1 \right ] -Pr\left [ D^{f\left ( \cdot \right )}\left ( 1^{n} \right )=1 \right ]\right |\leq negl\left ( n \right )

       则\large F是一个伪随机函数,其中\large k\leftarrow \left \{ 0,1 \right \}^{n}是随机均匀选择的,\large f\left ( \cdot \right )是将\large n比特字符串映射到\large n比特字符串的函数集合中均匀随机选择出来的。

        这部分在《密码学归约证明——选择明文攻击下的不可区分性》中已经有所描述。

3. 基于PRFCMA安全的消息鉴别码方案

  •  Gen:输入参数1^n,均匀随机选择k\leftarrow {\{0,1\}}^n
  • Mac:输入密钥k和消息m \in {\{0,1\}}^n,输出标记t:=F_k(m)
  • Vrfy:输入密钥k、消息m和标记t \in {\{0,1\}}^n,当且仅当t=F_k(m)时输出1。

        此方案我们只考虑密钥、消息和标记的长度相同的情况(即长度保留)。因此,倘若Mac接收到长度不为n的消息m,则不输出;Vrfy接收到长度不为n的标记,输出0。

4. 适应性选择消息攻击下存在性不可伪造

        若F是一个PRF,则上述构造方案\Pi是长度为n的定长消息的CMA安全的MAC方案。

        思路类似于之前的归约证明方式,定义一个区分器D可以区分随机函数与PRF,将此区分器归约到攻破上述MAC方案。

         假设一个消息鉴别码方案\Pi'=(Gen',Mac',Vrfy')是将上述MAC方案中的PRF替换为随机函数的变体MAC。因此在此种情况下,敌手A可以认为m是均匀分布在\{0,1\}^n上的,因此Pr[Macforge_{A,\Pi'}(n)=1]\leq \frac{1}{2^n}

        现在构造区分器D,目标是区分PRF与随机函数f:区分器D给定输入1^n,并且可以访问预言机O:\{0,1\}^n\rightarrow \{0,1\}^n

  • 运行A(1^n)。当敌手A向其MAC预言机问询消息m时,区分器DO问询并得到应答t,返回给A
  • A最终输出(m,t):区分器DO问询并得到应答t',若t'=tA从未问询过m,则区分器输出1。

        若D的预言机O是伪随机函数,则A所见情形与实验Macforge_{A,\Pi}中相同,满足Pr[Macforge_{A,\Pi}(n)=1]=Pr[D^F=1]

        若D的预言机O是随机函数,则A所见情形与实验Macforge_{A,\Pi'}中相同,满足Pr[Macforge_{A,\Pi'}(n)=1]=Pr[D^f=1]

        又\left | Pr[D^{F}(1^n)=1]-Pr[D^f(1^n)=1] \right |\leq negl(n),因此​​​​​​​Pr[Macforge_{A,\Pi}(1^n)=1]\leq \frac{1}{2^n}+negl(n)

        故此MAC方案是长度为n的定长消息的CMA安全的MAC方案。

5. 参考文献

       乔纳森.卡茨,耶胡达.林德尔著,任伟译,现代密码学——原理与协议,国防工业出版社,2017年第一版第4次印刷.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
证明多项式时间归约的传递性,我们需要证明以下命题: 如果问题 A 可以被多项式时间归约到问题 B,问题 B 可以被多项式时间归约到问题 C,那么问题 A 可以被多项式时间归约到问题 C。 假设问题 A 可以被多项式时间归约到问题 B,那么存在一个多项式时间可计算的函数 f,使得对于任何问题 A 的实例 x,都有 f(x) 是问题 B 的一个实例,并且 A 的解等价于 B 的解。即,如果我们可以在多项式时间内解决 B,那么也可以在多项式时间内解决 A。 同理,如果问题 B 可以被多项式时间归约到问题 C,那么存在一个多项式时间可计算的函数 g,使得对于任何问题 B 的实例 y,都有 g(y) 是问题 C 的一个实例,并且 B 的解等价于 C 的解。即,如果我们可以在多项式时间内解决 C,那么也可以在多项式时间内解决 B。 现在我们要证明的是,问题 A 可以被多项式时间归约到问题 C。为此,我们可以构造一个新的函数 h(x) = g(f(x)),它将 A 的实例 x 映射到 C 的实例 z,即 h(x) = z。 首先,我们需要证明 h(x) 是多项式时间可计算的。因为 f 和 g 都是多项式时间可计算的,所以 h(x) 也是多项式时间可计算的。 其次,我们需要证明 A 的解等价于 C 的解。假设 A 的解为 x*,B 的解为 y*,C 的解为 z*。因为 A 可以被多项式时间归约到 B,所以我们可以在多项式时间内求出 y*,使得 f(x*) = y*。同理,因为 B 可以被多项式时间归约到 C,所以我们可以在多项式时间内求出 z*,使得 g(y*) = z*。综合可得,h(x*) = z*,即 A 的解等价于 C 的解。 因此,我们证明了多项式时间归约具有传递性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值