加密方案中的选择密文攻击与安全证明
1. 选择密文攻击概述
在加密领域,之前研究的一些加密方案能抵御被动窃听者的攻击,例如仅密文攻击或自适应选择明文攻击,但面对能够临时访问解密设备的攻击者时,这些方案可能就不安全了。这种攻击者可以执行选择密文攻击或自适应选择密文攻击。
以公钥一次性密码本为例,它通过将消息 $m$ 与伪随机密钥流 $G(x)$ 按位异或来加密消息,其中 $x$ 是秘密随机种子。然而,这种加密方案虽然对被动窃听者是安全的,但在面对选择密文攻击者时却存在漏洞。攻击者可以提交密文 $(c, y)$ 进行解密,若能从解密设备获得明文的最后一位,就能推导出 $f^{-1}(y)$ 的硬核位。若 $f$ 是 RSA 函数或 Rabin 函数,攻击者利用硬核位预言机就能计算出 RSA 或 Rabin 函数的逆,进而获取明文。
部分选择密文攻击在实际中也是一个现实威胁,攻击者不一定能获得完整的明文,可能只得到部分信息,但这也足以对加密系统造成破坏。因此,设计能抵御自适应选择密文攻击的加密方案是很有必要的。
2. 自适应选择密文攻击的定义
设 $E$ 是一个公钥加密方案,自适应选择密文攻击算法 $A$ 与挑战者的交互过程如下:
- 设置阶段 :挑战者 $C$ 为 $E$ 随机生成公钥 - 私钥对 $(pk, sk)$,将公钥 $pk$ 作为输入调用 $A$,私钥 $sk$ 保密。
- 阶段 I :攻击者 $A$ 发出一系列对不同密文 $c’$ 的解密请求,挑战者对有效密文进行解密并响应。
- 挑战阶段