“IND CCA KEM 游戏在挑战前后开放 $\mathsf{Decaps}(sk,\cdot)$ oracle,但禁止查询完整挑战封装 $c^ $。任何不同的相关封装仍允许查询,解封装返回…”
形式陈述
选择密文安全在统一安全实验框架内,把通用加密方案的 IND-CPA 对手接口扩展为带解密反馈的实验。本页与 CPA 页一致,采用获得公开输入
其中
并把
在 IND-CCA2 中,对手在挑战后仍可查询解密 oracle,唯一标准禁止项是直接提交
并要求它对所有 PPT 对手都可忽略。IND-CCA1 只在挑战前开放解密 oracle。
私钥 IND-CCA 使用同一挑战结构,但攻击者还需要加密 oracle,因为它不知道密钥;解密 oracle 的挑战后限制仍是不得直接查询
若攻击者构造
直觉
CCA 安全考虑主动攻击者:它不仅观察密文,还会自适应提交精心修改、拼接或重编码的密文,并利用明文、失败符号、错误类型或时间差作为反馈。禁止直接查询挑战密文只是避免让 oracle 原样回答挑战;真正的安全要求恰恰是其他相关查询也不能帮助判断挑战 bit。CCA2 允许挑战后继续试探,比挑战后关闭 oracle 的 CCA1 更强,也更贴近网络协议暴露解密接口的环境。
例子与边界
Textbook RSA 具有乘法可塑性,不满足 CCA 安全:由
对Textbook ElGamal,采用合法的定长群元素编码,选两条不同且等长的群消息
RSAES-OAEP 说明“使用了安全填充”仍不是完整安全陈述。OAEP 是一套确定的编码、掩码生成与解码检查流程;相关证明位于随机预言机模型,并依赖明确的 RSA 困难假设、哈希角色和消息—种子—模数长度条件。RFC 8017 规定互操作格式,却不把任意哈希、任意参数或任意冠以 OAEP 的实现自动提升为标准模型下的 CCA 证明。结论必须绑定到具体方案和归约,不能概括成“textbook RSA 加哈希即可”。
抽象游戏把所有无效密文统一映到
推论与应用
CCA 安全强化 CPA 安全,同时适用于公钥与私钥加密,只是两类方案向攻击者开放加密能力的方式不同。KEM 的 CCA 游戏把挑战改为真实封装密钥与独立随机密钥,并禁止直接解封装挑战
参考资料
- Eiichiro Fujisaki, Tatsuaki Okamoto, David Pointcheval, and Jacques Stern, “RSA-OAEP Is Secure under the RSA Assumption,” Journal of Cryptology 17, 2004,RSA-OAEP 的具体 ROM 归约及长度条件。
- RFC 8017, PKCS #1: RSA Cryptography Specifications Version 2.2, 2016,RSAES-OAEP 编码、MGF、参数与解码检查。
- Oded Goldreich, Foundations of Cryptography, Vol. 2, Cambridge University Press, 2004,Chs. 4–7。
- Dan Boneh and Victor Shoup, A Graduate Course in Applied Cryptography, version 0.6, 2023,Parts I–III。