Page 384 - 《软件学报》2026年第4期
P. 384

张恩 等: 兼顾通信轮数与计算开销的门限多方隐私集合交集协议                                                  1825



                 算法  3. 多参与方门限测试算法       ( F MTT ).

                 输入: 布谷鸟哈希表     TC[i], OKVS  编码之后的数据结构     D j  和原始秘密  H(s i ), 其中  i 为哈希表的长度;
                 输出: 达到门限值的交集集合         I.
                 1. for i = 1 to b do
                               N
                 2.   for   j = 2 to   do
                 3.       s i,j = F Decode (D j ,TC[i]) //秘密重构者通过   TC[i] 中的数据元素解码数据结构  D j , 得到  i 组秘密份额.
                 4.   end for
                 5. end for
                 6. for  i = 1 to  b do
                       ′
                 7.      s = F RSS-Rec (s i,1 ,..., s i,N ) //输入  i 组秘密份额到弹性秘密份额重构算法, 重构出  i 个秘密.
                       i
                 8. end for
                 9. for  i = 1 to  b do
                 10.   if   H(s ) == H(s i ) // 当   s == s i  时, 此时由  TC[i] 解码出来的秘密份额与原始秘密相同.
                           ′
                                        ′
                           i            i
                 11.       insert TC[i] to   //此时  TC[i] 中的数据元素为交集, 将其插入交集集合  .

                                                                                I
                                      I
                 12.   else continue
                 13. end for
                 14. return  I //输出交集集合  .
                                      I
                  2.4   单向散列函数
                    单向散列函数有一个输入和一个输出, 其中输入称为消息                   (message), 输出称为散列值    (hash value). 单向散列
                 函数可以根据消息的内容计算出散列值, 而散列值就可以被用来隐藏原始消息的内容.
                    首先, 我们将明确给出单向散列函数的数学定义: 设               H(·) 为一个单向函数, 其输入为       x, 输出为  y.
                                               X
                    输入类型及范围: 输入       x 属于集合  , 其中   X  可以是某一特定数据类型的集合, 例如           X  可以是长度为    n 比特的
                                         n
                 二进制字符串集合, 即      X = {0,1} , 或者是某一特定有限域上的元素集合等, 具体取决于协议所处理的数据类型.
                                               Y
                    输出类型及范围: 输出       y 属于集合  , 通常   Y  也是某一特定数据类型的集合. 当          H(·) 用于数据哈希, 输出集合
                                                         λ
                 Y  是长度为  λ 比特的二进制字符串集合, 即        Y = {0,1} .
                    在本文   H(·) 用于数据哈希, 其作用是将任意长度的数据            x ∈ X  映射为固定长度的哈希值      y ∈ Y.
                  2.5   安全模型
                    本文在无合谋的半诚实模型下证明了协议的安全性, 假设所有协议参与者都在概率多项式时间内运行. 各
                 方诚实地执行协议, 腐败的参与方不表现出主动的恶意行为, 也不偏离协议. 本文采用理想-现实模型进行安全性
                 证明.
                    定义  2. 令   f : ({0,1} ) → ({0,1} )   是一个确定性函数,   f i  为安全计算协议  π 的底层执行功能函数.  P i  分别拥有
                                   ∗ N
                                            ∗ N
                                    Y i C  为腐败的参与方集合,
                 输入和输出数据集       X i  和  ,                λ 为安全参数.
                                π
                                          :
                    现实模型    View (λ,X 1 ,...,X N ) N  个参与方  P i  分别输入  X i  到协议  π 中, 获得输出  . 即:
                                                                                 Y i
                                C
                                                         Y i ← π(X i )                                (2)
                            Ideal (λ,(X 1 ,...,X N ), f C (X 1 ,...,X N )): 模拟器  ( Sim) 模仿现实模型中敌手视图, 控制腐败方的输入和
                                f
                    理想模型        C
                 输出.
                    安全性: 如果在多项式时间        S  内, 对于任意  C ⊆ [N] 满足:

                                       f                           c    π
                                                                                    ∗ N
                                   Ideal {S,(X 1 ,...,X N ), f C (X 1 ,...,X N )} X∈({0,1} ) ∗ N ≡View {X 1 ,...,X N } X∈({0,1} )  (3)
                                       C                                C
                 则认为协议在多项式时间内是安全的.
   379   380   381   382   383   384   385   386   387   388   389