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

文档序号:9846704阅读:1344来源:国知局
一种外包数据加密存储与密文查询系统及其应用方法
【技术领域】
[0001 ]本发明属于安全密文技术领域,具体涉及一种外包数据加密存储与密文查询系统 及其应用方法。
【背景技术】
[0002] 随着"云计算"概念和应用的日益普及,数据外包也逐渐成为一种先进的数据服 务,越来越多的用户选择将本地数据库托管到云端服务器,并且利用云服务的所提供的服 务对存储在云端的数据库进行存储管理和查询处理等。但是将数据存放在第三方云端服务 器中用户便失去了对数据的控制,容易造成敏感信息泄露。为了解决隐私保护问题,用户先 在本地可信前端对数据库进行加密处理之后再上传到云服务器,由于云服务和外部攻击者 无法获取加密算法和密钥所以无法窃取用户的隐私数据。
[0003] 但是将数据进行加密之后会失去原始数据本身所具备的一些特性,如:有序性,也 不能对加密的数据直接进行查询或其他操作,用户需要下载全部的数据并且解密之后对明 文数据进行查询才能获取所需要的信息,但是大量数据的下载和解密将需要花费巨大的时 间和空间开销,也容易导致数据的不完整。另外考虑到当云端服务器上存储的数据越来越 多,在特定的时间内从海量的加密数据中快速有效的检索所需要的信息并且保证数据的机 密性,已经成为一个迫切需要解决的问题。
[0004] 目前国内外研究人员针对加密数据查询方面已经有大量研究,常见的是全同态加 密技术或建立安全索引技术。全同态加密技术通过涉及加密算法使得服务器能够直接对密 文进行查询和运算操作而不需要解密,但是由于全同态加密方案需要耗费的计算时间太长 因此在现实中构造一个完全同态函数是非常困难的。
[0005] 通过建立安全索引方法来实现对密文的查询也是常见的方法,具体步骤:为敏感 数据建立对应的索引文件,将原数据和索引文件分别加密之后再保存到云服务器;用户发 送关于索引的加密查询语句来获取满足条件的的原始数据的加密数据,再进行解密得到所 要查询的数据。但是这也存在一些问题,所建立的索引文件保留了太多的原文信息,而且攻 击者可以利用索引密文之间的相关性窃取索引文件的隐私信息。

【发明内容】

[0006] 发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种外包数据加 密存储与密文查询系统及其应用方法。
[0007] 技术方案:本发明所述的一种外包数据加密存储与密文查询系统,包括应用服务 器系统,索引代理系统和云存储服务器系统;所述应用服务器系统为本地数据库进行加密 解密操作;所述索引代理系统包括:索引加密模块、查询重写加密模块、洋葱密钥管理模块, 其中,索引加密模块为索引进行洋葱加密,查询重写加密模块为查询语句加密,洋葱密钥管 理模块存储每个洋葱加密层的密钥。
[0008] 本发明还公开了一种外包数据加密存储与密文查询系统的应用方法,包含三个参 与方:用户User、代理服务器Proxy和云服务器Cloud三方,分别简记为U、P、C,参与方所执行 的操作依次包含用户U上传数据、代理服务器P提供加密服务、用户U查询数据和云服务器C 提供查询结果四个步骤;
[0009] 所述用户U上传数据阶段中,采用基于分块加密的数据预处理方法,依次包括:数 据分块、分块加密、建立索引文件、将加密数据块和索引文件同时发送到代理服务器P四个 步骤;
[0010] 所述代理服务器P提供加密服务阶段,代理服务器P接收到用户U发送的密数据块 和索引文件后,采用新型层层加密算法:代理服务器P根据文件的类型确定所要生成的洋葱 的个数和类型,文件的类型不同加密所生成的洋葱个数和名称都不同。
[0011] 进一步的,所述数据分块的具体步骤为:用户U将明文P分解成若干分组,记为M = [Ml,M2,.....],每个明文分组由7个字节构成,为每个分组添加 1个字节的索引消息,使每个 分组长度为8个字节,即64位。
[0012] 进一步的,所述分块加密的具体步骤为:分组中的每个字节分别与索引字节异或, 生成新的消息后加上随机字节生成新的分组,再对新的分组进行加密操作生成分组密文;
[0013] 加密过程为:输入= IVJ1,…,Mj;输出:?ν,&,…,Cj;
[0019] 其中,IV是初始随机字节,Li(P)表示P中的第i个字节,ek()是基本分组加密算法, 〇1<〇是基本分组解密算法,用〈1,7>表示1和7的连接。
[0020] 用户U为每个数据块建立索引文件,将加密的数据块和索引文件一并发送给代理 服务器,该索引文件的类型有多种,如文本类型,整数型类型等等。
[0021] 进一步的,所述代理服务器P提加密服务的具体步骤如下:
[0022]加密:输入(C1,C2,…,Cj)是加密分组,(I 1,I2,…,Ij)是索引明文信息;
[0023] Ek(I):洋葱加密算法,根据消息的类型不同从而生成不同的洋葱个数和类型;
[0025]输出 E(I1)ChE(I2)Cf^E(Ij)Cj;
[0026]每个洋葱的名称代表所支持的查询操作,比如:0nion Eq支持等值查询操作, Onion Ord支持排序查询等。
[0027]进一步的,当索引文件为文本类型,加密之后只有一个洋葱,该洋葱名为Onion Search,用于关键字的搜索;Onion Search(I)加密之后允许执行对关键字的查询,用户通 过伪随机发生器产生的一个8位序列,通过安全的伪随机函数计算出一个数值,将索引字节 与该数值进行异或得到新的加密的索引文件;
[0028]输入:IV,Ii,12,…,Ij,(Cl,C2,…,Cj);
[0034]其中,IV是由伪随机发生器产生的一个8位序列,用〈x,y>表示x和y的连接,函数F O是一个安全的伪随机函数。
[0035]进一步的,当所述索引文件为整型类型,加密之后有三个洋葱,分别为Onion Eq、 Onion Ord和Onion Add,分别用于等值查询、排序比较和加法操作;
[0036]所述Onion Eq(I)加密之后的索引文件支持用户的等值查询,用户产生一个随机 的素数η作为第一位,然后将索引字节里的每一位都与素数η异或之后再加密,形成新的加 密索引文件。
[0042] I(i,j)表示第i个索引字节的第j位;
[0043]所述Onion 0rd()算法加密之后索引文件支持排序操作,本发明采用了基本的 OPES保序加密方法;
[0044]所述Onion Add()算法加密之后索引文件支持加法同态加密,通过对两个数值加 密后的乘积表示两个数值相加之后加密的值,本发明采用Pai 11 ier加密方法,
[0045]
随机选择gEG,使得gcd(L(g mod k2),k) = l,选择随机
[0046] 其中,每个洋葱有多个加密层,不同的加密层都有特定的加密算法和密钥并且支 持特定的查询操作,最外层安全性最高但是支持的操作最少,内层安全性较低但是支持的 查询操作更多,如:最外层的RND层安全性最高,达到了 IND-CPA安全,但是只能支持普通查 询,DET层所提供的安全性较弱但是能够支持密文的等值查询。
[0047]代理服务器P将最终加密后的数据块和索引文件一起上传到云端服务器。
[0048]进一步的,所述用户U查询数据阶段,代理服务器P根据用户U输入的索引文件的查 询语句,根据查询条件对查询语句的内容进行加密,加密过程与上述洋葱加密方法相同,然 后代理将加
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1