内容主要来自山东大学软件学院孔凡玉教授的《大数据安全》课程,整理仅以期末考试的范围为准则,因此存在较大的内容缺失,后续考虑补全。
密文检索的概念
云存储环境中,用户将数据加密后上传至云服务器,密文检索技术能够对密文进行检索并将满足条件的数据返回给用户,用户将密文解密后得到结果。
基于全文扫描的关键词搜索方案
- 数据拥有者通过SetUp算法生成密钥 k ′ 和 k ′ ′ k^{'}和k^{''} k′和k′′,伪随机数序列 S 1 , S 2 . . . S l S_{1},S_{2}...S_{l} S1,S2...Sl(其中 l l l为文档中关键词的数目)以及伪随机函数 F F F和 f f f。
- 将文档分组为关键词序列 w 1 , w 2 , . . . , w l w_{1},w_{2},...,w_{l} w1,w2,...,wl。对关键词 w i w_{i} wi进行加密得到 E k ′ ( w i ) E_{k^{'}}(w_{i}) Ek′(wi)后拆分为 L i L_{i} Li和 R i R_{i} Ri两部分。计算出 F k i = f k ′ ( L i ) ( S i ) F_{k_{i}=f_{k^{'}}(L_{i})}(Si) Fki=fk′(Li)(Si)。最后将 ( S i , F k i ( S i ) ) (S_{i}, F_{k_{i}}(S_{i})) (Si,Fki(Si))与 ( L i , R i ) (L_{i}, R_{i}) (Li,Ri)进行异或得到密文块 C i C_{i} Ci。
- 检索关键词 w w w时,数据所有者将 E k ′ ( w ) = ( L , R ) E_{k^{'}}(w)=(L,R) Ek′(w)=(L,R)及 k = f k ′ ( L ) k=f_{k^{'}}(L) k=fk′(L)发送给服务器
- 服务器对所有密文块 C i C_{i} Ci依次与 E k ′ ( w ) E_{k^{'}}(w) Ek′(w)进行异或运算判断是否与 ( S , F k ( S ) ) (S, F_{k}(S)) (S,Fk(S))一致,然后返回满足条件的文档
基于保序加密(Order-preserving Encryption)的区间搜索
保序加密(OPE)是一种保持数值顺序关系的加密算法,将其定义为 E E E,对于任意密钥 k k k及数值数据 x x x和 y ( x < y ) y(x<y) y(x<y),均存在 E k ( x ) < E k ( y ) E_{k}(x)<E_{k}(y) Ek(x)<Ek(y)。
同态加密
提供了对加密数据进行处理的能力。
记加密操作为
E
E
E,明文为
m
m
m,密文为
c
c
c,即
c
=
E
(
m
)
,
m
=
D
(
c
)
c=E(m), m=D(c)
c=E(m),m=D(c)。
针对明文上的操作
f
f
f,我们可以构建一个复杂的同态加密算法
F
F
F,使得
F
(
c
)
=
E
(
f
(
m
)
)
F(c)=E(f(m))
F(c)=E(f(m))。
这样第三方可以直接对
c
c
c执行操作
F
F
F,而我们对
F
(
c
)
F(c)
F(c)解密后可以得到
f
(
m
)
f(m)
f(m)。
同态加密的用途
- 在无须获知明文的情况下即可实现对密文的大数据分析
- 可将复杂运算外包给外部的云服务中心而不会泄露数据