Skip to content

密钥封装机制(KEM)

Key encapsulation mechanism · KEM

用公钥产生共享会话密钥及其封装密文,并让私钥持有者恢复或拒绝该密钥的机制。

形式陈述

密钥封装机制是与消息加密并列的公钥原语,而不是公钥加密方案的子类:它不接收应用消息,而由三项相对安全参数 λ 的 PPT 算法直接定义接口:

(pk,sk)KeyGen(1λ),(K,c)Encaps(pk),KDecaps(sk,c)Kλ{}.

Encaps 不接收应用消息;它内部生成会话密钥 K 和短封装 c。对诚实封装,正确性要求

Pr[K=K]1δcorr(λ),

其中概率覆盖密钥生成、封装随机性及方案允许的解封装随机性,δcorr 应为零或可忽略。格基等具体 KEM 可能存在非零 decapsulation failure,必须把该概率纳入参数与组合分析,而不能只写“通常成功”。

KEM 的密钥不可区分游戏生成 (pk,sk),把 pk 交给 PPT 对手 A,再计算

(K0,c)Encaps(pk),K1U(Kλ),b{0,1}.

挑战是 (c,Kb):对手要判断拿到的是封装产生的真实密钥,还是独立均匀的同长度密钥。它输出 b,本页采用

AdvAkem(λ)=|2Pr[b=b]1|

作为归一化优势;采用成功率减 1/2 的文献会少一个因子 2。概率包括所有挑战者和对手随机币。IND-CPA KEM 游戏不开放解封装 oracle;公钥已经允许对手自行调用 Encaps,却没有“选择要封装的消息”这一步。

IND-CCA KEM 游戏在挑战前后开放 Decaps(sk,) oracle,但禁止查询完整挑战封装 c。任何不同的相关封装仍允许查询,解封装返回密钥或 ,所以攻击者能利用的有效性反馈、错误行为和自适应顺序都属于游戏。安全要求对每个遵守限制的 PPT 对手,归一化优势随 λ 可忽略;这与PKE 的 IND-CCA共享主动查询思想,但挑战对象是“真实或随机密钥”,不能逐字照搬消息挑战。

具体 KEM 必须定义非法密文处理。显式拒绝返回 ;implicit rejection 则可能由秘密值和密文导出伪随机替代密钥,以减少可观察失败差异。后者会改变解封装接口和安全证明,却不意味着无效封装变成有效;调用方仍需按规范处理认证失败与密钥确认。

直觉

KEM 把公钥密码最擅长的工作缩小到一件事:给接收者送达一段新会话密钥。发送者不选择这段密钥所代表的应用内容,而是让封装算法同时产生密钥和可公开传输的“钥匙盒”;只有私钥持有者能从盒子中得到同一把钥匙。

安全挑战因此不是两条明文,而是“这段候选密钥是否真的与封装相连”。即使攻击者看到 c,真实 K0 也应与独立均匀 K1 无法区分,后续对称组件才可把它当作普通随机密钥使用。

例子与边界

可以从合适的公钥加密构造 KEM:随机选择高熵值 R,令 c=Encpk(R),再通过规定的 KDF 导出 K。但安全性取决于 PKE 游戏、R 的分布、密文验证与 KDF;把一个任意可逆 PKE “加密随机消息”并不会自动得到 CCA 安全 KEM。

反方向也不对称。KEM 的 Encaps 没有消息输入,只输出由算法选择的密钥,因此单独的 KEM 不能自然替代任意消息加密。要保护正文,还需让 DEM 在 K 下加密数据并匹配 KEM 的攻击模型、密钥使用次数和错误处理。

若解封装接受大量非规范编码,攻击者可能构造 cc 却表示同一内部对象,再合法地查询 oracle,绕过“不得查询 c”的字节比较。方案必须规定规范编码、完整验证和等价表示策略;标准 CCA 游戏不会自动禁止所有语义等价密文来替设计者修补接口。

KEM 正确性也不能与密钥不可区分混同。若有效封装以小概率解出不同密钥,真实/随机挑战优势仍可能很小,应用却会间歇性失败;若失败概率与秘密或密文结构相关,还可能形成侧信道。参数选择需要同时满足安全优势与 decapsulation failure 目标。

推论与应用

KEM 是混合公钥加密和后量子密钥建立的标准组件。它把昂贵的非对称操作限制在固定长度封装,把任意长度数据留给高吞吐 DEM,并让两部分的安全实验、实现与标准化可以分别分析。

在组合中,CCA 安全、封装密钥长度、KDF 域分离、封装上下文绑定和失败行为必须与数据层契合。仅写“采用安全 KEM”不足以说明最终协议:还要指出采用的 CPA/CCA 级别、经典或量子对手、查询限制、具体优势损失以及解封装失败如何传递给上层。

NIST SP 800-227 的最终版给出当前 KEM 使用与实现建议,可用于核对密钥建立、密钥确认、接口验证和具体部署要求;它是工程规范,不取代本页的游戏定义或某个方案的归约证明。2025 年最终版已经取代早期 Initial Public Draft,历史讨论若引用草案应显式标注版本。

参考资料
  • Victor Shoup, “A Proposal for an ISO Standard for Public Key Encryption,” version 2.1, 2001,KEM/DEM framework。
  • Ronald Cramer and Victor Shoup, “Design and Analysis of Practical Public-Key Encryption Schemes Secure against Adaptive Chosen Ciphertext Attack,” SIAM Journal on Computing 33(1), 2003。
  • ISO/IEC 18033-2, Encryption Algorithms — Part 2: Asymmetric Ciphers, KEM interface and hybrid encryption。
  • NIST, SP 800-227: Recommendations for Key-Encapsulation Mechanisms, final, 2025-09-18;当前 KEM 使用、实现与密钥确认建议。Initial Public Draft 仅作历史版本。