“数字签名让持有公钥的任何人验证来源与完整性,并不能隐藏消息;加密方案以机密性为主,解密能力通常只属于密钥持有者。实践中的 sign then encrypt 或 authenticated…”
形式陈述 ​
加密方案不是某一种密钥分发方式,而是一组可被安全实验调用的算法接口。对每个安全参数
规定消息空间
加密算法以消息和随机币为输入,输出密文;解密算法输出消息或统一失败符号
这个写法有意不规定
正确性 ​
正确性要求合法加密能够被配对密钥恢复。若方案允许极小失败概率,可写成
概率覆盖密钥生成和加密随机币;若解密本身随机,还要包含其随机币。完美正确性取
正确性只回答“诚实生成的密文能否恢复”,不回答旁观者或主动攻击者能知道什么。确定性替换密码可以完全正确却毫无保密性;反过来,一个看似隐藏消息、却偶尔把合法密文解成错误明文的接口也不是合格方案。安全性质必须另由挑战实验和攻击者能力定义。
直觉
内部随机币
其中 nonce
认证加密还可带关联数据
例子与边界
私钥与公钥两条分支 ​
在对称加密中,持有
通用语法也不声称两类方案能任意互换。私钥加密依赖预共享秘密,适合高吞吐数据;公钥加密解决开放发送接口,却还需认证公钥并承担更高计算与密文膨胀成本。混合加密通常让公钥 KEM 建立会话密钥,再由对称 DEM 加密正文,其组合安全需要单独定理。
安全目标怎样接入 ​
IND-CPA在这个接口上加入等长挑战消息与加密访问,要求攻击者不能辨认挑战来自哪条消息。IND-CCA继续开放受限制的解密查询,检验相关密文和错误反馈是否泄漏挑战。它们共享
消息长度、密文长度、访问模式和错误时间并不会因“加密”二字自动隐藏。若方案只承诺等长消息不可区分,密文长度仍可泄漏长度;若抽象解密只返回一个
接口边界中的实例 ​
一次一密符合三算法语法并达到单次使用下的完美保密,但密钥长度与消息相同,重复使用会暴露明文异或;正确接口和使用次数都是结论的一部分。Textbook RSA 也能在合适消息集合上正确解密,却是确定且可塑的,不满足一般 IND-CPA。两个例子分别说明:通用语法负责让问题可陈述,不把任何安全等级预装进定义。
哈希、数字签名和密钥交换不是缺少 Dec 名字的加密方案变体。哈希没有配对密钥与可逆正确性,签名验证不恢复消息,密钥交换让双方共同导出秘密而不直接加密任意正文。只有接口和目标都对齐时,才能复用加密安全游戏。
推论与应用
通用接口的作用,是让正确性、安全性与泄漏分别拥有可检查的量词。构造具体协议时,应先固定密钥角色、随机性来源、nonce 与状态,再选择匹配的 IND-CPA、IND-CCA 或认证加密目标;如果调用接口发生变化,安全实验也必须随之重写,而不是沿用旧结论。
这一分层也解释了混合加密的组合方式:密钥封装负责建立短期秘密,数据封装负责处理正文,各自正确性和安全性通过组合定理连接。组合前仍要核对公钥认证、密钥派生、关联数据、错误处理与 nonce 生命周期,因为三算法语法本身不会替协议补上这些条件。
参考资料
- Jonathan Katz and Yehuda Lindell, Introduction to Modern Cryptography, 3rd ed., CRC Press, 2020, Chapters 2–4 and 11–12。
- Dan Boneh and Victor Shoup, A Graduate Course in Applied Cryptography, version 0.6, 2023, Parts I–III。
- Oded Goldreich, Foundations of Cryptography, Vol. 2, Cambridge University Press, 2004, Chapters 5–7。