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

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

                                       ˆ
                                        .
                 式表示成为 lh 的(0,1)矩阵 I
                                        k
                                                                                      ˆ
                                                                  ˆ
                    HC 选取随机矩阵 A=[ i,j ] i=1,...,l,j=1,...,h ,计算 A 和索引矩阵 I 的哈达马积,即   A I 其中, i,j 0.令 P[i,j]
                                                                                I
                                                                                     *
                                                                                        ,
                                                                                 k
                                                                                       k
                                                                   k
                 表示二进制矩阵 P 的第 i 行第 j 列,对于(i[1,l],j[1,h]):若 P[i,j]=1,则将  I k [, ]ij 随机划分成  I  , ka [, ]ij 和  I  , kb [, ],ij 且
                 满足   , ka [, ]i j  I    , k b [ , ]ij  I  I   k [, ];ij 若 P[i,j]=0,则置 I , ka [, ]i j  I   , k b [ , ]i j  I   k [ , ]i j 构造方法如图 6 所示.





                                                Fig.6    Division of index matrix
                                                   图 6   索引矩阵的划分

                                              ˆ 
                    利用{M 2 }生成加密索引矩阵  I    ˆ  : I  {M I   , M I   }.
                                            k  k    1 k ,a  2 k ,b
                            ˆ
                    最后,将 (||I  CT ) 上传至云服务器 CS.
                 4.5   搜索陷门生成
                 4.5.1   搜索向量构造
                                                                                                    
                    数据使用者 DU 要搜索和访问云服务器 CS 上加密 EHRs 文件时,根据关键词信息,在构建搜索向量 S 时,
                                                       
                 对于包含的关键词,将其置 1,构建差分搜索向量 S 在该位置 0.对本方案,匹配算法 4 能够搜索到所需文件.
                    例如,搜索年龄在 20~49 岁、患有高血压的男性患者的病历,如图 7 所示.医疗组织由该方法构建搜索向量,
                 在文件索引和搜索陷门匹配阶段,以该例具体分析如何实现范围搜索.

                                                      年龄     性别    疾病    地区
                                             查询信息     20-49  男    高血压     *
                                             查询矢量    0..111..0  10  100  00100
                                             差分矢量    1..000..1  01  011  11011


                                              年龄:0-9  1111111111
                                             年龄:10-19  1111111111
                                             年龄:20-29  0000000000
                                             年龄:30-39  0000000000
                                             年龄:40-49  0000000000
                                             年龄:50-59  1111111111
                                                       ……
                                             年龄:90-99  1111111111
                                              其他属性   0101111011
                                                      查询矩阵

                         Fig.7    Construction instance: search vector with “male, hypertension, age between 20 and 49”
                                图 7   构造实例:查询向量“年龄在 20~49 岁、患有高血压的男性病人”
                 4.5.2  陷门 Trapdoor SK (S)生成
                    DU 向医疗中心 HC 请求搜索授权,医疗中心 HC 根据授权规则决定是否授权.数据使用者 DU 获得了授权
                 后,HC 通过安全信道将密钥 SK 发送给 DU,DU 执行以下步骤获得搜索陷门 TD S (如算法 2 所示).
   297   298   299   300   301   302   303   304   305   306   307