基于云存储的数值型数据的密文检索方法及装置与流程

文档序号:12470251阅读:317来源:国知局
基于云存储的数值型数据的密文检索方法及装置与流程
本发明是关于云存储检索技术,特别是关于一种基于云存储的数值型数据的密文检索方法及装置。
背景技术
:在当前的主要企业应用中,项目档案通常采取云存储的网络应用模式,这种模式既节省了成本,也将企业从软硬件维护和安全防护的繁琐管理事务中解脱出来。云存储带来的主要问题是安全问题,数据加密是在云存储中保障数据安全性的有效手段,通常,对一个足够安全的加密算法而言,数据在加密后,密文不再具有任何原始明文特征。因此,密文检索就成为解决云端安全存储的关键技术问题。数据检索中用的检索方式包括字符数据的模糊检索及数值型数据检索,数值型数据检索中,等值检索在使用对称加密的密文数据中是较为简单的,在不更换密钥的前提下,只需再次加密数值型数据,即可从数库中快速检索到用户所需的数据;而数值型数据的范围检索,需要比较密文对应明文的数据大小,逐个解密会耗费大量成本,在企业应用中是不现实的。XQuery是一种通用的XML查询语言,相当于关系型数据库的SQL语句,在项目档案管理中,无论采用哪种数据库,密文检索的关键都在于XQuery查询语句的处理。明文的XQuery查询语句在传递至云端后,由于数据的敏感性,企业往往不希望云端看到查询条件参数,因此,通常情况下,都需要对XQuery明文查询进行语句密文翻译,翻译后的XQuery语句仍然具有原有语法结构,能够在任何XQuery引擎上直接运行,云端在“全盲”的环境中,完成数据的密文检索,再将密文数据传输至客户端,在客户端完成密文的解密和明文查询过程。XQuery检索类似于SQL检索语句,因为关系型数据的密文检索方法几乎都可以应用于XQuery检索中,所以XQuery查询会遇到关系型数据的SQL语言查询的同样问题。密文检索性能和加密安全性会成为一对矛盾,在一定程度上,如果需要提高密文检索性能,就需要牺牲一定的安全性;而如果需要保障安全性,通常就无法获得较高的密文检索性能。如图1所示,项目档案数据如果直接交给云端存储,其检索速度等同于明文检索,云计算提供了超强的计算能力和存储能力,因此,其检索速度甚至是强于企业的本地检索的,但这样的存储也是最不安全的。相反,如果明文数据在加密后,交给云端存储,云端的项目档案完全以密文形式存储,加密粒度越粗,其安全性越高,在对安全性要求较为极端的情况下,对整个明文数据进行加密,将会获得很高的安全性,但在这种情况下,由于所有数据特征都被加密到密文中,密文检索几乎是完全不可行的。数值型数据在加密后,固有属性会被加密分散和扰乱,数据的大小、相似、有序等特征就完全不存在,反之,如果这些特征还存在,就证明此种加密算法是不安全的。在采用可以用数学逻辑证明安全的加密算法基础上,数值型数据不再具有原始明文的任何特征,范围检索也就成为了云存储密文检索的难点。如图2所示,在密文数据库检索中,等值检索问题可以得到较好的解决。当用户检索Y>p时,如果将相应的范围检索条件转换为等值检索条件Y=p,通过设计XQuery查询语言翻译器,可以将明文条件转换为密文检索条件,而等值检索可以快速在密文数据库中找到相应的数据记录,只需将此记录传至客户端,用户再使用自己的密钥解密此密文数据,就可以得到对应明文。在实施时,可以根据数据敏感度,将数据选择性的加密,有些数据可以直接明文存储,就可以获得更好的密文检索效率。图2所示的工作流程中,范围检索几乎是不可行的,因为Y>p在经过XQuery语言翻译后,得到的检索条件假设将变为Y1>p1,加密改变了原始明文的大小特征,Y1>p1检索出的密文,只能符合大于p1的条件,解密后,这些明文却不符合大于p,这样的范围检索,在云存储结构中是完全无效的。技术实现要素:本发明实施例提供一种基于云存储的数值型数据的密文检索方法及装置,以在保障数据安全的基础上提高密文检索效率。为了实现上述目的,本发明实施例提供一种基于云存储的数值型数据的密文检索方法,包括:根据待检索OAIS数据包的密钥生成密钥序列,并将所述密钥序列拆分为设定长度的多个序列数值;将待检索OAIS数据包的明文查询语句翻译为对应的密文查询语句;所述明文查询语句中包含用户输入的明文检索条件,所述密文查询语句中包括由明文检索条件得到的密文检索条件;向云端服务器提交所述密文检索条件对应的等值检索条件进行检索,得到检索结果;根据所述检索结果在数据库中的标识,映射得到对应的序列数值的标识;从多个序列数值中提取大于或小于映射得到的序列数值的所有序列数值的对应标识,得到标识集合;根据所述标识集合从所述云端服务器获取对应的数据。一实施例中,该密文检索方法还包括:获取用户输入所述待检索OAIS数据包的密钥。一实施例中,该密文检索方法还包括:获取用户输入的所述明文检索条件。一实施例中,该密文检索方法还包括:根据所述多个序列数值大小顺序及所述数据库中数据的大小顺序建立所述多个序列数值与所述数据库中数据的映射关系。一实施例中,根据待检索OAIS数据包的密钥生成密钥序列,包括:利用哈希算法,对所述密钥进行多次哈希和/或异或处理,生成密钥序列。一实施例中,如果根据等值检索条件进行检索时得不到检索结果,在不改变密文检索结果的条件下改变所述等值检索条件的边界值重新进行检索。一实施例中,该密文检索方法还包括:对获取的所述密文数据进行解密,得到明文数据。为了实现上述目的,本发明实施例还提供一种基于云存储的数值型数据的密文检索装置,包括:序列生成单元,用于根据待检索OAIS数据包的密钥生成密钥序列,并将所述密钥序列拆分为设定长度的多个序列数值;语句翻译单元,用于将待检索OAIS数据包的明文查询语句翻译为对应的密文查询语句;所述明文查询语句中包含用户输入的明文检索条件,所述密文查询语句中包括由明文检索条件得到的密文检索条件;检索单元,用于向云端服务器提交所述密文检索条件对应的等值检索条件进行检索,得到检索结果;标识映射单元,用于根据所述检索结果在数据库中的标识,映射得到对应的序列数值的标识;标识集合生成单元,用于从多个序列数值中提取大于或小于映射得到的序列数值的所有序列数值的对应标识,得到标识集合;数据获取单元,用于根据所述标识集合从所述云端服务器获取对应的数据。一实施例中,该密文检索装置还包括:密钥获取单元,用于获取用户输入所述待检索OAIS数据包的密钥。一实施例中,该密文检索装置还包括:检索条件获取单元,用于获取用户输入的所述明文检索条件。一实施例中,该密文检索装置还包括:映射建立单元,用于根据所述多个序列数值大小顺序及所述数据库中数据的大小顺序建立所述多个序列数值与所述数据库中数据的映射关系。一实施例中,所述序列生成单元具体用于:利用哈希算法,对所述密钥进行多次哈希和/或异或处理,生成密钥序列。一实施例中,如果根据等值检索条件进行检索时得不到检索结果,所述检索单元在不改变密文检索结果的条件下改变所述等值检索条件的边界值重新进行检索。一实施例中,该密文检索装置还包括:解密单元,用于对获取的所述密文数据进行解密,得到明文数据。本发明可以在保障数据安全的基础上提高密文检索效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中云存储中密文检索的基本结构示意图;图2为现有技术中数值型数据检索的流程图;图3为本发明实施例基于云存储的数值型数据的密文检索方法流程图;图4为本发明另一实施例数值型数据的密文检索流程图;图5为本发明实施例的密钥序列产生流程图;图6为本发明实施例的S序列的产生流程图;图7为本发明实施例基于云存储的数值型数据的密文检索装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。对于数值型数据密文检索,保持明文的大小特征,会破坏密文的安全性,但如果祛除原始明文的大小,又会使密文检索难以实施。因此,在密文检索中,不能简单地仅从明文数据特征入手。在数据加密中,已被数学证明安全的加密算法的安全性取决于密钥的安全性。所以,在云存储中,如果能通过密钥控制明文特征的保护,就可以在密文检索时通过密钥解密原始明文特征,再通过特征筛选数据库记录,在数据存储时,由于没有启用密钥进行解密,这些特征仍然处于密文状态,云端是无法获取到的,就可以在安全性和密文检索效率间取得较好的权衡。基于此,本发明提供了一种基于云存储的数值型数据的密文检索方法及装置。图3为本发明实施例基于云存储的数值型数据的密文检索方法流程图,如图1所示,该密文检索方法包括:S301:根据待检索OAIS数据包的密钥生成密钥序列,并将所述密钥序列拆分为设定长度的多个序列数值;S302:将待检索OAIS数据包的明文查询语句翻译为对应的密文查询语句;所述明文查询语句中包含用户输入的明文检索条件,所述密文查询语句中包括由明文检索条件得到的密文检索条件;S303:向云端服务器提交所述密文检索条件对应的等值检索条件进行检索,得到检索结果;S304:根据所述检索结果在数据库中的标识,映射得到对应的序列数值的标识;S305:从多个序列数值中提取大于或小于序列数值的所有序列数值的对应标识,得到标识集合;S306:根据所述标识集合从所述云端服务器获取对应的数据。由图1所示的流程可知,本发明首先根据待检索OAIS数据包的密钥得到多个序列数值,然后根据翻译得到的密文查询语句中的密文检索条件进行等值检索,通过检索结果在数据库中的标识映射得到对应的序列数值的标识,进而得到标识集合,最后根据标识集合从云端服务器获取对应的数据。通过该方法,可以在保障数据安全的基础上提高密文检索效率。图3所示的密文检索方法的主体可以为PC客户端,也可以为移动客户端,例如手机,PDA等,本发明仅以PC客户端为例进行说明。本申请中,在生成密钥序列之前,需要获取用户输入的待检索OAIS数据包的密钥,用户输入密钥的方法有很多。一实施例中,用户可以通过PC客户端的USB接口连接密钥KEY,向PC客户端提供密钥。根据待检索OAIS数据包的密钥生成密钥序列时,可以选择任意一种哈希算法,对密钥进行多次哈希和/或异或处理,生成密钥序列。密钥序列的长度可以根据云端服务器存储的数据量的大小确定。得到密钥序列后,可以将该密钥序列拆分为设定长度的多个序列数值,该设定长度取决于数据库中的数据量大小。得到多个序列数值之后,需要这些序列数值大小的顺序与云端服务器中的数据库中数值大小顺序一致,根据多个序列数值大小顺序及数据库中数据的大小顺序建立多个序列数值与数据库中数据的映射关系,以此支持范围检索。S302具体实施时,可以通过XQuery语句翻译器将待检索OAIS数据包的明文查询语句翻译为对应的密文查询语句。明文查询语句中包含用户输入的明文检索条件,密文查询语句中包括由明文查询语句中的明文检索条件翻译得到的密文检索条件。一实施例中,在S302之前,PC客户端需要先获取用户输入的明文检索条件。假设检索范围(明文)为Y>p,进行等值检索的等值检索条件为Y=p,PC客户端可以向云端服务器等值检索条件Y=p进行等值检索以得到检索结果。如果得到检索结果,可以根据该检索结果在数据库中找到对应数据的标识。基于上述多个序列数值与数据库中数据的映射关系,可以在多个序列数值中找到对应的序列数值的标识ID0。从多个序列数值中提取大于或小于找到的序列数值的所有序列数值的对应的标识ID,得到标识集合{ID|ID>ID1}。根据该标识集合,PC客户端可以从云端服务器获取对应的数据,完成检索。PC客户端可以从云端服务器检索获取的数据可以为明文数据或者密文数据。如果检索获取的数据为密文数据,还需要对获取的密文数据进行解密,得到明文数据。如果根据等值检索条件进行等值检索时得不到检索结果,S305中就会返回空的标识集合,无法完成检索。因为等值检索是通过直接加密的方式在云端服务器的数据库中寻找对应的记录,但范围检索条件的数值未必会在数据库中出现过,比如在学生表student中查询所有大于18岁的学生,那么检索条件可以描述为age>18,如果在学生表中,没有任何一个学生的年龄等于18岁,那么进行等值检索时得不到检索结果,S305中就会返回空的标识集合。为了解决上述问题,可以在不改变密文检索结果的条件下通过迭代的方式改变所述等值检索条件的边界值重新进行等值检索,可以采用逼近算法改变所述等值检索条件的边界值重新。具体地,可以找寻检索结果相同的数据库记录代替作为等值检索的边界值,例如学生表student中虽然没有任何一个学生年龄是18岁的,但是有的学生年龄是19岁,那么age>18就和age≥19的检索结果相同(向上取整数),或者向下取整数,age>18就和age>17的检索结果相同,用这个最相近的数值取代原等值检索。本发明中,通过基于序列数值大小的顺序进行划分方式,不需要在客户端存储大量数据,也不需要在明文和云端密文数据之间建立对照关系,而是通过密钥临时产生大量序列数值,从而和密文数据之间建立大小顺序映射关系。在数据库中数据量巨大时,密钥序列的数量会随之增大,那么随着数据量的增多,密钥序列的产生时间开销会越来越大。此时,通过客户端的本地存储可以预先存储这些密钥序列,按照密钥序列的产生算法,通常这些密钥序列的数据量非常小,并不会占据很大的存储空间,普通的个人计算机存储已完全足够。一实施例中,S301、S303至S305可以通过基于数值顺序置换策略的数据库密文数值范围划分器(DatabaseCiphertextNumericalRangeClassifier,DCNRC)来实现。在DCNRC中,密钥可以散列为多个序列数值,根据这一系列的序列数值分布,重新排列数据库中对应的密文数据,在密文检索执行时,首先执行范围检索对应的等值检索,通过顺序置换策略确定临界值在密钥散列中的对应数值,进而由DCNRC确定要从数据库中取回记录的范围区域,进一步判断所需提取的密文数据项,这种方式避免了不必要的数据传输和加密/解密冗余,也大大缩短了数据传输数量和数据加密/解密的时间。下面结合图4详细说明如何采用DCNRC进行数据库的密文检索,如图4所示,包括如下步骤:1:客户端提交检索请求,设检索条件为Y>p;2:由DCNRC判断SQL检索条件为范围检索,则先执行对应条件的等值检索;3:SQL语句翻译器负责将明文SQL语句转化为对应的密文SQL语句,在密文数据库中直接执行SQL语句进行检索:SELECTIDFROMPaperWhereY’=c;4:将检索结果返回到DCNRC;5:DCNRC根据检索结果的ID,判断明文数据p在密钥散列中的对应值,进而在密文数据库中,划定属于{Records|Y>p}的记录范围;6:根据所划定的数据库范围,返回数据库密文结果;7:若检索结果中包含敏感字段,则将密文解密;若检索结果中不包含敏感字段,则直接返回检索结果。上述密钥序列可以称为基于密钥散列的序列(SequenceBasedKeyHash,SBKH),其负责为DCNRC的顺序置换提供数值参照。SBKH的产生过程在PC客户端插入密钥时完成,通过序列产生算法可产生任意长度的密钥序列,根据实际需求,密钥序列的长度由数据库中的密文数量决定,序列产生后,将序列拆分为多个数值,通过保持这些拆分的数值与数据库明文大小顺序同分布,能够方便地支持范围检索,且在检索过程中不需解密任何数据,可有效提高密文检索效率。设密钥为K,产生密钥序列的算法如下:H1=SHA256(K)H2=SHA256(H1)H3=SHA256(H2)......Hn=SHA256(Hn-1)H1⊕H2=S12H2⊕H3=S23H3⊕H4=S34......Hn-1⊕Hn=Sn-1,n]]>由密钥散列产生密钥序列的过程如图5所示。设密钥为Key=CE74C74E4B912351801297EED0B240A3,则密钥SHA256哈希值为:H1=6587C9AF66CC49A2B8B3D567F1B41E1941153746E599F798EEC3FF91383F5ECF;又有Hi+1=SHA256(Hi),所以:H2=87A2B81DA90129854622C2CE21ECE615D37ED86B421DA957E69F2E0140A454AB;H3=677C976CB061021B76669DFB23FC43D956D88B192E5F4601DAB7A28CB6C2FCA4;……而又有Hi⊕Hj=Sij,因此:S12=H1⊕H2=E22571B2CFCD6027FE9117A9D058F80C926BEF2DA7845ECF085CD190789B0A64;S23=H2⊕H3=E0DE2F7119602B9E30445F350210A5CC85A653726C42EF563C288C8DF666A80F;……设数据表中包含100万条记录,而219<106<220,则每条记录的敏感字段可由20个二进制位标识,SBKH中每个S序列包含256个二进制位,因此,需产生(20×106)/256≈7.81×104个S序列。在实际应用中,如果数据记录的数量突然增加,可能会造成当前序列数量不够用,就必须重新产生序列,并更新数据库索引,如果不希望数据库的索引频繁地更新,则可将SBKH中序列的数量尽量设的偏大一些。对于序列{S12,S23,S34,……,Sn-1,n},所产生的每个数值由20个二进制位组成,产生数值的过程如图6所示。基于与上述密文检索方法相同的发明构思,本申请提供一种密文检索装置,如下面实施例所述。由于该密文检索装置解决问题的原理与密文检索方法相似,因此该密文检索装置的实施可以参见密文检索方法的实施,重复之处不再赘述。图7为本发明实施例中基于云存储的数值型数据的密文检索装置的结构示意图,如图7所示,该密文检索装置包括:序列生成单元701,用于根据待检索OAIS数据包的密钥生成密钥序列,并将所述密钥序列拆分为设定长度的多个序列数值;语句翻译单元702,用于将待检索OAIS数据包的明文查询语句翻译为对应的密文查询语句;所述明文查询语句中包含用户输入的明文检索条件,所述密文查询语句中包括由明文检索条件得到的密文检索条件;检索单元703,用于向云端服务器提交所述密文检索条件对应的等值检索条件进行检索,得到检索结果;标识映射单元704,用于根据所述检索结果在数据库中的标识,映射得到对应的序列数值的标识;标识集合生成单元705,用于从所述多个序列数值中提取大于或小于映射得到的所述序列数值的所有序列数值的对应的标识,得到标识集合;数据获取单元706,用于根据所述标识集合从所述云端服务器获取对应的数据。一实施例中,该密文检索装置还包括:密钥获取单元,用于获取用户输入所述待检索OAIS数据包的密钥。一实施例中,该密文检索装置还包括:检索条件获取单元,用于获取用户输入的所述明文检索条件。一实施例中,该密文检索装置还包括:映射建立单元,用于根据所述多个序列数值大小顺序及所述数据库中数据的大小顺序建立所述多个序列数值与所述数据库中数据的映射关系。一实施例中,所述序列生成单元具体用于:利用哈希算法,对所述密钥进行多次哈希和/或异或处理,生成密钥序列。一实施例中,如果根据等值检索条件进行检索时得不到检索结果,所述检索单元在不改变密文检索结果的条件下改变所述等值检索条件的边界值重新进行检索。一实施例中,该密文检索装置还包括:解密单元,用于对获取的所述密文数据进行解密,得到明文数据。通过本发明,可以在保障数据安全的基础上提高密文检索效率。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1