Page 38 - 《软件学报》2025年第10期
P. 38

米瑞琪 等: 基于   Kyber 公钥加密的高效认证密钥交换协议                                               4435


                  1   后量子认证密钥交换构造相关工作与研究现状

                    抗量子   AKE  有两种主要的设计思路.
                    第  1  种设计思路是通过抗量子的数字签名进行身份认证, 并通过抗量子的公钥加密                         (KEM/PKE) 替代  DH  密
                 钥交换建立会话密钥. 这种思路的代表性工作是               Paquin  等人  [12] 在  TLS  中进行的实验, 该实验中测试了全部    NIST
                 后量子算法征集中的签名算法与公钥加密组合的表现, Sosnowski 等人                  [13] 做了类似的工作, 他们发现在同一证书
                 链中混合使用不同的签名可以提升握手性能.
                    第  2  种  AKE  设计思路是仅使用抗量子的公钥加密          (PKE/KEM) 完成身份认证并建立会话密钥. 由于后量子的
                 数字签名方案通常具有较长的公钥和签名长度, 而公钥加密或者密钥封装机制的公钥和密文长度通常较小, 因此
                 构造的认证密钥交换计算效率更高, 且传输的代价更小. 第                  2  种设计思路可以更加细分为: 1) 使用密钥封装机制
                 (KEM) 构造  AKE; 2) 通过被动安全的公钥加密方案          (PKE) 构造  AKE. 使用密钥封装机制      (KEM) 构造  AKE  的代
                 表性工作为    Schwabe 等人  [14] 提出的  KEMTLS, 该工作是在  TLS 1.3  协议的基础上, 通过    IND-CCA  安全的  KEM
                 构造的后量子     TLS  协议, 认证通过密钥封装机制完成, 其基本思想是, 能够成功解密对方发来的密文即可证明自
                 己是私钥的持有者. 作者测试了         NIST  算法征集中的所有      KEM  在  KEMTLS  的表现. 此外, 作者还给出了     KEMTLS
                 的安全性证明. 另一个代表性工作是           Hülsing  等人  [11] 提出的  PQ-WireGuard  协议, 这是一个虚拟专用网络  (VPN) 协
                 议, 作为  WireGuard [15] 协议的后量子版本. PQ-WireGuard  使用了  IND-CCA  安全的  Classic McEliece 替代使用长期
                 DH  密钥交换用于身份认证, 使用了         Saber 变体  [9] 的  IND-CPA  安全的  Dagger KEM  替代临时  DH  密钥交换. PQ-
                 WireGuard  实现了  WireGuard  的所有安全属性, 例如享受单程密钥交换的好处, 固定的密码套件, 并在性能上优于
                 IPsec 和  OpenVPN. PQ-WireGuard  比  WireGuard  慢不到  60%. 此外, 李子臣等人  [16] 提出了基于环上的  LWE  假设
                 (RLWE) 的认证密钥交换, 并在       eCK  模型下给出了安全性证明. 这是一个两轮的密钥交换, 根据文献                  [6] 分析, 两
                 轮的  AKE  无法做到完美的前向安全性.
                    对于通过    PKE  构建  AKE  的研究, 代表性工作包括      Xue 等人  [17] 提出的  AKE, 该工作从所谓的“2-key” KEM  出
                 发, 提供了一个通用的构造方法. 直接从弱安全              (IND-CPA) 的  PKE  构造  AKE, 因此可以去除一些冗余操作       (例如
                 哈希函数). 另一项具有类似思路的工作是由              Hövelmanns 等人  [18] 提出的一种通用的方法, 主要技术是将一些          FO
                 变换的机制移入      AKE, 这是一个两轮的密钥交换. 作者并未对这种通用框架进行实例化, 此外, 该构造的安全性证
                 明使用的模型要弱于       eCK-PFS-PSK  模型, 无法达到完美的前向安全性.

                  2   基础知识

                    Kyber-PFS-AKE  主要基于公钥加密     (PKE), 下面就相关概念和基本安全性定义予以介绍.
                                                                       $
                            ,
                                                                                                  x x ←− D
                    给定   n ∈ N [n] 表示  {1,2,...,n}. 对于有限集  S,  |S | 表示其基数.  x ←− S  表示从  S  中均匀随机选择元素  .   $
                                            ?
                 表示从分布    D  中随机采样元素     x.  = 为布尔表达式, 如果等式成立则值为          1, 否则为  0. 对于一个确定性算法      A, 其
                                                                                    $
                 输入为   x, 输出为  y, 记作   y ←− A(x). 对于一个概率算法  A, 其输入为  x, 输出为  y, 记作  y ←− A(x). 如果敌手  A 可以访
                                O
                 问预言机   O, 记作  A . 如没有特殊说明, 算法均默认为概率算法.
                    定义  1. 公钥加密方案. 密钥空间为        K  的公钥加密方案     PKE = (KeyGen,Enc,Dec) 由以下算法组成: (1) 密钥生
                                         n                                        (pk, sk). 密钥生成过程表示为
                 成算法   KeyGen: 给定安全参数    1  和公共参数   pp, 概率算法   KeyGen 输出一对公私钥
                                n                                                            m, 输出其加密
                                                      :
                 (pk, sk) ← KeyGen(1 ; pp). (2) 公钥加密算法  Enc Enc 输入公共参数   pp、公钥   pk  以及待加密明文
                 结果   ct. 公钥加密过程表示为     ct ← Enc(pp; pk,m). (3) 解密算法   Dec: 确定性算法   Dec 输入私钥   sk  和密文  ct, 输出
                          ′             m ← Dec(sk,ct).
                                         ′
                 解密结果   m . 解密过程表示为
                    ● 公钥加密方案的正确性. 解密过程存在一定的错误概率, 如果对于明文空间中任意                             m ∈ M, 满足  Pr[m =
                                                   n   ,                                 Enc  中的随机采样,
                 Dec(sk,ct)] ⩾ 1−δ, 其中  (pk, sk) ← KeyGen(1 ; pp) ct ← Enc(pp; pk,m), 概率来自于  KeyGen  和
                 则称公钥加密方案是       δ  -正确的.
   33   34   35   36   37   38   39   40   41   42   43