Page 445 - 《软件学报》2025年第8期
P. 445

3868                                                       软件学报  2025  年第  36  卷第  8  期



                 27.   set b = 1
                 28.   TSet[u] = e
                 29.  ELSE
                 30.   set b = 0
                 31.  END IF
                 32. ELSE
                 33.  IF BF 2 [h] ≠ 1 && BF 1 [h] = 1 THEN
                 34.   set BF 2 [h] = 1
                 35.   set b = 1
                 36.  ELSE
                 37.   set b = 0
                 38.  END IF
                 39. END IF
                 40. SEND b TO Client
                 Client:
                 41. IF op = add && b = 1 THEN
                 42.   UpdCnt[w] ← UpdCnt[w]+1
                 43.   XSet[w] ← (st i+1 , c i+1 )
                 44. IF op = del && b = 1 THEN
                 45.   UpdCnt[w] ← UpdCnt[w]−1
                 46. END IF

                    当对  w  对应的文件    ind  进行操作时, 客户端首先利用不同的密钥计算出关键词令牌                 t w 、文件索引密文    c i+ 以
                                                                                                     1
                 及包含令牌和文件索引密文的哈希值             h, 客户端检查关键词      w  是否针对此文件执行过更新. 当添加包含关键词               w
                 的文件时, 客户端首先判断此次操作是否是首次为关键词                   w  添加文件. 若从未添加过关键词为          w  的文件, 则客户
                 端会随机初始化      w  的状态信息   td, 并以此计算   u  和  e, 需要注意的是, 若添加的文件为第        1  个文件, 值  e 包含一个
                 状态终止标志; 若关键词       w  已添加过文件, 则进行正常计算, 此时值           e 包含了关键词    w  的状态信息. 之后, 客户端
                 将  (u, e, h, td) 发送到服务器 (删除时仅发送 (h, td)).
                    对于服务器, 当所执行的操作为添加关键词              w  对应的文件时, 首先获取该关键词对应的添加布隆过滤器和删
                 除布隆过滤器, 若获取失败 (表示该关键词为初次更新), 则创建两个空布隆过滤器                       BF 1 和  BF 2 , 分别表示该关键词
                 对应的添加布隆过滤器和删除布隆过滤器. 接下来判断该文件是否已存在, 若不存在, 则将包含关键词令牌和文件
                 索引密文的哈希值       h  插入到布隆过滤器     BF 1 中, 并保存该文件, 将   b  置为  1, 添加成功; 否则文件已存在, 将值      b  设
                 为  0. 与添加类似, 当所执行的操作为删除关键词            w  对应的文件时, 服务器首先判断该文件是否已被添加且是否被
                 删除, 若该文件已被添加且未被删除, 服务器将包含关键词令牌和文件索引密文的哈希值                              h  插入到布隆过滤器
                 BF 2 中, 将  b  的值置为  1, 删除成功; 否则, 文件曾被添加但被删除或未被添加, 将           b  的值设为  0, 删除失败. 最后, 服
                 务器将值   b  发送给客户端, 表示服务器端的操作结果.
                    客户端接收到服务器发来的            b, 若  b = 1  且对该文件的操作为添加, 表示添加成功, 客户端将更新计数器
                 UpdCnt 的值加   1, 并更新映射   XSet, 若  b = 1  且对该文件的操作为删除, 表示删除成功, 客户端将更新计数器
                 UpdCnt 的值减  1; 否则, 表示客户端对该文件的操作不合理.
                    (3) 搜索算法   Search
                    算法  3 详细描述了    RFBC  方案的搜索算法. 当进行联合关键词查询时, 客户端首先确定文件更新计数器                      UpdCnt
                 中值最小的关键词 (假设是        w 1 ), 然后根据映射  XSet 得到关键词   w 1 最新的状态信息, 接着计算所有查询关键词的
   440   441   442   443   444   445   446   447   448   449   450