Page 35 - 《软件学报》2025年第10期
P. 35
4432 软件学报 2025 年第 36 卷第 10 期
Kyber-AKE 会话密钥的安全性可以在 Canetti-Krawczyk (CK) 模型下证明 [6] , 但是只能保证会话密钥的弱前向
安全性, 研究表明, 对于两轮的密钥交换, 难以达到完美前向安全性 [6] . 前向安全性指的是即使会话参与方的长期
密钥遭到泄露, 也不会影响到泄露前生成的会话密钥的安全性. 弱前向安全性要求敌手不能主动参与会话 (完美前
向安全性游戏中敌手可以主动参与会话). 此外, Kyber-AKE 全部使用 IND-CCA 安全的密钥封装机制, 可能存在进
一步提升其计算性能的空间. 这是由于 Kyber-AKE 的会话密钥导出过程中, 对已经经过杂凑运算的会话密钥进行
了进一步杂凑运算, 该设计可能会导致冗余运算, 因此, 通过 IND-CPA 安全的 PKE 设计 AKE 可能会更加简洁. 采
用 IND-CPA 安全的 PKE 设计 3 轮 AKE 需要克服的主要难点在于: (1) IND-CPA 安全的 PKE 中存在一定的解密
错误概率, 需要解决由于解密错误导致的安全性问题. (2) 如何保证协议具有较强的安全性质, 如: 完美的前向安全
性, Kyber-AKE 并不具备该安全性质. (3) 如何让协议有较好的计算性能.
针对上述问题, 本文从 IND-CPA 安全的公钥加密 (PKE) 出发, 提出了一个安全、简洁且计算性能较高的后量
子 AKE, 并且在 eCK-PFS-PSK 模型 [7] 下给出了该协议的安全性证明. 由于 eCK-PFS-PSK 模型保证了当双方共享
一个没有被敌手窃取的预共享密钥, 或者至少有一方的长期或临时私钥没有被敌手窃取, 则会话密钥保持伪随机
性, 这意味着会话密钥拥有完美前向保密 (perfect forward secrecy, PFS) 性质. 该协议被命名为 Kyber-PFS-AKE, 并
具有更高的计算效率. Kyber-PFS-AKE 构造的主要思想如下.
(1) 从 IND-CPA 安全的 PKE 出发构造认证密钥交换: 认证密钥交换的会话密钥都是由一系列密钥材料 (如
图 2 中 C 1 ,C 2 ,C 3 ,...) 按顺序链式产生. 以 Kyber-AKE 为例, 双方会按照协议流程产生 KEM 临时公钥、KEM 共享
密钥或 KEM 的密文等, 这些被统称为密钥材料 (keying material), 用于生成双方的会话密钥. 在握手过程中, 发起
者 (响应者) 将协议过程中每一步生成的密钥材料连同上一步密钥导出函数 (key derivation function, KDF) 的输出
共同作为密钥导出函数的输入, 最终握手完成后, 密钥导出函数将用于生成传输消息的会话密钥.
会话 KDF C 1 KDF C 2 KDF C 3 KDF ...
密钥
m
① shk=H(pk,m)
T [PKE,G]
⊥
IND-CPA PKE′ ② U m [PKE′,H] IND-CCA
PKE
Enc'(m)=Enc(pk,m;G(m)) KEM
图 2 会话密钥的派生过程
NIST 征集的 IND-CCA 安全的 KEM 都是对 IND-CPA 安全的 PKE 进行 Fujisaki-Okamoto 变换得到 (以下简
称 FO 变换). FO 变换由两个变换组成, 分别称为 U 变换和 T 变换, 记为 FO = U ◦T G 和 H 为密钥导出函数, 给定
.
公钥加密方案 PKE. T 变换对 PKE 进行去随机化和重加密校验, 记作 PKE = T[PKE,G]. 具体来说, PKE 的加密算
′
′
′ ′ ′ ′ ′ PKE.Dec(sk,ct) 将
.
法定义为 PKE .Enc (pk,m) := Enc(pk,m;G(m)) PKE 的解密 PKE .Dec (sk,ct) 定义为: 首先通过
′ ′ ′ ′ ′
密文 ct 解密为 m , 并对 m 进行重加密校验, 若 Enc(pk,m ;G(m )) , ct, 则拒绝该密文. U 变换记作 KEM = U[PKE ,H],
′
′
其封装算法 KEM.Encaps(pk) 首先从消息空间均匀随机选择 m, 计算密文 ct ← PKE .Enc (pk,m), 并计算共享密钥
shk ← H(pk,m). 解封装算法首先进行解密, 计算 m := Dec(sk,ct) s , 为私钥中保存的随机种子. 解封装过程为: 如果
m , ⊥, 则 KEM.Decaps(sk,c) = H(pk,m), 否则 KEM.Decaps(sk,c) = H(s,ct).
Kyber-AKE 直接将 IND-CCA 安全的密钥封装机制 (KEM) 的会话密钥输入链式密钥中, 链式会话密钥在这
一步骤中形如 KDF(H(pk,m)). 会话密钥的生成过程如图 2 中的②③所示. 实际上, 链式密钥派生过程中的密钥派
生函数 (KDF) 可以扮演与 U 变换中的密钥派生函数相同的作用. 因此, Kyber-PFS-AKE 的设计中, 从一个 IND-
CPA 安全的 PKE 出发, 对其进行 T 变换, 随后用链式密钥计算中的密钥派生函数代替 U 变换, 这样做的好处是简
化了协议设计, 提高了效率并减小了代码规模. Kyber-PFS-AKE 生成会话密钥的过程如图 2 中的①所示.
(2) 去除对完整公钥的杂凑运算: 为了进一步提升协议的计算性能, 在会话密钥导出过程中, 发起者与响应者
均需要使用对方的公钥计算 IND-CCA 安全的 KEM 的共享密钥, 并将共享密钥作为密钥派生函数的输入, 计算公
钥 pk 的杂凑值是为了提供多用户安全性, 即当存在多个拥有不同公钥接收者的情况下, 敌手可能将同一个消息 m

