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

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


                 2   基础知识

                    本节就本文提出的       RFBC  方案中所涉及的相关概念和基本知识进行介绍.

                 2.1   伪随机函数
                    定义  1. 函数  f: {0, 1} ×X→Y  表示在安全参数  k 下集合  X  映射到集合   Y  的函数. 如果对于任意多项式时间敌
                                     k
                 手     A, 等式
                                                            k
                                    ADF prf  (k) = |Pr[A  f K (·)  : K ← {0,1} ]−Pr[A s(·)  : s ← F(x, y)]| ⩽ negl(k)
                                       f, A
                 都不成立, 那么函数      f 是伪随机函数    (pseudo-random function, PRF), 其中  ADF  prf  (k) 表示在安全参数  k 下, 敌手  A
                                                                              f, A
                 成功攻破函数     f 的概率, F  是随机函数, negl(k) 表示敌手    A  能够区分函数    f 的值与随机函数     F  的值的概率是可忽
                 略的.

                 2.2   布隆过滤器

                    布隆过滤器 (Bloom filter) [49] 是一种空间和时间高效的数据结构, 常用于快速检测一个元素是否在某个集合中.
                 布隆过滤器由      m  比特的数组和     j 个独立的哈希函数构成, 在初始化阶段, 数组的每一位均置                     0. 给定集合
                                                                                   ,
                 Y = {b 1 ,b 2 ,...,b n }, 调用哈希函数   H 0 ,H 1 ,...,H j−1  计算值  H i (b k ) ∈ [1,m], 其中  i ∈ [0, j−1] k ∈ [1,n], 并通过将数组中
                 第  H i (b k ) i ∈ [0, j−1] k ∈ [1,n]) 位设置为  1  将集合  Y  插入到布隆过滤器中. 当要检测元素  p  是否在集合中, 调用  j
                                 ,
                         (
                                  ,
                 个哈希函数得到      H i (p) i ∈ [0, j−1], 若数组中所有哈希值对应的位均为       1, 则元素  p  在集合  Y  中; 否则, 元素  p
                 不在集合   Y  中. 需注意的是, 布隆过滤器存在假阳性 (false positive), 即由于哈希函数的碰撞性以及位数组大小的
                 限制, 布隆过滤器判定属于集合的元素可能不在集合中, 但其能准确判断某个元素一定不在集合中. 布隆过滤器的
                                 )  与集合的大小
                 误判率   y = (1−e (−jn)/m j     n、哈希函数个数      j 及为数组大小    m  有关, 故可通过选取合适的参数获得可
                 接受的错误率.

                 2.3   对称加密
                    对称加密是一种加密和解密使用相同密钥的密码体制算法中, 常用的对称加密算法有                                 AES (advanced
                 encryption standard) 等. 在同等安全级别下, 对称加密算法的计算速度快于非对称加密, 被广泛应用于可搜索加
                 密中.
                    一个对称加密算法        SKE  主要包括密钥生成算法       Gen、加密算法     Enc 与解密算法    Dec, 即  SKE = (Gen, Enc,
                 Dec), 其中,
                    1) SKE.Gen: 给定安全参数   λ, 生成加密密钥    sk.
                    2) SKE.Enc: 在密钥  sk 的控制下对明文    m  进行加密, 生成密文    c, 即  c = Enc sk (m).
                    3) SKE.Dec: 在密钥  sk 的控制下对密文    c 进行解密, 恢复相应的明文       m, 即  m = Dec sk (c).

                 2.4   对称可搜索加密
                    本节主要介绍对称可搜索加密的形式化定义、安全性定义及前向隐私和后向隐私的形式化定义.
                    (1) 对称可搜索加密的形式化定义
                    在对称可搜索加密方案中, 客户端首先将包含关键词的文件加密后上传到服务器, 当客户端需要搜索文件时,
                 发送相应的关键词令牌给服务器, 服务器根据令牌返回对应的文件, 最后, 客户端解密返回的文件.
                    对称加密算法主要包括密钥生成算法              Gen、加密算法     Enc、陷门算法     Trap、搜索算法    Search  与解密算法
                 Dec, 即  SSE = (Gen, Enc, Trap, Search, Dec), SSE  过程如图  1  所示, 详细说明如下.
                    1) K ← Gen(λ): 算法由客户端执行, 接收安全参数        λ, 该算法输出密钥    K.
                    2) (I, c) ← Enc(K, F): 算法由客户端执行, 接收密钥   K  和包含关键词的文件集合        F = {F 1 , F 2 , …, F n }, 该算法输
                 出一个加密索引      I 和加密文件集合     c = {c 1 , c 2 , …, c n }.
                    3) tkn ← Trap(K, w): 算法由客户端执行, 接收密钥    K  和关键词  w, 该算法输出陷门      tkn.
   434   435   436   437   438   439   440   441   442   443   444