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

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


                    从表  1  中可以看出, 3  种攻击的主要影响因素包括用户数据域大小                d  、隐私预算   ε 、假用户比例     β 、目标项

                 目个数   r  等. 本文具体分析效果最好的       MGA  攻击受参数影响时攻击效用的变化: 当用户数据域大小                  d  增大时, 对
                                         d  在  MGA                                                 r > k  的
                 于   r ⩽ k  的子集选择机制, 因为          攻击效用公式的分子中, 因此, 当         d  增大时, 攻击效用增大; 对于
                 子集选择机制, 在     MGA  攻击效用公式中,      d  在分子的最高次幂为      2  次, 在分母的最高次幂为      1  次, 因此, 当  d  增大
                 时, MGA  攻击效用增大. 当隐私预算       ε 增大时, 对于   r ⩽ k 的子集选择机制    MGA  攻击效用减小. 当假用户比例        β 增
                 大或者目标项目个数       r 增大时, MGA  攻击效用都会增大. 第       4.3.1  节实验验证了这些参数对攻击效用的影响.

                 3.3   环机制攻击方法

                 3.3.1    RPA  攻击
                    对环机制进行      RPA  攻击时, 每个假用户从用户数据域{1, 2,…, d}中随机选择一个项目               t, 通过用户特定的哈
                 希函数将用户的项目        t 映射到  [0.0, 1.0) 范围内的一个数值    v  , 从覆盖区域  C v  中选择一个值发送给数据收集方.
                 RPA  攻击随机选择用户数据域中的项目, 因此假用户发送的数据服从均匀分布, 攻击效果较差, 可以作为参照组
                 与另外两种攻击效用进行对比.

                 3.3.2    RIA  攻击
                    RIA  攻击考虑了目标项目集       T, 从目标项目集     T  中为假用户选取项目, 扰动后发送给数据收集方, 这样设计的
                 数据可以提高目标项目的频率估计值. 具体来说, 攻击者控制每个假用户从目标项目集                            T  中随机选择一个项目      t ,
                 按照环机制的扰动规则, 先通过用户            i 特定的哈希函数     h i  将用户的项目  t 映射到  [0.0, 1.0) 范围内的一个数值   v i  ,

                 再依照概率分布抽取一个值          y i ∈ [0.0,1.0) , 将  y i  发送给数据收集方.

                 3.3.3    MGA  攻击
                    对环机制进行      MGA                                                   y i  :
                                    攻击时, 仍然需要考虑以下优化问题来生成每个假用户的扰动值
                                                      argmaxE[F y (t)],
                                                                i
                      y i  是用户                              y i  的表示形式为元组   (s, z), s 是哈希函数的种子, z 是用户
                 其中,         i 发送给服务器的扰动值, 在环机制中,
                 数据的扰动值.     F y (t) 是计数函数, 当  y i  支持项目  t 时, 即  y i  在  t 的覆盖区域中,   F y (t) 输出  1, 否则输出  0. 如果每个
                               i                                               i
                 假用户向数据收集方发送的数据都在目标项目的覆盖区域内, 可以使攻击效用达到最大化.
                    假用户的扰动数据设计步骤如下.
                    第①步. 使用哈希函数将所有目标项目映射到                [0.0, 1.0) 范围内, 例如, 用户  i 使用哈希函数    h i  将目标项目
                            ′  ′  ′    ′  ′  ′
                 t 1 ,t 2 ,t 3  映射为  t ,t ,t  , 其中,   t ,t ,t ∈ [0.0,1.0)  .
                            1  2  3    1  2  3
                    第②步. 在目标项目覆盖区域的交集中随机选取一个值, 将该值和哈希函数种子一同发送给服务器. 如图                                4  所
                    ′  ′  ′                                              z i  作为用户  i 的扰动值, 发送给服务器.
                 示,   t ,t ,t  的覆盖区域是  C t ′ ,C t ′ ,C t ′  , 在  C t ′ ,C t ′ ,C t ′  的交集区域选取一个值
                    1  2  3           1  2  3    1  2  3

                                                          0
                                                                    C t′ 2
                                                    0.75       0.25
                                                                     C t′ 3
                                                               z i
                                                          0.5


                                            图 4 环机制   C t′ 1  攻击的伪造数据示意图
                                                       MGA

                                                                       h m h m  可以使最多的目标项目哈希后的值
                    为了实现进一步优化, 本文从哈希函数集              H  中选取一个哈希函数         ,
                 覆盖区域存在交集. 具体来说, r 个目标项目          t 1 ,t 2 ,...,t r  的覆盖区域表示为  C t 1  ,C t 2  ,...,C t r  , 在最优情况下, 每个假用户
                 发送给服务器的扰动数据可以增加所有目标项目的频率估计值, 即假用户                         j 发送的扰动值     z j ∈ C t 1  ∩C t 2  ∩...∩C t r   .
   315   316   317   318   319   320   321   322   323   324   325