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

4440                                                      软件学报  2025  年第  36  卷第  10  期


                 话密钥).
                    2) 情况  2:  π  为响应者的会话没有与之匹配的会话          (意味着敌手在另一端欺骗响应者完成会话并协商出会话
                             s
                             i
                 密钥).
                    3) 情况  3:  π  会话有匹配的会话   (但是敌手依然不能区分真实的会话密钥与均匀随机的字符串).
                             s
                             i
                    这几种不同情况的区别在于, 敌手是否尝试伪装成某个参与方, 或者敌手是否能获取关于已建立的会话密钥
                 的, 以及对手是否被允许拿到某个参与方的私钥. 在每种情况下, 都可以通过一系列游戏跳跃证明敌手必须直接突
                 破  AEAD  方案的安全性, 或者区分两个信息论意义上不可区分的比特串以获取关于密钥的任何非平凡的信息, 才
                 能成功进行攻击. 大多数游戏跳跃是使用             prf 或对偶  prf 假设的. 在这些游戏跳跃中, 用于组合两个中间值的              KDF
                 的输出   (其中至少一个是随机的, 具体取决于敌手能够破坏哪一个) 被替换为一个随机值.
                    证明中的一个技术难点是, 如何在           IND-CPA  安全性假设下, 处理     IND-CPA  安全的  PKE  的解密错误   (尽管解
                                                                                        ′
                 密错误的概率很低). 由于我们在保持了转换             T[PKE,G] (“去随机化”和“重加密”). 转换     U[PKE ,H] (“哈希”) 的角色
                                                                KDF  建模为随机预言机, 我们仍然可以通过类似             FO
                 由密钥派生过程中的密钥派生函数             KDF  扮演. 因此, 通过将
                 变换中构造解密预言机的证明技术, 将挑战者返回的值嵌入游戏中. 这些步骤涉及的游戏跳跃主要涉及情况                                   1  的
                 游戏  5 (Case 1: Game 5), 情况  2  的游戏  5 (Case 2: Game 5), 情况  3.2  的游戏  3 (Case 3.2: Game 3), 情况  3.3  的游戏  3
                 (Case 3.3: Game 3), 情况  3.4  的游戏  3 (Case 3.4: Game 3) 和情况  3.5  的游戏  3 (Case 3.5: Game 3). 在这些游戏中, 情
                 况  3.2  的游戏  3  是唯一依赖于  IND-CPA  安全性的游戏.
                    在  eCK-PFS-PSK  模型中, 敌手   A 和挑战者   C  之间进行的实验记作     Exp eCK-PFS-PSK (λ), 其中  KE  表示密钥交换协
                                                                           KE,n P ,n S ,A
                 议. 在该实验中, 挑战者维持着        n P  个参与方  P 1 ,...,P n P , 这些参与方通过协议和其他参与方交流. 每个参与方都可
                                                            s
                                    s
                 以运行最多    n S  个会话.  π  表示协议中用户   P i  进行的第   个会话. 敌手可以通过向挑战者的不同询问来创建会话,
                                    i
                                                                      i
                 发送或删除用户之间发送的消息, 同时通过              CorruptASK(i) 获取用户   的长期  PKE  私钥, 通过  CorruptEPK(i, s) 获
                       s
                              i
                 取会话  π  中用户   的临时   PKE  私钥, 并获取任意两个用户之间商定的预共享密钥.
                       i
                                                                                                 A 最简单
                    在研究敌手是否有能力获得会话密钥的时候, 需要排除敌手最简单的打破协议安全性的方法. 敌手
                                    s   t                                      s,t  代表会话编号. 敌手只要诚实
                 的方法就是在两个会话        π  与  π  之间运行协议, 其中下标     i, j 代表用户编号, 上标
                                    i    j
                                                      s                          A 返回真实的会话密钥或随机
                 地将双方发送的消息转发给对方, 最后对会话               π  进行测试  Test(i, s), 挑战者给敌手
                                                      i
                                                        t           Reveal, 泄露操作会向敌手返回会话密钥. 敌手
                 生成的会话密钥. 此时敌手只需要对另一个会话                π  进行泄露操作
                                                        j
                 A 可以直接将拿到的会话密钥和           Test 返回的密钥进行对比. 如果      Test(i, s) 返回的密钥和  Reveal 返回的密钥进行对
                                                                                Test(i, s) 返回的是随机生成的密
                 比, 如果两者一致, 则敌手      A 可以判定    Test(i, s) 返回的密钥是会话密钥, 否则判定
                 钥. 在这种情况下敌手可以平凡的打破协议的安全性. 因此, 在                  eCK-PFS-PSK  模型中, 需要通过贡献式密钥份额
                 (contributive keyshares) 和清洁谓词  ( clean eCK-PFS-PSK ) 的定义排除这种情况, 两个定义如定义  4、定义  5  所示.
                    定义                     s        π  在协议执行过程中发送的所有用于生成会话密钥的材料,                  π .m r  为
                                                                                                   s
                                                     s
                        4. 贡献式密钥份额. 令
                                          π .kid  为会话
                                           i         i                                             i
                                                                                       s
                      s                                       t     s              t  π  的贡献式密钥份额会
                 会话   π  在协议执行过程中收到的所有消息的连接. 如果              π .kid  是  π .m r  的子串, 则称  π  为
                      i                                       j     i              j   i
                 话  (contributive keyshares session), 简称两个会话匹配  (match).
                    清洁谓词    (  clean eCK-PFS-PSK ) 定义了安全实验中可以向敌手  A 泄露且不会平凡的破坏协议的安全性的密钥组合.
                 符合清洁谓词的要求意味着满足完美前向安全性                 (PFS) 以及可以抵抗     KCI (key compromise impersonation) 攻击.
                 KCI 攻击指的是敌手拿到       Bob  的全部长期私钥后, 尝试在       Bob  面前扮演  Alice.
                    定义  5. 清洁谓词 (  clean eCK-PFS-PSK ) 会话.  π  如果满足以下所有条件, 且  π  最终接受了会话密钥, 则称该会话是
                                                    s
                                                                           s
                                                    i                      i
                                                                   π
                                   s                     s          t           t                   i, j 之
                 清洁的: 1) 敌手未泄露    π  会话密钥; 2) 对于所有与     π  匹配的会话  , 敌手未泄露      π  的会话密钥; 3) 如果用户
                                                         i
                                                                                j
                                   i
                                                                    j
                                                                      CorruptEPK(i, s) 获得用户   的长期私钥以及
                                                                                           i
                 间的预共享密钥被泄露, 则敌手不能同时通过查询                 CorruptASK(i) 和
                  s                                             s   t
                 π  的临时私钥; 4) 如果用户    i, j 之间的预共享密钥被泄露, 且      π  与  π  匹配, 则敌手不能同时通过查询      CorruptASK( j)
                  i                                             i   j
                                                                                                  s
                                                                                           t
                                                                                s
                                                       t
                                        j
                                                                                          π
                 和   CorruptEPK( j,t) 获得用户   的长期私钥以及  π  的临时私钥; 5) 如果不存在与      π  匹配的会话  , 则在    π  接受会
                                                       j                        i          j      i
                 话密钥之前, 敌手不能查询        CorruptASK( j) (防止敌手平凡的扮演用户     j).
   38   39   40   41   42   43   44   45   46   47   48