加密数据库与密文检索同态加密
Posted 平原上的维克多
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加密数据库与密文检索同态加密相关的知识,希望对你有一定的参考价值。
内容主要来自山东大学软件学院孔凡玉教授的《大数据安全》课程,整理仅以期末考试的范围为准则,因此存在较大的内容缺失,后续考虑补全。
密文检索的概念
云存储环境中,用户将数据加密后上传至云服务器,密文检索技术能够对密文进行检索并将满足条件的数据返回给用户,用户将密文解密后得到结果。
基于全文扫描的关键词搜索方案
- 数据拥有者通过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)。
同态加密的用途
- 在无须获知明文的情况下即可实现对密文的大数据分析
- 可将复杂运算外包给外部的云服务中心而不会泄露数据
以上是关于加密数据库与密文检索同态加密的主要内容,如果未能解决你的问题,请参考以下文章