一种外包数据加密存储与密文查询系统及其应用方法_2

文档序号:9846704阅读:来源:国知局
密后的查询语句和洋葱加密层的解密密钥K发送给云服务器C。
[0049] 进一步的,所述解密密钥K通过存储在代理服务器中的密钥中心MK产生,按照下面 的公式生成:
[0050] Kt,^i = Fmk(表 t,列c,洋葱 〇,加密层 1)
[0051] 其中FO是一个安全的伪随机函数,MK是存储在代理服务器中的主密钥;。
[0052] 所述代理服务器P通过发送一个UPDATE操作命令,将加密层的解密密钥K发送给云 服务器,指令如下:
[0053] UPDATE Table SET Onion name = DECRYPT_RND(K,Onion name, IV)
[0054] 其中Table表示加密后的数据库表,Onion name表示对应的洋葱的名称,函数 DECRYPT_RND()是自定义的解密函数,可以是DECRYPT_DET()、DECRYPT_H0M()、DECRYPT_0PE O等;通过上述UPDATE操作可以将洋葱的加密层动态地调整到满足查询要求的加密层。
[0055] 进一步的,所述云服务器C提供查询结果的具体过程为:云服务器C在指定的加密 层执行加密的查询操作之后返回满足条件的加密数据块给用户,用户调用解密函数得到需 要的信息。
[0056] 有益效果:本发明解决了现有的建立安全索引方法中索引信息会泄露原始数据的 问题和对索引查询过程中不能保证索引内容的机密性的问题:通过对索引文件进行洋葱式 加密的方法来,用户只需要对索引部分进行查询而不是整个数据库,不仅能够使用户对密 文索引进行高效快速的检索,同时能够使服务器或攻击者无法获取索引信息的查询结果, 保证了数据库和索引文件的安全。具体包括以下优点:
[0057] 1、本发明中的数据库的加密解密部分都是在可信客户端上进行,云服务器C或者 外部攻击者无法获取数据库的解密密钥,因此也无法用户窃取隐私信息。
[0058] 2、通过对索引文件进行洋葱式加密,满足了对索引的安全加密查询的需求,同时 满足了保证索引信息机密性的需求。
[0059] 3、在保证索引信息查询过程和结果的机密性的同时,大大提高了密文查询的效率 和降低了通信开销,尤其是在云端服务器C存储了海量的加密数据,本发明的效率越高。
【附图说明】
[0060]图1是本发明的系统结构图;
[0061 ]图2是本发明一实施例的用户上传数据库过程示意图;
[0062]图3是本发明一实施例的用户查询过程示意图;
[0063] 图4是本发明一实施例的洋葱加密之后的生成图;
[0064] 图5是本发明一实施例的等值查询的时间与加密数据块的影响图;
[0065] 图6是本发明一实施例的排序查询的时间与加密数据块的影响图;
[0066] 图7是本发明一实施例的关键字查询的时间与加密数据块的影响图;
[0067] 图8是本发明一实施例的含加法的查询时间与加密数据块的影响图;
[0068] 图9是本发明一实施例的等值查询的通信开销与时间的影响图;
[0069] 图10是本发明一实施例的等值查询的通信开销与时间的影响图;
[0070] 图11是本发明一实施例的排序查询的通信开销与时间的影响图;
[0071] 图12是本发明一实施例的关键字查询的通信开销与时间的影响图; 图13是本发明一实施例的含加法查询的通信开销与时间的影响图。
【具体实施方式】
[0072] 下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施 例。
[0073] 实施例1:
[0074] 如图1所示,本实施例的一种外包数据加密存储与密文查询系统,包括应用服务器 系统,索引代理系统和云存储服务器系统;所述应用服务器系统为本地数据库进行加密解 密操作;所述索引代理系统包括:索引加密模块、查询重写加密模块、洋葱密钥管理模块,其 中,索引加密模块为索引进行洋葱加密,查询重写加密模块为查询语句加密,洋葱密钥管理 模块存储每个洋葱加密层的密钥。
[0075] 实施例中的系统的具体加密方法和检索流程为:
[0076] 步骤一,用户在本地可信客户端根据加密算法对数据库进行分块加密,形成多个 加密数据块,并对每个数据块建立索引文件,用户将加密后的数据块和索引文件一并发送 给代理服务器,代理服务器根据文件的类型对索引进行洋葱式加密,并将加密后的数据块 和索引上传到云服务器。
[0077]如图5所示,其中ID列是索引列,Name列是本地数据,用户在可信客户端对Name列 分块加密之后,将索引列和数据发送给代理服务器;
[0078]代理根据索引文件的类型进行洋葱加密,如图4所示,索引文件是整型数值,代理 服务器需将索引加密生成三个洋葱,分别执行查询、排序、增加操作;Onion Eq有三层,其中 DET层支持等值查询操作JOIN层支持连接操作;Onion Ord有两层,其中OPE层使用的是保 序加密算法,支持排序操作;Onion Ord有一层,HOM层使用的是Paillier加密系统,支持加 法同态运算。
[0079]同时代理服务器记录云服务器中每个洋葱当前所处的加密层,代理服务器将加密 后的数据块和索引上传到云服务器。
[0080]该步骤为用户上传数据的过程,如图2所示,其中原数据包括数据、文档、图片;
[0081 ]索引文件是由用户自己设置的同一个加密数据块的索引文件可以有至少一个,索 引文件包括但不局限于关键词。
[0082]步骤二:客户端接收用户输入的索引查询语句,并发送至代理服务器;代理服务器 得到用户输入的查询语句并进行改写和重新加密,同时代理服务器生成洋葱层的解密密 钥,然后代理服务器将加密后的查询语句和解密密钥K 一起发送给云服务器;云服务器返回 满足索引条件的加密数据块给代理服务器;代理服务器再将接收到的加密数据块返回给用 户,用户进行解密得到原始数据。
[0083] 如图5所示,代理服务器根据查询条件对查询语句中的内容进行加密,请参考图, 用户发送关于索引的查询语句SELECT Name FROM Employees WHERE ID='23';
[0084] 代理服务器根据查询条件对查询语句里的内容进行加密,请参考图,查询条件是 等值查询,代理服务器将索引内容' 23 '进行加密,加密到DET层;
[0085]同时代理将Onion Eq的RND层的解密密钥K发送给云服务器,云服务器接收到解密 密钥之后执行解密操作,将
[0086] 具体实验结果如下:
[0087] 在数据查询阶段,查询的执行时间主要受到加密数据块的个数的影响。如图6~9 所示,分别是加密数据块的个数对不同类型的查询操作的影响。从图中可以看出,查询时间 随着数据块个数的增多而有效降低,这是因为本发明的密文查询方法主要是针对索引文件 查询而不是整个加密数据库,当云服务器中存储的加密数据越多,效率反而越高。
[0088]在加密查询阶段,通信成本的开销在于用户查询成本的开销。如图10~13所示,分 别是在查询时对同一种查询操作所消耗的通信成本的比较。从图中可以看出,随着查询时 间的推移,用户与云服务器之间的通信开销有显著的降低,这是因为洋葱在进行加密层的 解密之后便会停留在当前加密层,用户再次查询时便无须解密操作。
【主权项】
1. 一种外包数据加密存储与密文查询系统,其特征在于,包括应用服务器系
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1