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

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


                     com_ver(SIG_ht,PK.seed,root,ADRS,idx_tree,idx_leaf,md ) → (True/False) :  算法用于验证  HT  的根节点是否
                                                                ′

                 与提供的承诺一致. 首先, 算法通过索引           idx_leaf  找到消息对应的叶子节点, 并开始使用         ht_sig 中提供的签名值和
                 认证路径中的哈希值, 逐层重构          HT. 通过对  SIG ht .getsig() 返回的签名值进行递归哈希计算, 算法逐层构建出树的
                                                            ′        root 一致, 则返回  True, 表明承诺验证成功; 否
                 内部节点, 最终得到树的根节点. 若计算出的根节点               root  与提供的
                 则, 返回  False, 表示验证失败. 具体流程见算法       9, 有关  ADRS  的操作参考文献    [30].
                 算法  9.  com_ver.

                 输入:  SIG_ht,PK.seed,root,ADRS,idx_tree,idx_leaf,md ;
                                                          ′
                 输出: True/False.
                 1.  ADRS.setLayerAddr(0);
                 2.  ADRS.setTreeAddr(idx_tree);
                 3. for   j = 0 to  d −1 do
                 4.    idx_lea f  为  idx_tree 中前  ⌊h/d⌋ bits;
                 5.   idx_tree  为  idx_tree 中后  ⌊h−( j+1)×(h/d)⌋ bits;
                           ′
                 6.   tmp = SIG ht .getsig(j);
                 7.   ADRS.setLayerAddr( j);
                 8.  根据算法   7  的第  1–14  行生成  root ;
                                              ′
                 9. endfor
                        ′
                 10. if  root == root then
                 11.  return True;
                 12. else
                 13.  return False;
                 14. endif

                  4.6   承诺和证明更新

                    当有键值对加入时, 首先查询该键值对是否存在于元组                  KV  中. 现在我们来讨论两种情况.
                    情况  1: 若不存在, 承诺值保持不变, 但证明改变. 换言之, 每当验证新的键值对时, 承诺值与前一个相同, 但生
                 成的证明不同, 因为键值对选择的          DFORC  节点发生了变化. 随后, 根据算法        1–9  来进行验证.
                    情况  2: 若存在, 则修改承诺值和证明, 并将来自元组            VM  对应的版本号增加      1. 根据元组  ID 中对应的索引, 对

                 应的叶子节点进行       VM[k] 次哈希, 并根据   Merkle 树调整从叶子节点到根节点的路径, 生成新的承诺值和证明. 接
                 下来, 根据算法    1–算法  9  对进行重新认证. 请注意, 当验证证明的正确性时, 还需要对               ID[key] 进行  VM[k] 次哈希,
                 以获得重建    DFORC  的新叶子节点.

                  5   安全性分析

                    在本节中, 我们通过以下定理来证明方案的量子安全. 需要注意的是,                      F  和   H  只是  Th 的替代哈希, 其中  F  对
                 应于消息长度  ,                   2n.
                            n H  对应于消息长度
                    定理  1. 对于方案中的参数      n、w、h、d、m、t、k, 如果满足以下条件, 那么           EQAS  是  PQ-EU-CMA  安全.
                    ●   Th (也是   F  和  H) 针对不同的调整, 具有后量子单函数多目标碰撞抗性.
                    ●  F  针对不同的调整, 具有后量子单函数多目标决策第              2  原像抗性.
                    ●   PRF  和  PRF msg  是后量子伪随机函数族.
                    ●  H msg  具有后量子交错目标子集抗性.
   96   97   98   99   100   101   102   103   104   105   106