Page 304 - 《软件学报》2021年第10期
P. 304

3276                                 Journal of Software  软件学报 Vol.32, No.10, October 2021

                    (1)  根据本方案可知:对不需要的搜索关键词,其搜索差分矩阵在该位置 1,一旦某文件在该关键词上的值
                        也为 1 时,该文件的索引和此次搜索陷门进行匹配计算的矩阵不为 0 矩阵,对于包含不需要关键词的
                        文件将不会被检索;
                    (2)  对于包含需要的关键词、不含不需检索关键词的文件,可由通配符描述要搜索文件时,根据独热编码
                        原理,将通配符代表位置的关键词均置 1,即搜索差分矩阵在这些关键词的值均为 0.即:若某文件索引
                        该位置值为 1,该文件的索引和此次搜索陷门计算的矩阵也为 0 矩阵,即该文件仍然会被搜索得到;
                    (3)  由于构建的文件索引和搜索陷门中包含文件的所有属性,只需将搜索向量中需要搜索的关键词置 1,
                        就能实现范围搜索.

                 4.7   密文解密
                    DU 收到匹配的密文 ct i 后,使用对称解密算法(E,D)和相应的解密密钥 key i 将 ct i 解密成所需要的 EHRs 文
                 件 f i .
                 5    方案正确性

                    为描述检索匹配算法的正确性,用一个实例来验证陷门匹配的正确性.假定 l=3,h=4,私钥中二进制矩阵:
                                                          10 0 1
                                                                  
                                                      P      00 11 .
                                                                  
                                                           10 1 0 
                                                            
                    对于某个需要搜索的文件 f k ,其关键词向量假定为 I              [101001010011];
                                  
                    用户搜索向量为 S       [101001010111];
                                      
                    那么,搜索差分向量 QS         [010110101000];
                                   
                    可以得到, I   (Q S  ) 向量内积为 0,此用户可能成功检索到文件 f.
                                    ˆ
                    根据本方案, I    A *,I 建立的关键词矩阵为
                                                         0      0 
                                                       1,1    1,3   
                                                  I    0      2,1  0    2,4  ,
                                                       0  0       
                                                              3,3  3,4 
                 则以私钥 P 通过索引生成算法 Index SK (F)划分出的 、I     a   I 的索引矩阵为
                                                             b
                                       a   1  0    1,3  a   4      1,1  a 1  0     1,3    a 4  
                                   I   a      0    2,1  a 7  a 8     ,    I b      0    2,1    a 7     2,4    a 8     .
                                        a   9  0  a 11    3,4       a 9  0     3,3    a 11     3,4    
                    以{M 1 ,M 2 }生成加密的索引矩阵为 I   ˆ  {M 1 a ,    2 b IM I  }.
                                       
                                                                                                   ˆ
                    用户 DU 使用搜索向量 S 请求搜索时,首先调用陷门生成算法 Trapdoor SK (S)划分出来搜索陷门 S                   ˆ a 、S 为
                                                                                                    b
                                           0  b 2  b 3    1,4    0     1,2  b 2    b 3    1,4   
                                                       
                                     ˆ      b  b   S  0, S ˆ        b    b    0    .
                                      a    5  6  2,3    b    2,1  5  6   2,3   
                                             3,1  b 9  0  b   12          3,1    3,2    b 9  0    b   12 
                    以密钥(M 1 ,M 2 )生成陷门 TD S ,并将 TD S 发送给云服务器 CS.
                                                             ˆ
                                               1 ˆ
                                          1 ˆ
                                         
                                               
                    云服务器以陷门 TD       {M SM S 和搜索索引 I        {M T  ˆ   ,  T  ˆ  IM I  }, 通过匹配算法判断:
                                                  }
                                            ,
                                    S    1  a  2  b               1  a  2  b
                                                                  1 ˆ
                                                                                1 ˆ
                                              1 ˆ
                                                                     
                                             
                                                                 
                                                       
                                                                                
                                  ˆ 
                        I ˆ   *TD S  {M IM I ˆ   }*{M S a ,  2   1 ˆ b } (M I ˆ  M S  )*(M S a ) (M I ˆ   )*(M S b )   I ˆ a   * S ˆ  a    I ˆ b  *   S ˆ  b .
                                    ,
                                                                 1
                                                                                2
                                                                         2 b
                                 1 a
                                      2 b
                                             1
                                                          1 a
                                                     ˆ
                                                        ˆ
                              ˆ ˆ 
                                                       ,
                    对文件 f 的(  II )以及用户搜索陷门的( S S )执行关键词搜索运算,算法输出结果如下:
                                ,
                                                        b
                               a
                                 b
                                                      a
   299   300   301   302   303   304   305   306   307   308   309