CN109088719A - 外包数据库多关键词可验证密文搜索方法、数据处理系统 - Google Patents
外包数据库多关键词可验证密文搜索方法、数据处理系统 Download PDFInfo
- Publication number
- CN109088719A CN109088719A CN201810920712.3A CN201810920712A CN109088719A CN 109088719 A CN109088719 A CN 109088719A CN 201810920712 A CN201810920712 A CN 201810920712A CN 109088719 A CN109088719 A CN 109088719A
- Authority
- CN
- China
- Prior art keywords
- data
- verify
- node
- key
- user
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于数字信息传输技术领域,公开了一种外包数据库多关键词可验证密文搜索方法、数据处理系统,所述外包数据库多关键词可验证密文搜索方法包括:基于广播加密的密钥分发和使用者权限动态管理;利用Merkle树和双线性映射累加器构造的搜索结果完整性证明以及利用Vector Commit方法构造的数据更新证明。本发明在传统Merkle散列树基础上进行改造,是CSP可以提供多关键词的搜索结果完备性证明,同时利用Vector Commi密码学方法设计数据库更新操作;对任意搜索请求,用户均能验证云端是否正确执行,并保证了返回结果的准确性、新鲜性与完备性;对任意不存在关键词,CSP均能产生可验证的证明。
Description
技术领域
本发明属于数字信息传输技术领域,尤其涉及一种外包数据库多关键词可验证密文搜索方法、数据处理系统。
背景技术
目前,业内常用的现有技术是这样的:云存储及数据外包服务可以节约企业大量硬件及人力成本。提出了数据库即服务的思想(database as a service,DAS)。然而,由于数据存储于云服务提供商(Cloud Service Provider,CSP)的服务器中,用户无法直接对数据进行控制,需要新的安全技术保障数据的机密性、完整性等安全特性。为保证外包数据的机密性,需要对所上传数据进行加密。然而,对于需要频繁使用跟新的应用如数据库服务,常用的加密方法难以检索和操作密文,故设计新的高效密文检索和更新方法是当前研究的热点。可搜索加密(Searchable Encryption,SE)是提高云端数据可操作性的核心技术。然而该方法搜索效率随文件长度线性增加。为提高效率。引入Bloom过滤器这一技术,其实质是利用概率而非确定的方法对内容进行检索,其存在一些误报的可能。利用构建索引的方法提出了SSE-1与SSE-2两个方案分别用于非自适应和自适应攻击模型,同时对对称加密搜索方法提出了规范化的安全目标。然而该方案难以动态更新数据。2004年提出了公钥可加密方案,其更适应于构建目前云存储环境下的数据共享方案。然而目前已知的大部分方案均基于双线性对构造,其效率通常远低于对称加密方案。以上方案均支持单关键词搜索。若需要对多个关键词进行搜索,即进行更加精准地搜索,以上方法均难以支持。传统方法需要下载大量数据在本地进行二次搜索,缩小范围。为防止CSP隐瞒存在关键词以拒绝查询请求。采用bloom过滤器及Merkle树共同构建证明。然而bloom过滤器难以删除项目,从而使得文件难以动态更新。上述已存在技术方法大多只关注数据的机密性而忽略了搜索结果的完整性。即假设了云端CSP为诚实但好奇的服务器模型。但云端并非完全可信,可能隐瞒数据或不执行用户操作。已存技术大多只关注数据的机密性而忽略了搜索结果的完整性。过往解决方案通常难以动态高效更新及支持多用户操作。同时难以对多关键词搜索结果进行验证。其难以灵活执行搜索请求。
综上所述,现有技术存在的问题是:
(1)现有方案难以对密文进行多关键词查找验证。
(2)现存方案难以动态高效更新数据。
(3)难以支持多用户操作。
解决上述技术问题的难度和意义:本发明的难点在于如何构造多关键词密文搜索结果验证方案。本发明采用广播加密技术设计密钥分发及访问控制方案,以支持多用户的密文搜索服务。本发明在传统Merkle散列树基础上进行改造,是CSP可以提供多关键词的搜索结果完备性证明,同时利用Vector Commit密码学方法设计数据库更新操作。对任意搜索请求,用户均能验证云端是否正确执行,并保证了返回结果的准确性、新鲜性与完备性。对任意不存在关键词,CSP均能产生可验证的证明。
为此,本发明修改了传统Merkle散列树结构并引入多种密码学方法,同时设计了广播加密方案以进行密钥管理以支持多用户操作。本发明意义在实现了一种新的外包数据库多关键词可验证密文搜索方案。本发明支持数据动态更新,可实现更细粒度的数据搜索即按属性返回搜索结果。其大幅降低了数据的传输成本。与已有方案比较,本发明在存储需求与传输带宽上均有优势。
发明内容
针对现有技术存在的问题,本发明提供了一种外包数据库多关键词可验证密文搜索方法、数据处理系统。
本发明是这样实现的,一种外包数据库多关键词可验证密文搜索方法,所述外包数据库多关键词可验证密文搜索方法包括:基于广播加密进行密钥分发和使用者权限动态管理;针对传统Merkle树进行结构改进,并在其中构造双线性映射累加器,把多关键词搜索结果映射为多个集合,利用交集与子集条件验证多关键词搜索结果完整性。利用VectorCommit方法构造高效的数据库更新方案及证明。
进一步,所述外包数据库多关键词可验证密文搜索方法包括以下步骤:
(1)系统建立1λ
输入安全参数λ,产生双线性群G,于其中随机选择生成元g∈G。随机选择对于系统中所有存在n个成员I={1,…,n},i=1,2,…n,n+2,…2n,计算选取SHA-1作为hash函数h(·);对于任意成员i∈I,计算作为自身私钥;计算作为群签名密钥;将K∈G映射为选取对称加密算法Enc如AES,随机选定密钥其中k用于加密数据,加密k得到kenc=Enc(KZ,k),加密s得senc=Enc(KZ,s);计算v=gγ∈G,其中为拥有权限成员集合,j∈S为授权用户,令PKsign=(g,g1,…gn,gn+2,…g2n,v)∈G2n+1,公开{H,kenc,senc,Hdr,PKsign};
(2)数据外包
随机选择计算pk=gsk,将K映射为计算rk=sk/Kz。对于待外包数据库中q个属性(A1,A2,…Aq),选择对应q个随机数对任意数据(ai1…,aiq),加密mi=Enc(k,ai)得到密文(mi1…,miq),计算所有Ci作为叶节点构建Merkle树Ctree,使用自身私钥对根节点Croot进行签名,计算pp=(g,{hi}i∈[q],{hi,j}i,j∈[q]),对数据库中所有不重复元素ar,通过其所在所有共l行标号得及生成作为叶子结点,并生成相应NMT树,令b为关键词对应集合的上界,计算辅助信息对根节点NMTroot进行签名;上传数据及{pp,B,Ctree,NMT}至云端,公开{Croot,NMTroot,{hi}i∈[q]};
(3)数据搜索;
(4)数据更新;
(5)用户权限管理。
进一步,所述数据搜索具体包括:
(1)搜索请求提交
有权限用户i通过Hdr=(C0,C1)及自身持有私钥di计算:
为群密钥,得出Kz,解密k=Dec(KZ,kenc),s=Dec(KZ,senc);
选取l个搜索关键词(q1,q2…ql),生成相应密文(m1…,ml),选取(Ax1,Ax2,…Axt)为所需t个属性;生成请求(τ,σ)提交,τ=(search,(m1…,ml),(Ax1,Ax2,…Axt)),其中h为选定的hash函数;
(2)搜索结果生成:
云端检查:
若成立,则对关键字(m1…,ml)进行搜索,并返回结果;若关键词mi不存在,则返回NMT中相应结点Ni、Ni.l、Ni.r及中所有结点中hc值;若所有关键词均存在,对于所有关键词mi∈(m1,m2…ml),返回NMT中所有mi对应的Ni,计算所有mi相应的返回搜索结果集合I中包含的ρ个条目(m1x1…,m1xt)…,(mρx1…,mρxt)、相应的C1…,Cρ及其对应以及所有mi对应的Λi;其中由云端{hi,j}i,j∈[q]及同一行中其他元素mj求出;
(3)搜索结果验证
若有关键词mxi不存在,验证返回及是否符合;若通过验证,接受结果;
若所有关键词(mx1,mx2…mxl)均存在,验证所有mxi对应的是否正确,即无论返回集合I中有无元素,均验证:
若I中不包含元素,则接受结果;否则,对返回ρ个条目(m1x1…,m1xt)…,(mρx1…,mρxt)及相应C1…,Cρ,验证所有:
若均成立,接受结果,解密ai=Dec(k,mi)得到明文;否则拒绝。
进一步,所述数据更新具体包括:
(1)数据添加
用户需要添加数据(a1…,aq),使用密钥k加密得到(m1…,mq),同时生成标号r;计算生成请求(τ,σ);其中τ=(add,(m1…,mq),Cr′),
云端验证用户身份,成立,计算Cr=(Cr′)rk,将Cr插入Ctree,更新Croot,生成相应证明路径对所有提交数据(m1…,mq),若mi存在于NMTtree中,更新结点同时更新其到根节点路径上包括NMTroot所有结点的hc值;若mi不存在于NMTtree中,生成新节点其中acc(mi)=gs+r=gsgr;添加入NMTtree中,更新路径;每一次更新mi计算相应NMTrooti,更新前搜索结果Ni′,或N′i、N′i.l、N′i.r、及更新后搜索结果Ni;同时返回Cr,Croot,以及相应路径
User接受结果,验证:
对每一步更新,若存在元素mi,检查更新前后:
若之前不存在元素mi,检查N′i、N′i.l、N′i.r是否正确,选择N′i.l、N′i.r中与新加入Ni共同前缀更长者作为Ni兄弟结点,假设其为N′i.l,即把N′i.l,N′i.r中同hc加入作为第一二项,检查更新前后是否成立;以上均成立,接受更新证明;最终NMTrootq作为NMT的新根节点NMTroot;签名公开NMTroot,Croot;
(2)数据删除
生成请求(τ,σ)提交,其中τ=(delete,(mt1…,mtl));
云端验证用户身份,若合格,搜索(mt1…,mtl)对应数据,若关键词不存在或结果为空集,返回搜索结果及证明。若存在结果,更新Ctree;对于元素mi,更新acc′(mi)=acc(mi)-(s+r),若acc′(mi)=g,删除每一次更新mi计算相应与数据添加类似,返回每一步更新证明;
与数据添加类似,User验证返回搜索结果及每一步更新证明是否正确。签名公开NMTroot,Croot;
(3)数据修改
数据修改即搜索找到特定信息,之后修改该数据值即可;修改数据mi为mi′需修改对应结点acc(mi),acc(m′i)值及对应Cr值;与之前类似,返回每步证明及验证,签名即可。
进一步,所述用户权限管理具体包括:
(1)用户添加,授予成员k操作权限,令Hdr=(C0,C1)中C1′=C1·(v·gn+1-k)=(v·Πj∈S+kgn+1-j),新群公钥更新为Hdr′=(C0,C′1)即可;
(2)用户移除,移除用户k需更新K该值,选取t′为随机数
新作为新密钥;同时计算rk′=sk/K′Z上传云端。
进一步,所述改进的Merkle树中包含两类结点NL,NP,其中NL为叶结点,NP为非叶子结点;h(·)为任意单向抗碰撞散列函数如SHA-1,"||"为连接符号,算法BH(·)为获取前缀操作,hp1=00010000,hp2=00100100,则BH(hp1,hp2)=00;任意叶子结点Nl∈NL为是包含三个元素的元组;其中为元素q的散列值;acc(q)为元素q对应双线性累加值,任意非叶子Np∈NP,其必有左子结点Np.l及右子结点Np.r,相应为其对应子节点中与的最长公共前缀;
本发明的另一目的在于提供一种应用所述外包数据库多关键词可验证密文搜索方法的数据处理系统。
综上所述,本发明的优点及积极效果为:利用广播加密分发密钥的方式实现了用户的权限动态管理。同时,本发明对常用的数据完整检验数据结构Merkle树进行改进,通过引入双线性累加器实现了多关键词密文搜索的完备性验证。构造验证方法使CSP可以提供多关键词的搜索结果完备性证明,同时利用Vector Commi密码学方法设计数据库更新操作;对任意搜索请求,用户均能验证云端是否正确执行,并保证了返回结果的准确性、新鲜性与完备性;对任意不存在关键词,CSP均能产生可验证的证明。利用广播加密技术设计密钥分发及访问控制方案,以支持多用户的密文搜索服务。同时,本发明支持数据动态更新,可实现更细粒度的数据搜索即按属性返回搜索结果。综上,本发明支持多关键词搜索结果验证,大幅提高了外包数据库的安全性和搜索灵活性,同时大幅降低了数据的传输成本。与已有方案比较,本发明在存储需求与传输带宽上均有优势。其与对比方案效率比较数据可见附图5,图6。
附图说明
图1是本发明实施例提供的外包数据库多关键词可验证密文搜索方法流程图。
图2是本发明实施例提供的构造NMT树示意图。
图3是本发明实施例提供的NMT树中添加结点示意图。
图4是本发明实施例提供的NMT树中移除结点示意图。
图5是本发明实施例提供的存储容量比较示意图。
图6是本发明实施例提供的证明数据比较示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明采用广播加密技术设计密钥分发及访问控制方案,以支持多用户的密文搜索服务。在传统Merkle散列树基础上进行改造,是CSP可以提供多关键词的搜索结果完备性证明,同时利用Vector Commit密码学方法设计数据库更新操作;对任意搜索请求,用户均能验证云端是否正确执行,并保证了返回结果的准确性、新鲜性与完备性;对任意不存在关键词,CSP均能产生可验证的证明。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的外包数据库多关键词可验证密文搜索方法包括以下步骤:
S101:基于广播加密的密钥分发和使用者权限动态管理;
S102:利用Merkle树和双线性映射累加器构造的搜索结果完整性证明以及利用Vector Commit方法构造的数据更新证明。
下面结合附图对本发明的应用原理作进一步的描述。
1预备知识
1.1双线性映射累加器
双线性映射累加器可以有效证明集合中元素的从属关系。设G,GT均为素数阶p的乘法循环群,生成元为g。定义双线性运算e:G×G→GT满足如下性质:1.双线性。e(pa,qb)=e(p,q)ab其中2.非退化性。e(g,g)≠1其为GT的生成元。3.可计算性。对于任意p,q∈G,e(p,q)可在多项式时间内算出。
设L为含n个元素集合随机选择则可以看做关于s的多项式,计算累加器值:
对于m个集合{L1,L2,…Lm},若其构成交集为I=L1∩L2∩…∩Lm,则I需要满足(1)子集条件(I∈L1)∧(I∈L2)∧…∧(I∈Lm),即交集为所有集合子集;
(2)完备性条件即除去交集,所有集合不存在其他共同元素。令根据多项式互素条件,一定存在多项式Pi(s)使下式成立:
其中Pi(s)可以通过扩展欧几里得算法求出,计算:
则之前两个性质的判定可以转化为以下两条件:
添加an+1元素至L即令删除元素ai即令修改元素ai为an+1即令
若q为多项式上界,在未获得s值的情况下,可展开多项式,通过求出结果。方法安全性依据于q阶强Diffie-Hellman假设(q-SBDH)。
1.2Vector Commit
Dario等提出的Vector Commit结构可以有效验证一个有序集合(m1,m2,…mq)中元素位置,同时可利用更少的验证信息保证数据完整性。其构造方法为选取双线性运算e:G×G→GT,生成元g。对于集合(m1,m2,…mq),随机选择q个随机数
计算作为VC(Vector Commit)。对于任意元素mi,可在未获得zi时通过{hi,j}i,j∈[q]计算出验证值:
验证mi则根据C及相应的Λi验证:
更新mi为mi′即令若Λi并非即时生成,与数据一同上传,则需对所有i≠j的Λj进行更新,
2改进的Merkle树
在云数据库环境中,当用户所提交查询关键字不存在时,云端往往难以给出证明。因而,云端可以隐瞒查询结果,欺骗用户。本发明基于传统Merkle散列树,构建了一种新的数据完整性检验结构NMT树,以生成数据持有性证明。
2.1初始构造
树中包含两类结点NL,NP,其中NL为叶结点,NP为非叶子结点。设h(·)为任意单向抗碰撞散列函数如SHA-1,"||"为连接符号,算法BH(·)为获取前缀操作,设hp1=00010000,hp2=00100100,则BH(hp1,hp2)=00。任意叶子结点Nl∈NL为是包含三个元素的元组。其中为元素q的散列值。acc(q)为元素q对应双线性累加值,任意非叶子Np∈NP,其必有左子结点Np.l及右子结点Np.r,相应为其对应子节点中与的最长公共前缀。
如图2所示,(x1,x2,x3,x4)为四个叶子结点中数据,N7为根节点的散列值。根据任意结点Ni与其相应的完整性检验路径(IntegrityAuthentication Path,IAP)集合即该节点到根节点路径上所有结点的兄弟结点散列值(sibling node)可以计算出根节点值root。若需鉴定N1,通过xi与集合可以计算出root值。定义算法为推导根节点算法,用以验证数据完整性。例如:
2.2结点查找与验证
若所求关键字qi存在,通过计算hp=h(qi),找到与之相等即可找到对应叶子节点Ni∈NL,同时返回路径集合中所有结点的hc值。若所求关键字qi不存在,则计算hp=h(qi),找到与hp最能匹配结点Ni∈NP,其中为hp前缀且所有为hp前缀结点中最长。同时返回路径集合中所有结点的hc值及Ni两个子节点Ni.l,Ni.r。
若找到关键词对应结点Ni,比较及若成立,利用及Ni中hc推导根节点root值,即验证:
若未能找到关键词对应结点,比较是否为hp=h(qi)前缀及均不为hp前缀,即验证式(10)及:
2.2结点修改
2.2.1结点添加
如图3所示,结点Na添加进树中,则寻找最能匹配结点Nb作为兄弟结点,共同生成父节点Np,为其共同前缀同时更新Na到root中所有结点Ni中hc的值。
2.2.2结点移除
如图3所示,移除结点Na,则同时删除父节点Np,其兄弟结点Nb继承原父节点位置,同时更新Nb到root中所有结点Ni中hc的值。
2.2.3结点修改
修改结点Na,即修改其中acc(q)的值,同时更新Na到root中所有结点Ni中hc的值。
3提出方案
本发明利用提出的NMT树,设计一种能对数据存在与否做出证明的数据完整性检验方案。本发明包括基于广播加密的密钥分发和使用者权限动态管理,利用Merkle树和双线性映射累加器构造的搜索结果完整性证明以及利用Vector Commit方法构造的数据更新证明。算法包括以下阶段:
(1)系统建立(1λ)
输入安全参数λ,产生双线性群G,于其中随机选择生成元g∈G。随机选择对于系统中所有存在n个成员I={1,…,n},i=1,2,…n,n+2,…2n,计算选取SHA-1作为hash函数h(·)。对于任意成员i∈I,计算作为自身私钥。计算作为群签名密钥。将K∈G映射为选取对称加密算法Enc如AES,随机选定密钥其中k用于加密数据,加密k得到kenc=Enc(KZ,k),加密s得senc=Enc(KZ,s)。
计算v=gγ∈G,其中为拥有权限成员集合,j∈S为授权用户。令PKsign=(g,g1,…gn,gn+2,…g2n,v)∈G2n+1。公开{H,kenc,senc,Hdr,PKsign}。
(2)数据外包
随机选择计算pk=gsk。将K映射为计算rk=sk/Kz。对于待外包数据库中q个属性(A1,A2,…Aq),选择对应q个随机数对任意数据(ai1…,aiq),加密mi=Enc(k,ai)得到密文(mi1…,miq),计算以所有Ci作为叶节点构建Merkle树Ctree,使用自身私钥对根节点Croot进行签名。计算pp=(g,{hi}i∈[q],{hi,j}i,j∈[q])。对数据库中所有不重复元素ar,通过其所在所有共l行标号得及生成作为叶子结点,并生成相应NMT树。令b为关键词对应集合的上界,计算辅助信息对根节点NMTroot进行签名。上传数据及{pp,B,Ctree,NMT}至云端。公开{Croot,NMTroot,{hi}i∈[q]}。
(3)数据搜索
1.搜索请求提交
有权限用户i通过Hdr=(C0,C1)及自身持有私钥di计算:
为群密钥,得出Kz。解密k=Dec(KZ,kenc),s=Dec(KZ,senc)。
选取l个搜索关键词(q1,q2…ql),生成相应密文(m1…,ml)。选取(Ax1,Ax2,…Axt)为所需t个属性。生成请求(τ,σ)提交,τ=(search,(m1…,ml),(Ax1,Ax2,…Axt)),其中h为选定的hash函数。
2.搜索结果生成
云端检查:
e(σrk,g)=e(h(τ),pk) (15)
若成立,则对关键字(m1…,ml)进行搜索,并返回结果。若关键词mi不存在,则返回NMT中相应结点Ni、Ni.l、Ni.r及中所有结点中hc值。若所有关键词均存在,对于所有关键词mi∈(m1,m2…ml),返回NMT中所有mi对应的Ni,根据公式(3)(4)计算所有mi相应的返回搜索结果集合I中包含的ρ个条目(m1x1…,m1xt)…,(mρx1…,mρxt)、相应的C1…,Cρ及其对应以及所有mi对应的Λi。其中由云端{hi,j}i,j∈[q]及同一行中其他元素mj求出。
3.搜索结果验证
若有关键词mxi不存在,根据式(10)(11)(12)(13)验证返回 及是否符合。若通过验证,接受结果。
若所有关键词(mx1,mx2…mxl)均存在,验证所有mxi对应的是否正确,即无论返回集合I中有无元素,均验证:
若I中不包含元素,则接受结果。否则,对返回ρ个条目(m1x1…,m1xt)…,(mρx1…,mρxt)及相应C1…,Cρ,验证所有:
若均成立,接受结果,解密ai=Dec(k,mi)得到明文。否则拒绝。
(4)数据更新
1.数据添加
用户需要添加数据(a1…,aq),使用密钥k加密得到(m1…,mq),同时生成标号r。计算生成请求(τ,σ)。其中τ=(add,(m1…,mq),Cr′),
云端验证用户身份。若式(15)成立,计算Cr=(Cr′)rk,将Cr插入Ctree,更新Croot,生成相应证明路径对所有提交数据(m1…,mq),若mi存在于NMTtree中,更新结点中acc′(mi)=acc(mi)s+r(虽然云端并不拥有s值,利用多项式展开及云端存储可以计算得出)同时更新其到根节点路径上包括NMTroot所有结点的hc值。若mi不存在于NMTtree中,生成新节点其中acc(mi)=gs+r=gsgr。添加入NMTtree中,更新路径。每一次更新mi计算相应NMTrooti,更新前搜索结果Ni′,或N′i、N′i.l、N′i.r、及更新后搜索结果Ni。同时返回Cr,Croot,以及相应路径
User接受结果,验证:
对每一步更新,若存在元素mi,检查更新前后:
若之前不存在元素mi,根据式(10)(11)(12)(13)检查N′i、N′i.l、N′i.r是否正确,选择N′i.l、N′i.r中与新加入Ni共同前缀更长者作为Ni兄弟结点,假设其为N′i.l,即把N′i.l,N′i.r中同hc加入作为第一二项,检查更新前后(22)(23)是否成立。以上均成立,接受更新证明。最终NMTrootq作为NMT的新根节点NMTroot。签名公开NMTroot,Croot。
2.数据删除
生成请求(τ,σ)提交,其中τ=(delete,(mt1…,mtl))。
云端验证用户身份,若合格,搜索(mt1…,mtl)对应数据。若关键词不存在或结果为空集,返回搜索结果及证明。若存在结果,更新Ctree。对于元素mi,更新acc′(mi)=acc(mi)-(s+r),若acc′(mi)=g,删除每一次更新mi计算相应与数据添加类似,返回每一步更新证明。
与数据添加类似,User验证返回搜索结果及每一步更新证明是否正确。签名公开NMTroot,Croot。
3.数据修改
数据修改即搜索找到特定信息,之后修改该数据值即可。修改数据mi为mi′需修改对应结点acc(mi),acc(m′i)值及对应Cr值。与之前类似,返回每步证明及验证,签名即可。
(5)用户权限管理
1.用户添加
授予成员k操作权限,令Hdr=(C0,C1)中C1′=C1·(v·gn+1-k)=(v·Πj∈S+kgn+1-j),新群公钥更新为Hdr′=(C0,C′1)即可。
2.用户移除
移除用户k需更新K该值。选取t′为随机数
新作为新密钥。同时计算rk′=sk/K′Z上传云端。
下面结合性能分析对本发明的应用效果做详细的描述。
1方案有效性与性能分析
1.1方案有效性分析
1.机密性
数据库内容使用密钥k即对称加密算法AES进行加密。密钥使用群密钥Kz进行加密分发。故而未获取权限用户及云端无法窥探数据库内容。
2.搜索结果完备性
云端可能返回不完备搜索结果或以关键词不存在为由返回空集。本发明中,若云端告知查询关键词不存在,必定返回与该关键词散列值最相近结点Np,作为其前缀结点。同时返回该前缀结点两子节点Np.lNp.r以证明其Np所有子节点均不为所求。若该关键词本身存在,则返回前缀结点两子节点Np.lNp.r必定不能通过(10)(11)(12)(13)验证。多个关键词搜索,即验证条件(16)(17)判定返回集合完备性,其中(16)可看作子集条件,即所返回集合满足其中每一个关键词搜索。式(17)可看作完备交集条件,即不存在任意未返回元素属于所求全部关键词交集。式(9)保证了返回结果正确。常见数据库密文搜索方案通常返回所求整行数据,无法准确定位所需元素。本发明利用Commit Vector方法构造密文验证方案,可以对选定属性进行搜索,大大节约了所需带宽,提高搜索灵活性。
3.可验证更新
数据库更新主要有增加、删除、修改等操作。本发明相当于把每个更新命令分解为系列原子步骤,每一步均生成中间根节点数据。所有结点及证明得出相应其共同构造一个更新链条以证明数据及时更新。从而减少了用户与CSP交互次数。
1.2方案有效性分析
本发明分别对证明构造阶段及结果验证阶段的计算开销和存储开销进行分析,通过实验仿真测试方案在实际中的具体表现。在实验中,整个方案采用java语言实现。利用jPBC库实现群相关运算,其中群阶为160位,基本域阶为256位。使用SHA3-256作为散列函数。所有数据均在windows10(CPU 2.30GHz,RAM 8G)下测得。
本发明主要与文献[Zhu J,Li Q,Wang C,et al.Enabling Generic,Verifiable,and Secure Data Search in Cloud Services[J].IEEE Transactions on Parallel&Distributed Systems,2018:1-1]GSSE方案所采用的GSSE方案实现功能进行比较,如表1所示。可知本发明相比文献[[Zhu J,Li Q,Wang C,et al.Enabling Generic,Verifiable,and Secure Data Search in Cloud Services[J].IEEE Transactions on Parallel&Distributed Systems,2018:1-1]GSSE方案主要实现了多关键词搜索完整性验证这一功能,极大提高了方案可用性。
表1与其他方案比较
由于外包数据核心需求是节省用户存储空间。而CSP的主要成本在于存储开销和带宽开销。故本发明与GSSE方案主要比较数据证明即附加信息存储开销与单关键词证明大小即传输成本。如图5所示,本发明与GSSE存储开销均与关键词数量成正比,由于GSSE方案中引入MPT树数据结构,其有分为三类结点,造成了部分冗余开销,故本发明在任意数量上存储开销均优于该方案。由于GSSE只实现了单关键词搜索的完整性验证方案,故本发明也只比较单关键词验证方案效率。实际上证明数据大小只与所构造树深度相关,由图6可看出,由于GSSE使用MPT树,其在结点密集时需要大量辅助兄弟节点共同计算上层结点,故在深度较低时每一级需要大量数据传输。相较而言,本发明随结点层数增加线性增加,故本发明相较更加节省带宽。
本发明提出一种新的外包数据库多关键词可验证密文搜索方案。其中利用广播加密分发密钥的方式实现了用户的权限动态管理。同时,本发明对常用的数据完整检验数据结构Merkle树进行改进,通过引入双线性累加器实现了多关键词密文搜索的完备性验证。同时,本发明支持数据动态更新,可实现更细粒度的数据搜索即按属性返回搜索结果。其大幅降低了数据的传输成本。与已有方案比较,本发明在存储需求与传输带宽上均有优势。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种外包数据库多关键词可验证密文搜索方法,其特征在于,所述外包数据库多关键词可验证密文搜索方法包括:基于广播加密的密钥分发和使用者权限动态管理;利用Merkle树和双线性映射累加器构造的搜索结果完整性证明以及利用Vector Commit方法构造的数据更新证明。
2.如权利要求1所述的外包数据库多关键词可验证密文搜索方法,其特征在于,所述外包数据库多关键词可验证密文搜索方法包括以下步骤:
(1)系统建立1λ
输入安全参数λ,产生双线性群G,于其中随机选择生成元g∈G;
随机选择对于系统中所有存在n个成员I={1,…,n},i=1,2,…n,n+2,…2n,计算选取SHA-1作为hash函数h(·);对于任意成员i∈I,计算作为自身私钥;计算作为群签名密钥;将K∈G映射为选取对称加密算法Enc如AES,随机选定密钥其中k用于加密数据,加密k得到kenc=Enc(KZ,k),加密s得senc=Enc(KZ,s);计算v=gγ∈G,其中为拥有权限成员集合,j∈S为授权用户,令PKsign=(g,g1,…gn,gn+2,…g2n,v)∈G2n+1,公开{H,kenc,senc,Hdr,PKsign};
(2)数据外包
随机选择计算pk=gsk,将K映射为计算rk=sk/Kz;对于待外包数据库中q个属性(A1,A2,…Aq),选择对应q个随机数对任意数据(ai1…,aiq),加密mi=Enc(k,ai)得到密文(mi1…,miq),计算所有Ci作为叶节点构建Merkle树Ctree,使用自身私钥对根节点Croot进行签名,计算pp=(g,{hi}i∈[q],{hi,j}i,j∈[q]),对数据库中所有不重复元素ar,通过其所在所有共l行标号得及生成作为叶子结点,并生成相应NMT树,令b为关键词对应集合的上界,计算辅助信息对根节点NMTroot进行签名;上传数据及{pp,B,Ctree,NMT}至云端,公开{Croot,NMTroot,{hi}i∈[q]};
(3)数据搜索;
(4)数据更新;
(5)用户权限管理。
3.如权利要求2所述的外包数据库多关键词可验证密文搜索方法,其特征在于,所述数据搜索具体包括:
(1)搜索请求提交
有权限用户i通过Hdr=(C0,C1)及自身持有私钥di计算:
为群密钥,得出Kz,解密k=Dec(KZ,kenc),s=Dec(KZ,senc);
选取l个搜索关键词(q1,q2…ql),生成相应密文(m1…,ml),选取(Ax1,Ax2,…Axt)为所需t个属性;生成请求(τ,σ)提交,τ=(search,(m1…,ml),(Ax1,Ax2,…Axt)),其中h为选定的hash函数;
(2)搜索结果生成:
云端检查:
e(σrk,g)=e(h(τ),pk);
若成立,则对关键字(m1…,ml)进行搜索,并返回结果;若关键词mi不存在,则返回NMT中相应结点Ni、Ni.l、Ni.r及中所有结点中hc值;若所有关键词均存在,对于所有关键词mi∈(m1,m2…ml),返回NMT中所有mi对应的Ni,计算所有mi相应的返回搜索结果集合I中包含的ρ个条目(m1x1…,m1xt)…,(mρx1…,mρxt)、相应的C1…,Cρ及其对应以及所有mi对应的Λi;其中由云端{hi,j}i,j∈[q]及同一行中其他元素mj求出;
(3)搜索结果验证
若有关键词mxi不存在,验证返回及是否符合;若通过验证,接受结果;
若所有关键词(mx1,mx2…mxl)均存在,验证所有mxi对应的是否正确,即无论返回集合I中有无元素,均验证:
若I中不包含元素,则接受结果;否则,对返回ρ个条目(m1x1…,m1xt)…,(mρx1…,mρxt)及相应C1…,Cρ,验证所有:
若均成立,接受结果,解密ai=Dec(k,mi)得到明文;否则拒绝。
4.如权利要求2所述的外包数据库多关键词可验证密文搜索方法,其特征在于,所述数据更新具体包括:
(1)数据添加
用户需要添加数据(a1…,aq),使用密钥k加密得到(m1…,mq),同时生成标号r;计算生成请求(τ,σ);其中τ=(add,(m1…,mq),Cr′),云端验证用户身份,成立,计算Cr=(Cr′)rk,将Cr插入Ctree,更新Croot,生成相应证明路径对所有提交数据(m1…,mq),若mi存在于NMTtree中,更新结点中acc′(mi)=acc(mi)s+r同时更新其到根节点路径上包括NMTroot所有结点的hc值;若mi不存在于NMTtree中,生成新节点Nmi={h(mi),acc(mi),h(h(mi)||acc(mi))}∈NL,其中acc(mi)=gs+r=gsgr;添加入NMTtree中,更新路径;每一次更新mi计算相应NMTrooti,更新前搜索结果Ni′,或N′i、N′i.l、N′i.r、及更新后搜索结果Ni;同时返回Cr,Croot,以及相应路径
User接受结果,验证:
对每一步更新,若存在元素mi,检查更新前后:
若之前不存在元素mi,检查N′i、N′i.l、N′i.r是否正确,选择N′i.l、N′i.r中与新加入Ni共同前缀更长者作为Ni兄弟结点,假设其为N′i.l,即把N′i.l,N′i.r中同hc加入作为第一二项,检查更新前后是否成立;以上均成立,接受更新证明;最终NMTrootq作为NMT的新根节点NMTroot;签名公开NMTroot,Croot;
(2)数据删除
生成请求(τ,σ)提交,其中τ=(delete,(mt1…,mtl));
云端验证用户身份,若合格,搜索(mt1…,mtl)对应数据,若关键词不存在或结果为空集,返回搜索结果及证明;若存在结果,更新Ctree;对于元素mi,更新acc′(mi)=acc(mi)-(s+r),若acc′(mi)=g,删除每一次更新mi计算相应与数据添加类似,返回每一步更新证明;
与数据添加类似,User验证返回搜索结果及每一步更新证明是否正确;签名公开NMTroot,Croot;
(3)数据修改
数据修改即搜索找到特定信息,之后修改该数据值即可;修改数据mi为mi′需修改对应结点acc(mi),acc(m′i)值及对应Cr值;与之前类似,返回每步证明及验证,签名即可。
5.如权利要求2所述的外包数据库多关键词可验证密文搜索方法,其特征在于,所述用户权限管理具体包括:
(1)用户添加,授予成员k操作权限,令Hdr=(C0,C1)中C1′=C1·(v·gn+1-k)=(v·Пj∈S+kgn+1-j),新群公钥更新为Hdr′=(C0,C′1)即可;
(2)用户移除,移除用户k需更新K该值,选取t′为随机数
新作为新密钥;同时计算rk′=sk/K′Z上传云端。
6.如权利要求1所述的外包数据库多关键词可验证密文搜索方法,其特征在于,所述改进的Merkle树中包含两类结点NL,NP,其中NL为叶结点,NP为非叶子结点;h(·)为任意单向抗碰撞散列函数如SHA-1,"||"为连接符号,算法BH(·)为获取前缀操作,hp1=00010000,hp2=00100100,则BH(hp1,hp2)=00;任意叶子结点Nl∈NL为是包含三个元素的元组;其中为元素q的散列值;acc(q)为元素q对应双线性累加值,任意非叶子Np∈NP,其必有左子结点Np.l及右子结点Np.r,相应 为其对应子节点中与的最长公共前缀;
7.一种应用权利要求1~6任意一项所述外包数据库多关键词可验证密文搜索方法的数据处理系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810920712.3A CN109088719B (zh) | 2018-08-14 | 2018-08-14 | 外包数据库多关键词可验证密文搜索方法、数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810920712.3A CN109088719B (zh) | 2018-08-14 | 2018-08-14 | 外包数据库多关键词可验证密文搜索方法、数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109088719A true CN109088719A (zh) | 2018-12-25 |
CN109088719B CN109088719B (zh) | 2019-06-04 |
Family
ID=64834633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810920712.3A Active CN109088719B (zh) | 2018-08-14 | 2018-08-14 | 外包数据库多关键词可验证密文搜索方法、数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109088719B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113320A (zh) * | 2019-04-18 | 2019-08-09 | 南京信息工程大学 | 一种基于双线性对累加器的云存储数据完整性验证方法 |
CN111260364A (zh) * | 2020-01-22 | 2020-06-09 | 上海墨珩网络科技有限公司 | 一种基于区块链的可扩展快速支付方法及系统 |
CN111614470A (zh) * | 2020-05-27 | 2020-09-01 | 贵州大学 | 基于改进Merkle-Tree认证方法的可验证多关键字搜索方法 |
CN112560069A (zh) * | 2020-12-28 | 2021-03-26 | 杭州趣链科技有限公司 | 短过滤关键字的加密邮件过滤方法 |
CN112948392A (zh) * | 2021-03-16 | 2021-06-11 | 华东师范大学 | 一种可验证数据结构的建立方法及多维聚合查询方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345526A (zh) * | 2013-07-22 | 2013-10-09 | 武汉大学 | 一种云环境下高效的隐私保护密文查询方法 |
CN104102714A (zh) * | 2014-07-16 | 2014-10-15 | 上海交通大学 | 基于累加器和布隆过滤器的外包数据查询验证方法及系统 |
CN105024802A (zh) * | 2015-07-13 | 2015-11-04 | 西安理工大学 | 云存储中基于双线性对的多用户多关键词可搜索加密方法 |
CN106127075A (zh) * | 2016-06-27 | 2016-11-16 | 湖南大学 | 一种云存储环境下基于隐私保护的可搜索加密方法 |
CN106407822A (zh) * | 2016-09-14 | 2017-02-15 | 华南理工大学 | 一种关键词、多关键词可搜索加密方法和系统 |
CN106815350A (zh) * | 2017-01-19 | 2017-06-09 | 安徽大学 | 一种云环境中动态的密文多关键词模糊搜索方法 |
CN107220343A (zh) * | 2017-05-26 | 2017-09-29 | 福州大学 | 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法 |
CN108055122A (zh) * | 2017-11-17 | 2018-05-18 | 西安电子科技大学 | 可验证的防内存泄露动态可搜索加密方法、云服务器 |
-
2018
- 2018-08-14 CN CN201810920712.3A patent/CN109088719B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345526A (zh) * | 2013-07-22 | 2013-10-09 | 武汉大学 | 一种云环境下高效的隐私保护密文查询方法 |
CN104102714A (zh) * | 2014-07-16 | 2014-10-15 | 上海交通大学 | 基于累加器和布隆过滤器的外包数据查询验证方法及系统 |
CN105024802A (zh) * | 2015-07-13 | 2015-11-04 | 西安理工大学 | 云存储中基于双线性对的多用户多关键词可搜索加密方法 |
CN106127075A (zh) * | 2016-06-27 | 2016-11-16 | 湖南大学 | 一种云存储环境下基于隐私保护的可搜索加密方法 |
CN106407822A (zh) * | 2016-09-14 | 2017-02-15 | 华南理工大学 | 一种关键词、多关键词可搜索加密方法和系统 |
CN106815350A (zh) * | 2017-01-19 | 2017-06-09 | 安徽大学 | 一种云环境中动态的密文多关键词模糊搜索方法 |
CN107220343A (zh) * | 2017-05-26 | 2017-09-29 | 福州大学 | 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法 |
CN108055122A (zh) * | 2017-11-17 | 2018-05-18 | 西安电子科技大学 | 可验证的防内存泄露动态可搜索加密方法、云服务器 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113320A (zh) * | 2019-04-18 | 2019-08-09 | 南京信息工程大学 | 一种基于双线性对累加器的云存储数据完整性验证方法 |
CN110113320B (zh) * | 2019-04-18 | 2021-11-16 | 南京信息工程大学 | 一种基于双线性对累加器的云存储数据完整性验证方法 |
CN111260364A (zh) * | 2020-01-22 | 2020-06-09 | 上海墨珩网络科技有限公司 | 一种基于区块链的可扩展快速支付方法及系统 |
CN111260364B (zh) * | 2020-01-22 | 2023-10-20 | 上海墨珩网络科技有限公司 | 一种基于区块链的可扩展快速支付方法及系统 |
CN111614470A (zh) * | 2020-05-27 | 2020-09-01 | 贵州大学 | 基于改进Merkle-Tree认证方法的可验证多关键字搜索方法 |
CN112560069A (zh) * | 2020-12-28 | 2021-03-26 | 杭州趣链科技有限公司 | 短过滤关键字的加密邮件过滤方法 |
CN112560069B (zh) * | 2020-12-28 | 2023-02-21 | 杭州趣链科技有限公司 | 短过滤关键字的加密邮件过滤方法 |
CN112948392A (zh) * | 2021-03-16 | 2021-06-11 | 华东师范大学 | 一种可验证数据结构的建立方法及多维聚合查询方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109088719B (zh) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109088719B (zh) | 外包数据库多关键词可验证密文搜索方法、数据处理系统 | |
Ge et al. | Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification | |
Chen et al. | An efficient privacy-preserving ranked keyword search method | |
Jarecki et al. | Outsourced symmetric private information retrieval | |
Li et al. | A searchable symmetric encryption scheme using blockchain | |
CN108055122B (zh) | 可验证的防内存泄露动态可搜索加密方法、云服务器 | |
CN102938767B (zh) | 基于云数据外包系统的高效可验证的模糊关键词搜索方法 | |
CN108039943B (zh) | 一种可验证的加密搜索方法 | |
CN103607405B (zh) | 一种面向云存储的密文搜索认证方法 | |
Li et al. | Integrity-verifiable conjunctive keyword searchable encryption in cloud storage | |
Yang et al. | Privacy-preserving k nearest neighbor query with authentication on road networks | |
Xie et al. | Blockchain‐Based Cloud Data Integrity Verification Scheme with High Efficiency | |
CN110908959A (zh) | 一种支持多关键字和结果排序的动态可搜索加密方法 | |
Xiangyang et al. | MUSE: an efficient and accurate verifiable privacy‐preserving multikeyword text search over encrypted cloud data | |
CN115438230A (zh) | 安全高效的动态加密云数据多维范围查询方法 | |
RuWei et al. | Study of privacy-preserving framework for cloud storage | |
Goodrich et al. | Efficient verification of web-content searching through authenticated web crawlers | |
Fan et al. | Verifiable attribute-based multi-keyword search over encrypted cloud data in multi-owner setting | |
Zhang et al. | Redactable transactions in consortium blockchain: Controlled by multi-authority CP-ABE | |
CN107094075A (zh) | 一种基于收敛加密的数据块动态操作方法 | |
Wang et al. | A dynamic and verifiable multi-keyword ranked search scheme in the P2P networking environment | |
Zhang et al. | Verifiable fuzzy keyword search supporting sensitive information hiding for data sharing in cloud-assisted e-healthcare systems | |
Yuan et al. | Flexible and publicly verifiable aggregation query for outsourced databases in cloud | |
Andavan et al. | Privacy protection domain-user integra tag deduplication in cloud data server | |
Hahn et al. | Multi-key similar data search on encrypted storage with secure pay-per-query |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |