CN103309973A - 可验证外包数据查询的方法及系统 - Google Patents

可验证外包数据查询的方法及系统 Download PDF

Info

Publication number
CN103309973A
CN103309973A CN2013102284728A CN201310228472A CN103309973A CN 103309973 A CN103309973 A CN 103309973A CN 2013102284728 A CN2013102284728 A CN 2013102284728A CN 201310228472 A CN201310228472 A CN 201310228472A CN 103309973 A CN103309973 A CN 103309973A
Authority
CN
China
Prior art keywords
result
data
word
clouds server
hash function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013102284728A
Other languages
English (en)
Other versions
CN103309973B (zh
Inventor
周憬宇
过敏意
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201310228472.8A priority Critical patent/CN103309973B/zh
Publication of CN103309973A publication Critical patent/CN103309973A/zh
Application granted granted Critical
Publication of CN103309973B publication Critical patent/CN103309973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种可验证外包数据查询的方法及系统,包括数据主生成验证所需的参数并上传到云端服务器,并生成所有原始文档的针对每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到云端服务器,及发起查询请求,将查询的多个关键字/词发到云端服务器;云端服务器执行查询操作,根据参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和查询结果的结果正确性和结果完整性的证明并发送到数据主;数据主根据所述查询结果的结果正确性和结果完整性的证明验证从云端服务器接收的所述查询结果是否正确和完整。本发明能够有效验证从云端服务器搜索的查询结果的正确性和完整性。

Description

可验证外包数据查询的方法及系统
技术领域
本发明涉及在外包数据在服务器端进行查询,产生查询结果和结果正确性的简短证明,以及在客户端验证查询结果的领域,特别涉及一种基于RSA的可验证外包数据查询的方法及系统。
背景技术
随着云计算技术的发展,大量的个人和企业用户都逐渐将自己的数据外包到云服务端存储,以期获得更高的可用性、数据可靠性和较低的价格。对于外包的用户数据,一个重要的功能是搜索查询。现有的外包数据查询文献主要关注于加密数据的查询(参见文献7.S.Kamara,C.Papamanthou,and T.Roeder,“Dynamic searchable symmetric encryption,”in CCS,2012,pp.965-976,文献8.R.Curtmola,J.Garay,S.Kamara,and R.Ostrovsky,“Searchablesymmetric encryption:improved definitions and efficientconstructions,”in Proceedings of the13th ACM conference on Computerand communications security,2006,pp.79-88,文献9.C.Wang,N.Cao,J.Li,K.Ren,and W.Lou,“Secure Ranked Keyword Search over EncryptedCloud Data,”in Proceedings of the2010IEEE30th InternationalConference on Distributed Computing Systems,2010,pp.253-262,文献10.N.Cao,C.Wang,M.Li,K.Ren,and W.Lou,“Privacy-preservingmulti-keyword ranked search over encrypted cloud data,”in IEEE INFOCOM,2011,pp.829-837,文献11.Y.Chang and M.Mitzenmacher,“Privacypreserving keyword searches on remote encrypted data,”in AppliedCryptography and Network Security,2005,pp.442-455),确保云服务无法获取用户的数据信息(包括存储的数据和查询关键词),但缺乏对查询结果的正确性和完整性的验证。在验证外包数据的查询结果方面,文献1(J.Wang,X.Chen,H.Ma,Q.Tang,J.Li,and H.Zhu,“A Verifiable Fuzzy KeywordSearch Scheme Over Encrypted Data,”Journal of Internet Services andInformation Security(JISIS),vol.2,no.1/2,pp.49-58,2012)和文献6(J.Li,Q.Wang,C.Wang,N.Cao,K.Ren,and W.Lou,“Fuzzy KeywordSearch over Encrypted Data in Cloud Computing,”in2010Proceedings IEEEINFOCOM,2010,pp.1-5)提出了在外包数据上实现模糊查询的方法,通过一个符号树(symbol-tree)的数据结构,提供安全的搜索服务。文献3(Q.Chai andG.Gong,“Verifiable Symmetric Searchable Encryption ForSemi-honest-but-curious Cloud Servers,”in2012IEEE InternationalConference on Communications(ICC),2012,pp.917-922)提出了一个基于Trie树的可验证查询方法。这些方法(参见文献1、3和6)仅支持单个关键词的查询,无法像本发明一样允许一个查询同时包含多个关键词。
文献2(B.Parno,C.Gentry,J.Howell,and M.Raykova,“Pinocchio:Nearly Practical Verifiable Computation,”in Proceedings of the IEEESymposium on Security and Privacy,2013)提出了可验证计算的模型,将C程序转换到电路表示形式(circuit representation),然后再转换到一个二次程序(quadratic program),最后生成可验证的协议。该方法对于非数字计算类型的程序的转换效率不高,计算复杂度较大,不适合于外包数据的实时查询。
文献4(M.T.Goodrich,R.Tamassia,and J.Hasic,“An EfficientDynamic and Distributed Cryptographic Accumulator,”in Proc.ofInformation Security Conference(ISC),2002,pp.372-388)提出了一种利用RSA累加器回答集合成员查询的方法,客户端可以验证服务端返回结果的正确性。文献5(J.Li,N.Li,and R.Xue,“Universal Accumulators withEfficient Nonmembership Proofs,”in Proceedings of the5thinternational conference on Applied Cryptography and Network Security(ACNS),2007,pp.253-269)则给出了利用RSA累加器回答非集合成员查询的方法。本发明中利用以上方法,分别构造出外包数据查询的正确性和完整性的证明,以上两种方法在文献4和文献5中均不涉及本发明中的多关键词查询、也没有同时构造出查询的正确性和完整性的证明。
发明内容
本发明的目的在于提供一种可验证外包数据查询的方法及系统,能够有效验证从云端服务器搜索的查询结果的正确性和完整性。
为解决上述问题,本发明提供一种可验证外包数据查询的方法,包括:
数据主生成验证所需的参数并上传到云端服务器;
所述数据主生成所有原始文档的针对每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器;
数据主发起查询请求,将查询的多个关键字/词发到所述云端服务器;
所述云端服务器执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性的证明,并发送到所述数据主;
所述数据主根据所述查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整。
进一步的,在上述方法中,数据主生成验证所需的参数并上传到云端服务器的步骤包括:
所述数据主根据给定的安全参数k产生一个k-bit长的RSA模n=pq,并随机从模n的平方剩余中产生数字g,其中,k的取值大于或等于1024(为获取更高的安全性建议为2048以上),p、q的长度相同且都是安全素数,g为正整数;
所述数据主选择第一哈希函数和第二哈希函数,其中,所述第一哈希函数用于将一个任意长度的数字映射到一个固定长度的数字,所述第二哈希函数为一个two-universal哈希函数,用于将一个固定长度的数字映射到一个三倍固定长度的素数;
所述数据主将所述n、g、第一哈希函数和第二哈希函数作为验证所需的参数上传到云端服务器。
进一步的,在上述方法中,所述数据主生成所有原始文档的针对每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器的步骤包括:
数据主生成所述原始文档的每一个关键字/词的索引集合,其中,每一个关键字/词的ID用e来表示,e为任意正整数,每个关键字/词的索引集合用Xe={x1,x2,…,xm}表示,Xe中的每个元素xi=(docIDi,TFi,Pi1,Pi2,…),i=1,2,…,m,m为正整数,docIDi、TFi,Pi1,Pi2分别表示包含该关键字/词的原始文档的ID、出现次数和出现的各个位置;
采用所述第一哈希函数和第二哈希函数将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},其中,若Xe中的元素的长度不足所述固定长度则yi=HASH2(xi),若Xe中的元素的长度等于或超过所述固定长度则yi=HASH2(HASH1(xi)),i=1,2,…,m,m为正整数;
获取Ye中所有元素的乘积作为ue,根据公式
Figure BDA00003324246200041
获取每个索引集合Xe相应的RSA累加器的值c,并生成每个RSA累加器的值c的对应的数据签名;
将每个索引集合Xe和相应的RSA累加器的值c、数据签名作为所述反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器。
进一步的,在上述方法中,所述云端服务器执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性证明,并发送到所述数据主的步骤包括:
所述云端服务器找到每个关键字/词对应的索引集合,然后将所有索引集合的交集作为所述查询的多个关键字/词的查询结果,所述交集用Xe’={xe,1,xe,2,…,xe,f}表示,f<=m;
所述云端服务器采用所述第一哈希函数和第二哈希函数,将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},及将每个交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f},获取Ye中所有元素的乘积ue,获取Ye’中所有元素的乘积ue’,根据公式
Figure BDA00003324246200051
获取每个Xe对应的并将每个Xe对应的
Figure BDA00003324246200053
RSA累加器的值c和数据签名作为结果正确性的证明;
从所有索引集合中选择一个包含最少元素的索引集合,构造该包含最少元素的索引集合中在所述交集之外的每个元素不在其它索引集合中出现的证明为数据对(x,a,d,e),其表示元素x不出现在第e个关键字/词的索引集合中,将所有的证明为数据对(x,a,d,e)作为结果完整性的证明;
将所述查询的多个关键字/词的查询结果、结果正确性的证明和结果完整性的证明发送到所述数据主。
进一步的,在上述方法中,所述数据主根据所述查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整的步骤包括:
所述数据主通过所述第一哈希函数和第二哈希函数将交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f};
根据每个索引集合Xe相应的RSA累加器的值c验证接收到的对应的数据签名是否正确,
若不正确,则判断所述云端服务器发送的查询结果为不正确后退出;
若正确,则计算
Figure BDA00003324246200061
是否成立,若不成立,则判断所述云端服务器发送的查询结果为不正确后退出,若成立,则判断所述云端服务器发送的查询结果为正确;
对于所述云端服务器发送的每个证明为数据对(x,a,d,e),数据主首先找到第e个关键字/词的RSA累加器的值c,计算y=HASH2(HASH1(x)),然后验证ca=dyg(modn)是否成立,若不成立,则判断所述证明为数据对(x,a,d,e)为不正确后退出;若成立,则判断所述证明为数据对(x,a,d,e)为正确;
采用所述公式
Figure BDA00003324246200062
验证所述查询结果和所有证明为数据对(x,a,d,e)中的所有元素x是否一起完整构成所述包含最少元素的索引集合,若不完整构成,则判断所述云端服务器发送的查询结果为不完整后退出;若完整构成,则判断所述云端服务器发送的查询结果为完整后退出。
根据本发明的另一面,提供一种可验证外包数据查询的系统,包括:
数据主,用于生成验证所需的参数并上传到云端服务器,生成所述原始文档针对的每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器,及发起查询请求,将查询的多个关键字/词发到所述云端服务器,根据从所述云端服务器接收到的查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整;
云端服务器,用于执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性的证明,并发送到所述数据主。
进一步的,在上述系统中,所述数据主用于,
根据给定的安全参数k产生一个k-bit长的RSA模n=pq,并随机从模n的平方剩余中产生数字g,其中,k的取值大于或等于1024(为获取更高的安全性可选择为2048以上的数字),p、q的长度相同且都是安全素数,g为正整数;
选择第一哈希函数和第二哈希函数,其中,所述第一哈希函数用于将一个任意长度的数字映射到一个固定长度的数字,所述第二哈希函数为一个two-universal哈希函数,用于将一个固定长度的数字映射到一个三倍固定长度的素数;
将所述n、g、第一哈希函数和第二哈希函数作为验证所需的参数上传到云端服务器。
进一步的,在上述系统中,所述数据主用于,
生成所述原始文档的每一个关键字/词的索引集合,其中,每一个关键字/词的ID用e来表示,e为任意正整数,每个关键字/词的索引集合用Xe={x1,x2,…,xm}表示,Xe中的每个元素xi=(docIDi,TFi,Pi1,Pi2,…),i=1,2,…,m,m为正整数,docIDi、TFi,Pi1,Pi2分别表示包含该关键字/词的原始文档的ID、出现次数和出现的各个位置;
采用所述第一哈希函数和第二哈希函数将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},其中,若Xe中的元素的长度不足所述固定长度则yi=HASH2(xi),若Xe中的元素的长度等于或超过所述固定长度则yi=HASH2(HASH1(xi)),i=1,2,…,m,m为正整数;
获取Ye中所有元素的乘积作为ue,根据公式
Figure BDA00003324246200071
获取每个索引集合Xe相应的RSA累加器的值c,并生成每个RSA累加器的值c的对应的数据签名;
将每个索引集合Xe和相应的RSA累加器的值c、数据签名作为所述反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器。
进一步的,在上述系统中,所述云端服务器用于,
找到每个关键字/词对应的索引集合,然后将所有索引集合的交集作为所述查询的多个关键字/词的查询结果,所述交集用Xe’={xe,1,xe,2,…,xe,f}表示,f<=m;
采用所述第一哈希函数和第二哈希函数,将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},及将每个交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f},获取Ye中所有元素的乘积ue,获取Ye’中所有元素的乘积ue’,根据公式
Figure BDA00003324246200081
获取每个Xe对应的
Figure BDA00003324246200084
并将每个Xe对应的
Figure BDA00003324246200082
RSA累加器的值c和数据签名作为结果正确性的证明;
从所有索引集合中选择一个包含最少元素的索引集合,构造该包含最少元素的索引集合中在所述交集之外的每个元素不在其它索引集合中出现的证明为数据对(x,a,d,e),其表示元素x不出现在第e个关键字/词的索引集合中,将所有的证明为数据对(x,a,d,e)作为结果完整性的证明;
将所述查询的多个关键字/词的查询结果、结果正确性的证明和结果完整性的证明发送到所述数据主。
进一步的,在上述系统中,所述数据主用于,
通过所述第一哈希函数和第二哈希函数将交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f};
根据每个索引集合Xe相应的RSA累加器的值c验证接收到的对应的数据签名是否正确,
若不正确,则判断所述云端服务器发送的查询结果为不正确后退出;
若正确,则计算
Figure BDA00003324246200083
是否成立,若不成立,则判断所述云端服务器发送的查询结果为不正确后退出,若成立,则判断所述云端服务器发送的查询结果为正确;
对于所述云端服务器发送的每个证明为数据对(x,a,d,e),数据主首先找到第e个关键字/词的RSA累加器的值c,计算y=HASH2(HASH1(x)),然后验证ca=dyg(modn)是否成立,若不成立,则判断所述证明为数据对(x,a,d,e)为不正确后退出;若成立,则判断所述证明为数据对(x,a,d,e)为正确;
采用所述公式
Figure BDA00003324246200091
验证所述查询结果和所有证明为数据对(x,a,d,e)中的所有元素x是否一起完整构成所述包含最少元素的索引集合,若不完整构成,则判断所述云端服务器发送的查询结果为不完整后退出;若完整构成,则判断所述云端服务器发送的查询结果为完整后退出。
与现有技术相比,本发明通过数据主生成验证所需的参数并上传到云端服务器;所述数据主生成所有原始文档的针对每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器;数据主发起查询请求,将查询的多个关键字/词发到所述云端服务器;所述云端服务器执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性的证明,并发送到所述数据主;所述数据主根据所述查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整,能够有效验证从云端服务器搜索的查询结果的正确性和完整性。
附图说明
图1是本发明一实施例的可验证外包数据查询的方法的流程图;
图2是本发明一实施例的查询过程示意图;
图3是图1中步骤S1的详细流程图;
图4是图1中步骤S2的详细流程图;
图5是图1中步骤S4的详细流程图;
图6是图1中步骤S5的详细流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
随着云计算的迅速发展和普及,用户将数据存储和数据查询都外包到云端服务器,从而避免在用户的设备上面存储大量数据。但是,由于外包数据的搜索查询过程在云端完成,恶意的云服务可能会返回错误的结果,或者出于节省资源的目的只返回部分结果。本发明的目的是由云端服务器提供低廉、高可用、高可靠的数据存储和查询服务,从而让用户能够有效验证云端搜索查询结果的正确性和完整性。
本实施例涉及数据主(data owner)和云端服务器(server)两方,数据主会向云端服务器发送查询的关键词,云端服务器执行查询操作然后返回查询结果和验证结果的简短证明,数据主即可以快速根据结果和证明来验证云端服务器所做的查询操作是正确的。
本实施例主要针对以下问题:
问题一:查询结果的正确性,即查询结果仅包含相关文档数据,而不包含其它无关数据;
问题二:查询结果的完整性,即查询结果包含所有的相关数据,如果云端服务器返回部分结果,则数据主可以验证出云端服务器没有返回全部结果。
如图1至6所示,本发明提供一种可验证外包数据查询的方法,包括步骤S1~步骤S5。
步骤S1,数据主生成验证所需的参数并上传到云端服务器。
优选的,如图3所示,步骤S1包括:
步骤S11,所述数据主根据给定的安全参数k产生一个k-bit长的RSA模n=pq,并随机从模n的平方剩余(quadratic residue)中产生数字g,其中,k的为1024(或更大的正整数),为获取更高的安全性建议为2048以上,p、q的长度相同且都是安全素数(safe prime),g为正整数;
步骤S12,所述数据主选择第一哈希函数HASH1和第二哈希函数HASH2,其中,所述第一哈希函数用于将一个任意长度的数字映射到一个固定长度(o-bit)的数字,例如使用MD5算法产生128-bit的数字、用HSHA1算法产生160-bit的数字,所述第二哈希函数为一个two-universal哈希函数(具体可参见J.L.Carterand M.N.Wegman.Universal Classes of Hash Functions.Journal of Computer andSystem Sciences,18(2):143–154,1979.),用于将一个固定长度(o-bit)的数字映射到一个三倍固定长度(3o-bit)的素数;
步骤S13,所述数据主将所述n、g、第一哈希函数和第二哈希函数作为验证所需的参数上传到云端服务器,即数据主将参数n和g、以及HASH1和HASH2告诉给云端服务器。
步骤S2,所述数据主生成所有原始文档的针对每一个关键字/词的反向索引(inverted index),将所有原始文档与所有的反向索引上传到所述云端服务器。
优选的,如图4所示,所述步骤S2包括:
步骤S21,数据主生成所述原始文档的每一个关键字/词(对于任一字、词)的索引集合,其中,每一个关键字/词的ID用e来表示,e为任意正整数,每个关键字/词的索引集合用Xe={x1,x2,…,xm}表示,Xe中的每个元素xi=(docIDi,TFi,Pi1,Pi2,…),i=1,2,…,m,m为正整数,docIDi、TFi,Pi1,Pi2分别表示包含该关键字/词的原始文档的ID、出现次数和出现的各个位置,即docIDi表示文档ID、TFi表示出现次数、Pi1等表示出现的位置;
步骤S22,采用所述第一哈希函数和第二哈希函数将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},其中,若Xe中的元素的长度不足所述固定长度则yi=HASH2(xi),若Xe中的元素的长度等于或超过所述固定长度则yi=HASH2(HASH1(xi)),i=1,2,…,m,m为正整数;
步骤S23,获取Ye中所有元素的乘积作为ue,根据公式
Figure BDA00003324246200111
获取每个索引集合Xe相应的RSA累加器的值c,并生成每个RSA累加器的值c的对应的数据签名,具体的,由于数据主知道p、q的值,c可以快速计算得到;
步骤S24,将每个索引集合Xe和相应的RSA累加器的值c、数据签名作为所述反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器。
步骤S3,数据主发起查询请求,将查询的多个关键字/词发到所述云端服务器。
步骤S4,所述云端服务器执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性的证明,并发送到所述数据主。具体的,数据主的查询由多个关键字/词构成,云端服务器在收到数据主的查询请求以后,分别找到每个关键词对应的索引集合,然后计算这些索引集合的交集(即包含所有关键字/词的文档),并生成结果的证明,一起返回给数据主。
优选的,如图5所示,步骤S4包括:
步骤S41,所述云端服务器找到每个关键字/词对应的索引集合,然后将所有索引集合的交集作为所述查询的多个关键字/词的查询结果,所述交集用Xe’={xe,1,xe,2,…,xe,f}表示,f<=m;例如,用户查询关键词包括t1和t2,那么数据主首先找到t1的索引集合X1和t2的索引集合X2;对X1中每一个元素x1,i=(docID1,i,TF1,i,P1,i1,P1,i2,…),如果X2中存在一个元素x2,j=(docID2,j,TF2,j,P2,j1,P2,j2,…)满足docID1,i=docID2,j,那么服务器就找到了一个文档同时包含这两个关键字/词,x1,i和x2,j都将被包含在结果当中;
步骤S42,所述云端服务器采用所述第一哈希函数和第二哈希函数,将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},及将每个交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f},获取Ye中所有元素的乘积ue,获取Ye’中所有元素的乘积ue’,根据公式
Figure BDA00003324246200121
获取每个Xe对应的
Figure BDA00003324246200122
并将每个Xe对应的
Figure BDA00003324246200131
RSA累加器的值c和数据签名作为结果正确性的证明,具体的,第二映射集合Ye’的求法与第一映射集合Ye的求法相似,即若Xe’中的元素的长度不足所述固定长度则ye,i=HASH2(xe,i),若Xe中的元素的长度等于或超过所述固定长度则ye,i=HASH2(HASH1(xe,i)),i=1,2,…,f,本步骤中云端服务器需要对每个关键字/词的索引集合都计算相应的结果正确性的证明;
步骤S43,从所有索引集合中选择一个包含最少元素的索引集合,构造该包含最少元素的索引集合中在所述交集之外的每个元素不在其它索引集合中出现的证明为数据对(x,a,d,e),其表示元素x不出现在第e个关键字/词的索引集合中,将所有的证明为数据对(x,a,d,e)作为结果完整性的证明,具体的,结果完整性的证明包括在包含最少元素的索引集合中所有不满足条件的元素不在其它任意一个集合中的证明,例如,不失一般性,假定||X1||≤||X2||,即需要给出集合X1\X1’中所有元素都不在X2中的证明。对于任意一个这样的元素x构造出对应的证明为数据对(a,d)(具体可参见J.Li,N.Li,and R.Xue,“Universal Accumulators with Efficient Nonmembership Proofs,”inProceedings of the5th international conference on Applied Cryptographyand Network Security(ACNS),2007,pp.253-269.)。在计算出所有数据对(a,d)的具体值以后,将所有(x,a,d,e)一起打包为证明,然后发给用户,其中e表示元素x不出现在第e个关键词的索引集合中;
步骤S44,将所述查询的多个关键字/词的查询结果、结果正确性的证明和结果完整性的证明发送到所述数据主。
步骤S5,所述数据主根据所述查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整。
优选的,如图6所示,步骤S5可包括:
步骤S51,所述数据主通过所述第一哈希函数和第二哈希函数将交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f};
步骤S52,根据每个索引集合Xe相应的RSA累加器的值c验证接收到的对应的数据签名是否正确,若不正确,则转到步骤S53,若正确,则转到步骤S54;
步骤S53,判断所述云端服务器发送的查询结果为不正确后退出;
步骤S54,计算
Figure BDA00003324246200141
是否成立,若不成立,则转到步骤S53,若成立,则转到步骤S55;
步骤S55,判断所述云端服务器发送的查询结果为正确,具体的,在结果正确性验证方面,对于云端服务器返回结果即交集Xe’及多个满足查询条件的证明
Figure BDA00003324246200143
索引集合Xe的累加器的值(c)和数字签名,数据主首先通过HASH1和HASH2这两个哈希函数将集合Xe’映射为Ye’,然后验证:
①累加器的值c的数字签名是正确的;
c = ( P X e &prime; ) u e &prime; mod n 是成立的;
当以上两个条件同时满足时,数据主可以确认返回结果即交集Xe’是正确的;否则,返回的交集Xe’是不正确的;
步骤S56,对于所述云端服务器发送的每个证明为数据对(x,a,d,e),数据主首先找到第e个关键字/词的RSA累加器的值c,计算y=HASH2(HASH1(x)),然后验证ca=dyg(modn)是否成立,若不成立,则转到步骤S57;若成立,则转到步骤S58;
步骤S57,判断所述证明为数据对(x,a,d,e)为不正确后退出;
步骤S58,判断所述证明为数据对(x,a,d,e)为正确;
步骤S59,采用所述公式验证所述查询结果和所有证明为数据对(x,a,d,e)中的所有元素x是否一起完整构成所述包含最少元素的索引集合,若不完整构成,则转到步骤S60;若完整构成,则转到步骤S61。
步骤S60,判断所述云端服务器发送的查询结果不完整后退出;
步骤S61,判断所述云端服务器发送的查询结果完整后退出,具体的,在结果完整性验证方面,对于云端服务器返回的所有(x,a,d,i),数据主首先找到第e个关键字/词的累加器值c,计算y=HASH2(HASH1(x)),然后验证:
ca=dyg(modn)是成立的;
如果以上验证通过,那么给定的证明为数据对(x,a,d,e)为正确,否则证明是错误的,在上述所有验证都正确的情况下,数据主还需验证结果交集Xe’和所有证明为数据对(x,a,d,e)返回的所有元素x是否一起构成一个完整的反向索引集合,具体可利用公式
Figure BDA00003324246200152
计算累加器值c来验证。
综上,本实施能够有效验证从云端服务器搜索的查询结果的正确性和完整性。
实施例二
本发明还提供另一种可验证外包数据查询的系统,包括:
数据主,用于生成验证所需的参数并上传到云端服务器,生成所述原始文档针对的每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器,及发起查询请求,将查询的多个关键字/词发到所述云端服务器,根据从所述云端服务器接收到的查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整;
云端服务器,用于执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性的证明,并发送到所述数据主。
优选的,所述数据主用于,
根据给定的安全参数k产生一个k-bit长的RSA模n=pq,并随机从模n的平方剩余中产生数字g,其中,k的取值为1024或更大的正整数,p、q的长度相同且都是安全素数,g为正整数;
选择第一哈希函数和第二哈希函数,其中,所述第一哈希函数用于将一个任意长度的数字映射到一个固定长度的数字,所述第二哈希函数为一个two-universal哈希函数,用于将一个固定长度的数字映射到一个三倍固定长度的素数;
将所述n、g、第一哈希函数和第二哈希函数作为验证所需的参数上传到云端服务器。
优选的,所述数据主用于,
生成所述原始文档的每一个关键字/词的索引集合,其中,每一个关键字/词的ID用e来表示,e为任意正整数,每个关键字/词的索引集合用Xe={x1,x2,…,xm}表示,Xe中的每个元素xi=(docIDi,TFi,Pi1,Pi2,…),i=1,2,…,m,m为正整数,docIDi、TFi,Pi1,Pi2分别表示包含该关键字/词的原始文档的ID、出现次数和出现的各个位置;
采用所述第一哈希函数和第二哈希函数将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},其中,若Xe中的元素的长度不足所述固定长度则yi=HASH2(xi),若Xe中的元素的长度等于或超过所述固定长度则yi=HASH2(HASH1(xi)),i=1,2,…,m,m为正整数;
获取Ye中所有元素的乘积作为ue,根据公式获取每个索引集合Xe相应的RSA累加器的值c,并生成每个RSA累加器的值c的对应的数据签名;
将每个索引集合Xe和相应的RSA累加器的值c、数据签名作为所述反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器。
优选的,所述云端服务器用于,
找到每个关键字/词对应的索引集合,然后将所有索引集合的交集作为所述查询的多个关键字/词的查询结果,所述交集用Xe’={xe,1,xe,2,…,xe,f}表示,f<=m;
采用所述第一哈希函数和第二哈希函数,将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},及将每个交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f},获取Ye中所有元素的乘积ue,获取Ye’中所有元素的乘积ue’,根据公式
Figure BDA00003324246200171
获取每个Xe对应的
Figure BDA00003324246200172
并将每个Xe对应的
Figure BDA00003324246200173
RSA累加器的值c和数据签名作为结果正确性的证明;
从所有索引集合中选择一个包含最少元素的索引集合,构造该包含最少元素的索引集合中在所述交集之外的每个元素不在其它索引集合中出现的证明为数据对(x,a,d,e),其表示元素x不出现在第e个关键字/词的索引集合中,将所有的证明为数据对(x,a,d,e)作为结果完整性的证明;
将所述查询的多个关键字/词的查询结果、结果正确性的证明和结果完整性的证明发送到所述数据主。
优选的,所述数据主用于,
通过所述第一哈希函数和第二哈希函数将交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f};
根据每个索引集合Xe相应的RSA累加器的值c验证接收到的对应的数据签名是否正确,
若不正确,则判断所述云端服务器发送的查询结果为不正确后退出;
若正确,则计算
Figure BDA00003324246200174
是否成立,若不成立,则判断所述云端服务器发送的查询结果为不正确后退出,若成立,则判断所述云端服务器发送的查询结果为正确;
对于所述云端服务器发送的每个证明为数据对(x,a,d,e),数据主首先找到第e个关键字/词的RSA累加器的值c,计算y=HASH2(HASH1(x)),然后验证ca=dyg(modn)是否成立,若不成立,则判断所述证明为数据对(x,a,d,e)为不正确后退出;若成立,则判断所述证明为数据对(x,a,d,e)为正确;
采用所述公式
Figure BDA00003324246200181
验证所述查询结果和所有证明为数据对(x,a,d,e)中的所有元素x是否一起完整构成所述包含最少元素的索引集合,若不完整构成,则判断所述云端服务器发送的查询结果为不完整后退出;若完整构成,则判断所述云端服务器发送的查询结果为完整后退出。
本发明通过数据主生成验证所需的参数并上传到云端服务器;所述数据主生成所有原始文档的针对每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器;数据主发起查询请求,将查询的多个关键字/词发到所述云端服务器;所述云端服务器执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性的证明,并发送到所述数据主;所述数据主根据所述查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整,能够有效验证从云端服务器搜索的查询结果的正确性和完整性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

Claims (10)

1.一种可验证外包数据查询的方法,其特征在于,包括:
数据主生成验证所需的参数并上传到云端服务器;
所述数据主生成所有原始文档的针对每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器;
数据主发起查询请求,将查询的多个关键字/词发到所述云端服务器;
所述云端服务器执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性的证明,并发送到所述数据主;
所述数据主根据所述查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整。
2.如权利要求1所述的可验证外包数据查询的方法,其特征在于,数据主生成验证所需的参数并上传到云端服务器的步骤包括:
所述数据主根据给定的安全参数k产生一个k-bit长的RSA模n=pq,并随机从模n的平方剩余中产生数字g,其中,k的取值大于或等于1024,p、q的长度相同且都是安全素数,g为正整数;
所述数据主选择第一哈希函数和第二哈希函数,其中,所述第一哈希函数用于将一个任意长度的数字映射到一个固定长度的数字,所述第二哈希函数为一个two-universal哈希函数,用于将一个固定长度的数字映射到一个三倍固定长度的素数;
所述数据主将所述n、g、第一哈希函数和第二哈希函数作为验证所需的参数上传到云端服务器。
3.如权利要求2所述的可验证外包数据查询的方法,其特征在于,所述数据主生成所有原始文档的针对每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器的步骤包括:
数据主生成所述原始文档的每一个关键字/词的索引集合,其中,每一个关键字/词的ID用e来表示,e为任意正整数,每个关键字/词的索引集合用Xe={x1,x2,…,xm}表示,Xe中的每个元素xi=(docIDi,TFi,Pi1,Pi2,…),i=1,2,…,m,m为正整数,docIDi、TFi,Pi1,Pi2分别表示包含该关键字/词的原始文档的ID、出现次数和出现的各个位置;
采用所述第一哈希函数和第二哈希函数将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},其中,若Xe中的元素的长度不足所述固定长度则yi=HASH2(xi),若Xe中的元素的长度等于或超过所述固定长度则yi=HASH2(HASH1(xi)),i=1,2,…,m,m为正整数;
获取Ye中所有元素的乘积作为ue,根据公式获取每个索引集合Xe相应的RSA累加器的值c,并生成每个RSA累加器的值c的对应的数据签名;
将每个索引集合Xe和相应的RSA累加器的值c、数据签名作为所述反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器。
4.如权利要求3所述的可验证外包数据查询的方法,其特征在于,所述云端服务器执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性证明,并发送到所述数据主的步骤包括:
所述云端服务器找到每个关键字/词对应的索引集合,然后将所有索引集合的交集作为所述查询的多个关键字/词的查询结果,所述交集用Xe’={xe,1,xe,2,…,xe,f}表示,f<=m;
所述云端服务器采用所述第一哈希函数和第二哈希函数,将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},及将每个交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f},获取Ye中所有元素的乘积ue,获取Ye’中所有元素的乘积ue’,根据公式
Figure FDA00003324246100031
获取每个Xe对应的
Figure FDA00003324246100032
并将每个Xe对应的
Figure FDA00003324246100033
RSA累加器的值c和数据签名作为结果正确性的证明;
从所有索引集合中选择一个包含最少元素的索引集合,构造该包含最少元素的索引集合中在所述交集之外的每个元素不在其它索引集合中出现的证明为数据对(x,a,d,e),其表示元素x不出现在第e个关键字/词的索引集合中,将所有的证明为数据对(x,a,d,e)作为结果完整性的证明;
将所述查询的多个关键字/词的查询结果、结果正确性的证明和结果完整性的证明发送到所述数据主。
5.如权利要求1所述的可验证外包数据查询的方法,其特征在于,所述数据主根据所述查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整的步骤包括:
所述数据主通过所述第一哈希函数和第二哈希函数将交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f};
根据每个索引集合Xe相应的RSA累加器的值c验证接收到的对应的数据签名是否正确,
若不正确,则判断所述云端服务器发送的查询结果为不正确后退出;
若正确,则计算
Figure FDA00003324246100034
是否成立,若不成立,则判断所述云端服务器发送的查询结果为不正确后退出,若成立,则判断所述云端服务器发送的查询结果为正确;
对于所述云端服务器发送的每个证明为数据对(x,a,d,e),数据主首先找到第e个关键字/词的RSA累加器的值c,计算y=HASH2(HASH1(x)),然后验证ca=dyg(modn)是否成立,若不成立,则判断所述证明为数据对(x,a,d,e)为不正确后退出;若成立,则判断所述证明为数据对(x,a,d,e)为正确;
采用所述公式
Figure FDA00003324246100041
验证所述查询结果和所有证明为数据对(x,a,d,e)中的所有元素x是否一起完整构成所述包含最少元素的索引集合,若不完整构成,则判断所述云端服务器发送的查询结果为不完整后退出;若完整构成,则判断所述云端服务器发送的查询结果为完整后退出。
6.一种可验证外包数据查询的系统,其特征在于,包括:
数据主,用于生成验证所需的参数并上传到云端服务器,生成所述原始文档针对的每一个关键字/词的反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器,及发起查询请求,将查询的多个关键字/词发到所述云端服务器,根据从所述云端服务器接收到的查询结果的结果正确性和结果完整性的证明验证从所述云端服务器接收的所述查询结果是否正确和完整;
云端服务器,用于执行查询操作,根据所述参数和查询的每个关键字/词的反向索引生成所述查询的多个关键字/词的查询结果和所述查询结果的结果正确性和结果完整性的证明,并发送到所述数据主。
7.如权利要求6所述的可验证外包数据查询的系统,其特征在于,所述数据主用于,
根据给定的安全参数k产生一个k-bit长的RSA模n=pq,并随机从模n的平方剩余中产生数字g,其中,k的取值大于或等于1024,p、q的长度相同且都是安全素数,g为正整数;
选择第一哈希函数和第二哈希函数,其中,所述第一哈希函数用于将一个任意长度的数字映射到一个固定长度的数字,所述第二哈希函数为一个two-universal哈希函数,用于将一个固定长度的数字映射到一个三倍固定长度的素数;
将所述n、g、第一哈希函数和第二哈希函数作为验证所需的参数上传到云端服务器。
8.如权利要求7所述的可验证外包数据查询的系统,其特征在于,所述数据主用于,
生成所述原始文档的每一个关键字/词的索引集合,其中,每一个关键字/词的ID用e来表示,e为任意正整数,每个关键字/词的索引集合用Xe={x1,x2,…,xm}表示,Xe中的每个元素xi=(docIDi,TFi,Pi1,Pi2,…),i=1,2,…,m,m为正整数,docIDi、TFi,Pi1,Pi2分别表示包含该关键字/词的原始文档的ID、出现次数和出现的各个位置;
采用所述第一哈希函数和第二哈希函数将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},其中,若Xe中的元素的长度不足所述固定长度则yi=HASH2(xi),若Xe中的元素的长度等于或超过所述固定长度则yi=HASH2(HASH1(xi)),i=1,2,…,m,m为正整数;
获取Ye中所有元素的乘积作为ue,根据公式
Figure FDA00003324246100051
获取每个索引集合Xe相应的RSA累加器的值c,并生成每个RSA累加器的值c的对应的数据签名;
将每个索引集合Xe和相应的RSA累加器的值c、数据签名作为所述反向索引,将所有原始文档与所有的反向索引上传到所述云端服务器。
9.如权利要求8所述的可验证外包数据查询的系统,其特征在于,所述数据主用于,所述云端服务器用于,
找到每个关键字/词对应的索引集合,然后将所有索引集合的交集作为所述查询的多个关键字/词的查询结果,所述交集用Xe’={xe,1,xe,2,…,xe,f}表示,f<=m;
采用所述第一哈希函数和第二哈希函数,将每个索引集合Xe={x1,x2,…,xm}映射为对应的第一映射集合Ye={y1,y2,…,ym},及将每个交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f},获取Ye中所有元素的乘积ue,获取Ye’中所有元素的乘积ue’,根据公式
Figure FDA00003324246100061
获取每个Xe对应的
Figure FDA00003324246100062
并将每个Xe对应的
Figure FDA00003324246100063
RSA累加器的值c和数据签名作为结果正确性的证明;
从所有索引集合中选择一个包含最少元素的索引集合,构造该包含最少元素的索引集合中在所述交集之外的每个元素不在其它索引集合中出现的证明为数据对(x,a,d,e),其表示元素x不出现在第e个关键字/词的索引集合中,将所有的证明为数据对(x,a,d,e)作为结果完整性的证明;
将所述查询的多个关键字/词的查询结果、结果正确性的证明和结果完整性的证明发送到所述数据主。
10.如权利要求9所述的可验证外包数据查询的系统,其特征在于,所述数据主用于,
通过所述第一哈希函数和第二哈希函数将交集Xe’={xe,1,xe,2,…,xe,f}映射为对应的第二映射集合Ye’={ye,1,ye,2,…,ye,f};
根据每个索引集合Xe相应的RSA累加器的值c验证接收到的对应的数据签名是否正确,
若不正确,则判断所述云端服务器发送的查询结果为不正确后退出;
若正确,则计算是否成立,若不成立,则判断所述云端服务器发送的查询结果为不正确后退出,若成立,则判断所述云端服务器发送的查询结果为正确;
对于所述云端服务器发送的每个证明为数据对(x,a,d,e),数据主首先找到第e个关键字/词的RSA累加器的值c,计算y=HASH2(HASH1(x)),然后验证ca=dyg(modn)是否成立,若不成立,则判断所述证明为数据对(x,a,d,e)为不正确后退出;若成立,则判断所述证明为数据对(x,a,d,e)为正确;
采用所述公式
Figure FDA00003324246100064
验证所述查询结果和所有证明为数据对(x,a,d,e)中的所有元素x是否一起完整构成所述包含最少元素的索引集合,若不完整构成,则判断所述云端服务器发送的查询结果为不完整后退出;若完整构成,则判断所述云端服务器发送的查询结果为完整后退出。
CN201310228472.8A 2013-06-08 2013-06-08 可验证外包数据查询的方法及系统 Active CN103309973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310228472.8A CN103309973B (zh) 2013-06-08 2013-06-08 可验证外包数据查询的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310228472.8A CN103309973B (zh) 2013-06-08 2013-06-08 可验证外包数据查询的方法及系统

