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 | lh ;
ˆ
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 文件具有的关键词属性通过该方