Page 318 - 《软件学报》2025年第5期
P. 318

2218                                                       软件学报  2025  年第  36  卷第  5  期


                 目标项目, 即假用户向数据收集方发送的数据包含                r 个目标项目和    k – r 个随机选择的非目标项目. 具体步骤如下.
                    第①步. 每个假用户初始化一个          d  比特的零向量    V.
                    第②步. 每个假用户将目标项目集            T  中的每个项目选中, 即集合       T  中每个项目在向量      V  中对应的比特设置
                 为  1.
                    第③步. 从非目标项目中随机选取           k – r 个项目, 将对应的比特设置为       1.
                    图  3  展示了  r ⩽ k 时对于子集选择机制    MGA  攻击的数据设计步骤.

                                                                 初始化零向量V
                                                     将目标项目对应位设置为1


                                                      随机选取k−r位设置为1
                                                                 MGA攻击伪造的向量V
                                         图 3 子集选择机制      MGA  攻击的伪造数据示意图

                         r > k 时, 每个假用户从   r 个目标项目中随机选取        k 个项目, 将这   k 个项目发送给数据收集方, 即假用户
                    (2) 当
                 从  r 个目标项目中随机选取       k 个项目, 将这  k 个项目对应的比特设置为         1.
                    最终, 假用户向服务器发送上述方法设计的二进制向量                  V, 以最大化地提高目标项目的频率估计值.

                 3.2   子集选择机制攻击效用

                 3.2.1   攻击效用评估模型
                    在子集选择机制中, 根据公式         (4) 可以得到目标项目      t 的频率估计值    f t ˆ  , 根据公式  (14) 可以得到目标项目  t 的
                            ˆ              ˆ
                 频率增加值    ∆f t  . 进一步, 可以将  ∆f t  展开为:

                                              1  ∑ n+m        1  ∑ n         ∑ n+m        ∑  n
                                      ˜
                               ˜
                               f t,b −q  f t,a −q  n+m  i=1  F y (t)−q  n  i=1 F y (t)−q  F y (t)  m  F y (t)
                                                                     i
                                                       i
                     ˆ
                        ˆ
                           ˆ
                                                                                    i
                                                                                                i
                   ∆ f t = f t,b − f t,a =  −  =            −              =   i=n+1   −     i=1     (16)
                               p−q    p−q         p−q             p−q       (n+m)(p−q)  n(n+m)(p−q)
                 其中,   y i  是用户  i 发送给服务器的扰动数据.    F y (t) 是计数函数, 当  y i  支持项目  t 时,   F y (t) 输出  1, 否则输出  0. 子集
                                                     i                             i
                                                      ˆ     f t  是项目  t 的真实频率, 因此, 有以下等式:
                 选择机制中, 项目的频率估计是无偏估计, 即            E[ f t ] = f t  ,

                                                 ∑ n
                                                     E[F y (t)] = n( f t (p−q)+q)                    (17)
                                                   i=1   i
                    目标项目    t 的频率增加值的期望为:

                                                   ∑ n+m          ∑  n
                                                        E[F y (t)]  m  E[F y (t)]
                                                ˆ
                                            E[∆f t ] =  i=n+1  i  −  i=1  i                          (18)
                                                    (n+m)(p−q)   n(n+m)(p−q)
                    公式  (18) 中的第  2  项只取决于真实用户, 为了简单起见, 将第          2           c t  . 根据公式  (17) 可以得到:
                                                                     项表示为常数
                                                         m( f t (p−q)+q)
                                                     c t =                                           (19)
                                                         (n+m)(p−q)
                    因此, 攻击的整体效用如下:

                                                          ∑  n+m  ∑
                                                                    E[F y (t)]
                                               ∑
                                                       ˆ
                                            G =    E[∆f t ] =  i=n+1  t∈T  i  −c                     (20)
                                                  t∈T        (n+m)(p−q)
                        ∑       m( f T (p−q)+rq)  ∑
                 其中,   c =   c t =           ,   f T =  f t  , c 与假用户发送到数据收集方的扰动值无关. 攻击的整体效用
                           t∈T   (n+m)(p−q)         t∈T
                 G     取决于计数函数的期望值     E[F y (t)]  .
                                          i
                 3.2.2    攻击效用
                                                          mrk
                    结论  1. 子集选择机制    RPA  攻击整体效用为                 −c .
                                                       (n+m)(p−q)d
                    证明: RPA  从用户数据域{1, 2,…, d}中随机选择       k 个项目, 因此, 每个项目被选中发送给数据收集方的概率是
                 k/d  . 可以计算出计数函数的期望值, 如下所示:
   313   314   315   316   317   318   319   320   321   322   323