Page 303 - 《软件学报》2021年第10期
P. 303
张明武 等:医疗大数据隐私保护多关键词范围搜索方案 3275
1. DU 根据搜索向量 ,S 利用参考向量 Q 计算搜索差分向量 S Q ; S
2. DU 将 S 进行划分,即 S 1 ( , ,..., ),s s 1 2 s S l 2 (s l 1 ,...,s 2l ),...,S / n l 共 h 段,搜索差分向量表示为
T
S (,SS 1 2 ,...,S h ) .
ˆ
同样方式将 S 排列为 lh 的矩阵 ; S
ˆ
ˆ
3. 用 [, ]ij 表示第 i 行第 j 列是否为本次需要搜索的关键词(i[1,l],j[1,h]):若 [, ] 1,ij 则对应第 i 行
S
S
第 j 列位置的关键字是不需要搜索的;若 [, ] 0,ij S ˆ 则对应的第 i 行第 j 列位置的关键字是需要搜索的.
ˆ
最后输出差分搜索矩阵 ; S
ˆ
ˆ
ˆ
*.
4. DU 选取随机矩阵 B=| i,j | lh ,计算矩阵 B 与差分搜索矩阵 S 的哈达马积,即 BS 这里, i,j 0.随后,
S
根据收到的密钥 SK 构造搜索陷门.令 P[i,j]表示二进制矩阵 P 的第 i 行第 j 列,对(i[1,l],j[1,h]):若
ˆ
ˆ
ij
S
ij
ij
P[i,j]=1,将 [, ]ij 划分为 S ˆ a [, ] 和 S ˆ b [, ], 且满足 [, ] S ˆ ij ˆ a [ , ] S ij S ˆ b [ , ]; 若 P[i,j]=0,则将 [, ]ij 置为
S
1 ˆ
1 ˆ
ˆ [, ] S ij ˆ a [ , ] j S i S ˆ b [, ]. 结合{M 1 ,M 2 }生成陷门 TD S , TD {M SM S b };
,
ij
2
1
a
S
5. DU 将搜索陷门 TD S 发送给云服务器 CS 请求搜索.
算法 2. 陷门生成算法.
输入:搜索向量 ,S 参考向量 ,Q HC 私钥中的{P,M 1 ,M 2 };
输出:搜索陷门 TD S .
开始:
1. 计算搜索差分向量 S Q ; S
:
2. 对于搜索差分向量 S
将 S 构建成矩阵 S (, ,..., )s s 2 s h T
1
ˆ
得到差分搜索矩阵 ; S
FOR EACH j[1,h];
FOR EACH i[1,l];
选取随机矩阵 B=| i,j | lh ;
ˆ
*;
计算 BS
S
ˆ
划分矩阵 P 将矩阵 S 划分为 S ˆ [, ] 和 S ˆ [, ]:
ij
ij
a b
对于 P 的第 i 行第 j 列 P[i,j];
IF P[i,j]=1;
ˆ [, ] S ij ˆ a [ , ] S ij S ˆ b [, ];
ij
ELSE P[i,j]=0;
ˆ [, ] S ij ˆ [ , ] j S i S ˆ [, ];
ij
a b
END FOR;
END FOR;
1 ˆ
1 ˆ
3. 计算: TD {MS M S b };
,
2
S
a
1
END
ˆ I
4.6 索引与陷门匹配 Query (TD , )
S
ˆ
云服务器 CS 执行匹配查询,以索引矩阵 I 和搜索陷门 TD S 为输入,计算:
1 ˆ
1 ˆ
1 ˆ
ˆ
1 ˆ
ˆ
,
I ˆ *TD S {M I M I ˆ }*{MS MS b } (M I ˆ )*(MS a ) (M I ˆ )*(M S b ) I ˆ a * S ˆ a I ˆ b * S
,
,
2 b
b
2
a
2 b
1 a
1
1
1 a
2
其中,“*”表示两个矩阵的哈达马积.
当且仅当计算所得的矩阵为 0 矩阵时,云服务器 CS 才将对应密文 CT发送给 DU.
注解 1: