Skip to content

加密方案

Encryption scheme · Encryption syntax · 加密语法

由密钥生成、加密和解密算法及其消息、密文与失败接口组成的通用密码方案语法。

通用接口

加密方案不是某一种密钥分发方式,而是一组可被安全实验调用的算法接口。对每个安全参数 λ,方案

Π=(Gen,Enc,Dec)

规定消息空间 Mλ、密文空间 Cλ,并生成一对承担加密与解密角色的密钥

(ek,dk)Gen(1λ).

加密算法以消息和随机币为输入,输出密文;解密算法输出消息或统一失败符号

cEncek(m;r),Decdk(c)Mλ{}.

这个写法有意不规定 ek 是否公开。私钥方案令 ek=dk=k,通信双方共享同一秘密;公钥方案令 ek=pk 可公开而 dk=sk 保密。两者是同一语法的替代实例,不是学习 CPA 或 CCA 前必须同时掌握的两项组成部分。

正确性

正确性要求合法加密能够被配对密钥恢复。若方案允许极小失败概率,可写成

Pr[Decdk(Encek(m;r))=m]1εcorr(λ),

概率覆盖密钥生成和加密随机币;若解密本身随机,还要包含其随机币。完美正确性取 εcorr=0,统计正确性则需明确失败函数如何随 λ 衰减。对每条消息成立的逐点保证,比只对某个消息分布平均的保证更强,两者不能用同一行公式含混带过。

正确性只回答“诚实生成的密文能否恢复”,不回答旁观者或主动攻击者能知道什么。确定性替换密码可以完全正确却毫无保密性;反过来,一个看似隐藏消息、却偶尔把合法密文解成错误明文的接口也不是合格方案。安全性质必须另由挑战实验和攻击者能力定义。

随机币、nonce 与状态

内部随机币 r 由加密算法新鲜抽取,不进入调用者必须管理的公开协议状态。nonce-based 接口则显式写作

cEncek(N,m),Decdk(N,c)Mλ{},

其中 nonce N 通常公开,安全实验会规定由谁选择、是否要求唯一,以及重用时保证怎样降级。把 nonce 当成“可重复的随机币”会同时写错接口和安全边界;相同 nonce 下仍安全属于 misuse-resistant 等更强目标,不从通用语法自动获得。

认证加密还可带关联数据 A,使其不被加密却受完整性绑定;流式或 record-layer 方案可能维护状态并返回新状态。此时应把完整调用元组 (N,A,m) 和状态转移写进接口,解密失败也要明确是否消耗 nonce、序号或接收窗口。核心三算法仍提供共同骨架,但不能用无状态公式遮住实现可观察的状态变化。

私钥与公钥两条分支

对称加密中,持有 ek 就通常也持有 dk;安全游戏向攻击者提供加密 oracle,模拟它能选择消息并取得加密结果。在公钥加密中,攻击者直接得到 pk=ek,本来就能运行加密算法,因而相同选择明文能力不需要额外 oracle。这是接口来源不同,不是两套互不相关的机密性概念。

通用语法也不声称两类方案能任意互换。私钥加密依赖预共享秘密,适合高吞吐数据;公钥加密解决开放发送接口,却还需认证公钥并承担更高计算与密文膨胀成本。混合加密通常让公钥 KEM 建立会话密钥,再由对称 DEM 加密正文,其组合安全需要单独定理。

安全目标怎样接入

IND-CPA在这个接口上加入等长挑战消息与加密访问,要求攻击者不能辨认挑战来自哪条消息。IND-CCA继续开放受限制的解密查询,检验相关密文和错误反馈是否泄漏挑战。它们共享 Gen/Enc/Dec 语法,却要根据私钥、公钥、nonce、关联数据和状态分支准确规定 oracle。

消息长度、密文长度、访问模式和错误时间并不会因“加密”二字自动隐藏。若方案只承诺等长消息不可区分,密文长度仍可泄漏长度;若抽象解密只返回一个 ,实现却区分 padding、标签和解析错误,安全实验与现实接口便不一致。阅读安全定理时应先核对语法,再核对攻击者权限和泄漏函数。

例子与边界

一次一密符合三算法语法并达到单次使用下的完美保密,但密钥长度与消息相同,重复使用会暴露明文异或;正确接口和使用次数都是结论的一部分。Textbook RSA 也能在合适消息集合上正确解密,却是确定且可塑的,不满足一般 IND-CPA。两个例子分别说明:通用语法负责让问题可陈述,不把任何安全等级预装进定义。

哈希、数字签名和密钥交换不是缺少 Dec 名字的加密方案变体。哈希没有配对密钥与可逆正确性,签名验证不恢复消息,密钥交换让双方共同导出秘密而不直接加密任意正文。只有接口和目标都对齐时,才能复用加密安全游戏。

参考资料
  • 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。