密码学中的随机预言机与非交互零知识证明
1. 随机预言机相关问题
1.1 攻击流程与问题分析
在密码学的某些场景中,存在这样的攻击流程:首先,$C \leftarrow F(pk, r)$,敌手随后向解封装预言机询问 $C$,得到值 $K$。最后,它向随机预言机 $R$ 发出查询 $r$,并检查是否 $R(r) = K$。若满足条件,敌手假定自己处于实际的 kem - cca 游戏中,并尝试破解方案,例如对挑战密文求 $F(pk, ·)$ 的逆,再通过额外的随机预言机查询来猜测比特 $b$;否则,敌手输出一个随机猜测。
然而,这个论证存在两个主要谬误:
- 敌手的随机性由 $B$ 决定,因此 $r$ 是由 $B$ 选择(并知晓)的。
- 即使敌手能对 $B$ 未知原像 $r$ 的密文 $C$ 发出解封装查询,归约 $B$ 仍可先给解封装查询一个随机答案来运行敌手,直到随机预言机检查失败,从而找出 $r$(因为它被查询到 $R_{pub}$)。随后,$B$ 可以倒回敌手的操作,对于相同的查询 $C$,此时 $B$ 知道正确答案 $R(r)$。
1.2 解决方案
为克服这些问题,我们使用随机预言机 $O : {0, 1}^* \to Dom$,并考虑如下敌手 $A$:
1. 输入公钥 $pk$ 后,敌手 $A$ 发出一系列解封装查询 $C_1, C_2, \cdots, C_{\ell}$(其中 $\ell = q - 1$),$C_i$ 通过将随机预言机应用于 $pk$、$C_1, \cdots, C_{i - 1}$ 以及先前查询的答案来计算。
2. 敌手 $A$ 按逆序检查答案 $K_{\e
超级会员免费看
订阅专栏 解锁全文
33

被折叠的 条评论
为什么被折叠?