Publications (2)

Publication Number Publication Date
CN103309973A true CN103309973A (zh) 2013-09-18
CN103309973B CN103309973B (zh) 2016-08-10

Family

ID=49135191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310228472.8A Active CN103309973B (zh) 2013-06-08 2013-06-08 可验证外包数据查询的方法及系统

Country Status (1)

Country Link
CN (1) CN103309973B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102714A (zh) * 2014-07-16 2014-10-15 上海交通大学 基于累加器和布隆过滤器的外包数据查询验证方法及系统
CN105812141A (zh) * 2016-03-07 2016-07-27 东北大学 一种面向外包加密数据的可验证交集运算方法及系统
CN110309375A (zh) * 2019-06-29 2019-10-08 大众问问(北京)信息科技有限公司 信息提示方法、装置及车载终端设备
CN112417006A (zh) * 2020-11-30 2021-02-26 齐鲁工业大学 基于区块链的密文关键字搜索方法、系统、装置及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018125A (zh) * 2007-03-02 2007-08-15 中兴通讯股份有限公司 一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法
US20100132036A1 (en) * 2008-11-21 2010-05-27 At&T Intellectual Property I, L.P. Verification of outsourced data streams
CN102202046A (zh) * 2011-03-15 2011-09-28 北京邮电大学 面向网络化操作系统的可信任虚拟运行平台
CN102821160A (zh) * 2012-08-24 2012-12-12 上海和辰信息技术有限公司 一种云计算网络环境下面向松散云节点多层次数据保护的系统与方法
CN102938767A (zh) * 2012-11-13 2013-02-20 西安电子科技大学 基于云数据外包系统的高效可验证的模糊关键词搜索方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018125A (zh) * 2007-03-02 2007-08-15 中兴通讯股份有限公司 一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法
US20100132036A1 (en) * 2008-11-21 2010-05-27 At&T Intellectual Property I, L.P. Verification of outsourced data streams
CN102202046A (zh) * 2011-03-15 2011-09-28 北京邮电大学 面向网络化操作系统的可信任虚拟运行平台
CN102821160A (zh) * 2012-08-24 2012-12-12 上海和辰信息技术有限公司 一种云计算网络环境下面向松散云节点多层次数据保护的系统与方法
CN102938767A (zh) * 2012-11-13 2013-02-20 西安电子科技大学 基于云数据外包系统的高效可验证的模糊关键词搜索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘媛等: "关于外包数据库完整性验证的研究", 《计算机技术与发展》, vol. 20, no. 5, 31 May 2010 (2010-05-31) *
温涛等: "追加型数据库外包中的查询结果验证", 《计算机研究与发展》, 20 December 2012 (2012-12-20) *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102714A (zh) * 2014-07-16 2014-10-15 上海交通大学 基于累加器和布隆过滤器的外包数据查询验证方法及系统
CN105812141A (zh) * 2016-03-07 2016-07-27 东北大学 一种面向外包加密数据的可验证交集运算方法及系统
CN105812141B (zh) * 2016-03-07 2018-11-27 东北大学 一种面向外包加密数据的可验证交集运算方法及系统
CN110309375A (zh) * 2019-06-29 2019-10-08 大众问问(北京)信息科技有限公司 信息提示方法、装置及车载终端设备
CN110309375B (zh) * 2019-06-29 2021-07-20 大众问问(北京)信息科技有限公司 信息提示方法、装置及车载终端设备
CN112417006A (zh) * 2020-11-30 2021-02-26 齐鲁工业大学 基于区块链的密文关键字搜索方法、系统、装置及介质

