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

张明武  等:医疗大数据隐私保护多关键词范围搜索方案                                                      3273


                 4.3   EHRs文件加密Enc
                    医疗中心 HC 对所拥有的 EHRs 文件集合 F=(f 1 ,f 2 ,…,f m ),利用对称密钥 KEY=(key 1 ,key 2 ,…,key m )调用对称加
                 密算法,将文件加密成 CT=(ct 1 ,ct 2 ,…,ct m ).
                 4.4   索引生成Index SK (F)
                    HC 对所有 EHRs 文件 F 提炼关键词总集 W=(w 1 ,w 2 ,…,w n ).不失一般性,对第 k 个病人的 EHRs 文件 f k ,调用
                                        ˆ
                 算法 1 生成关键词索引矩阵 I
                                         .
                                        k
                    将关键词总集每 l 个划分为一段,即:
                                   W 1 =(w 1 ,w 2 ,…,w l ),W 2 =(w l+1 ,w l+2 ,…,w 2l ),…,W h =(w h+1 ,w h+2 ,…,w h+n ).
                    最后生成 h=n/l 段,关键词总集可以表示为 W=(W 1 ,W 2 ,…,W h ).
                    算法 1.  索引生成算法.
                    输入:关键词总集 W=(w 1 ,w 2 ,…,w n ),
                        EHRs 文件 F=(f 1 ,f 2 ,…,f m ),
                        HC 私钥中的{P,M 1 ,M 2 };
                                 ˆ
                    输出:文件索引 .  I
                    BEGIN:
                      FOR EACH x[1,n], w x W;
                        1.  对关键词总集 W 进行划分,生成矩阵 W=(W 1 ,W 2 ,…,W h );
                        2.  对于 k[1,m],f k F;
                          以 W 和 f k 关键字生成关键字矩阵:
                        FOR EACH j[1,h];
                          FOR EACH i[1,l];
                              IF  关键词存在;
                               该位置 1;
                              ELSE
                               该位置 0;
                                    ˆ
                                     ;
                            生成矩阵 I
                                    k
                            随机选取 A=| i,j | lh ;
                                      ˆ
                                I
                                     *
                                        ;
                            计算   A I
                                       k
                                 k
                                          ˆ
                            划分矩阵 P 划分 I 为  I  , ka [, ]ij 和  I  , kb [, ]ij :
                                          k
                              对 P 的第 i 行第 j 列 P[i,j];
                              IF P[i,j]=1;
                                   [, ]i j  I    [ , ]ij  I  I   [, ];ij
                                 , ka    , k b  k
                              ELSE P[i,j]=0;
                                   [, ]ij  I    [ , ]ij  I  I   [, ];i j
                                 , ka    , k b  k
                          END FOR;
                        END FOR;
                        根据{M 1 ,M 2 }计算: I  ˆ  {MI    , M I   }
                                        k    1 k ,a  2 k ,b
                      END;
                    对文件 f k ,用  I k [, ]ij 表示第 i 行第 j 列关键字是否存在(i[1,l],j[1,h]):若  I k [, ] 1,ij   则对应位置的关键字存
                 在;若  I k [, ] 0,ij   则对应的第 i 行第 j 列位置的关键字不存在.将第 k 个 EHRs 文件具有的关键词属性通过该方
   296   297   298   299   300   301   302   303   304   305   306