Also Published As

Publication number Publication date
CN103309973B (zh) 2016-08-10

Similar Documents

Publication Publication Date Title
Xu et al. vchain: Enabling verifiable boolean range queries over blockchain databases
CN109829326B (zh) 基于区块链的跨域认证与公平审计去重云存储系统
WO2020186788A1 (zh) 基于区块链的证书验证方法及装置、存储介质、电子装置
CN104102714A (zh) 基于累加器和布隆过滤器的外包数据查询验证方法及系统
Fu et al. Smart cloud search services: verifiable keyword-based semantic search over encrypted cloud data
Hu et al. Spatial query integrity with voronoi neighbors
Venkatesh et al. Improving public auditability, data possession in data storage security for cloud computing
Li et al. Integrity-verifiable conjunctive keyword searchable encryption in cloud storage
Rahman et al. A blockchain-enabled privacy-preserving verifiable query framework for securing cloud-assisted industrial internet of things systems
Azraoui et al. Publicly verifiable conjunctive keyword search in outsourced databases
CN103095733A (zh) 一种面向云存储的关键字密文检索方法
CN106991148B (zh) 一种支持全更新操作的数据库验证系统及方法
CN109088719B (zh) 外包数据库多关键词可验证密文搜索方法、数据处理系统
CN102045356A (zh) 一种面向云存储的可信存储验证方法和系统
Xu et al. EPBC: Efficient public blockchain client for lightweight users
Goodrich et al. Efficient verification of web-content searching through authenticated web crawlers
CN103309973A (zh) 可验证外包数据查询的方法及系统
CN107451281A (zh) 基于ads的外包数据库sql查询完整性验证系统及方法
CN104182418B (zh) 节点元数据获取方法与装置
CN111459935B (zh) 物联网数据存储方法、存储系统、查询方法及存储介质
Yuan et al. Flexible and publicly verifiable aggregation query for outsourced databases in cloud
Mykletun et al. Providing authentication and integrity in outsourced databases using merkle hash trees
CN116760840A (zh) 基于区块链的高效数据共享方法
US20220020010A1 (en) Decentralized electronic contract attestation platform
CN112115101B (zh) 一种云存储中数据的确定性删除方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant