[发明专利]外包数据库多关键词可验证密文搜索方法、数据处理系统有效
申请号: | 201810920712.3 | 申请日: | 2018-08-14 |
公开(公告)号: | CN109088719B | 公开(公告)日: | 2019-06-04 |
发明(设计)人: | 韦鹏程;周震;李莉;姜娇;黄思行;段昂 | 申请(专利权)人: | 重庆第二师范学院 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L9/08;H04L9/14;G06F16/242 |
代理公司: | 重庆市信立达专利代理事务所(普通合伙) 50230 | 代理人: | 包晓静 |
地址: | 400065 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于数字信息传输技术领域,公开了一种外包数据库多关键词可验证密文搜索方法、数据处理系统,所述外包数据库多关键词可验证密文搜索方法包括:基于广播加密的密钥分发和使用者权限动态管理;利用Merkle树和双线性映射累加器构造的搜索结果完整性证明以及利用Vector Commit方法构造的数据更新证明。本发明在传统Merkle散列树基础上进行改造,是CSP可以提供多关键词的搜索结果完备性证明,同时利用Vector Commi密码学方法设计数据库更新操作;对任意搜索请求,用户均能验证云端是否正确执行,并保证了返回结果的准确性、新鲜性与完备性;对任意不存在关键词,CSP均能产生可验证的证明。 | ||
搜索关键词: | 验证 密文 数据处理系统 数据库 搜索 搜索结果 完备性 数字信息传输 设计数据库 使用者权限 双线性映射 动态管理 返回结果 更新操作 广播加密 密钥分发 数据更新 搜索请求 累加器 密码学 新鲜性 云端 散列 改造 保证 | ||
【主权项】:
1.一种外包数据库多关键词可验证密文搜索方法,其特征在于,所述外包数据库多关键词可验证密文搜索方法包括:基于广播加密的密钥分发和使用者权限动态管理;利用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)数据搜索;(4)数据更新;(5)用户权限管理;所述数据搜索具体包括:(A1)搜索请求提交有权限用户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函数;(A2)搜索结果生成:云端检查: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求出;(A3)搜索结果验证若有关键词mxi不存在,验证返回
及
是否符合;若通过验证,接受结果;若所有关键词(mx1,mx2…mxl)均存在,验证所有mxi对应的
是否正确,即无论返回集合I中有无元素,均验证:![]()
若I中不包含元素,则接受结果;否则,对返回ρ个条目(m1x1…,m1xt)…,(mρx1…,mρxt)及相应C1…,Cρ,验证所有:![]()
若均成立,接受结果,解密ai=Dec(k,mi)得到明文;否则拒绝;所述数据更新具体包括:(B1)数据添加用户需要添加数据(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中,生成新节点
其中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;(B2)数据删除生成请求(τ,σ)提交,其中
τ=(delete,(mt1…,mtl));云端验证用户身份,若合格,搜索(mt1…,mtl)对应数据,若关键词不存在或结果为空集,返回搜索结果及证明;若存在结果,更新Ctree;对于元素mi,更新acc′(mi)=acc(mi)‑(s+r),若acc′(mi)=g,删除
每一次更新mi计算相应
与数据添加类似,返回每一步更新证明;与数据添加类似,User验证返回搜索结果及每一步更新证明是否正确;签名公开NMTroot,Croot;(B3)数据修改数据修改即搜索找到特定信息,之后修改该数据值即可;修改数据mi为mi′需修改对应结点acc(mi),acc(m′i)值及对应Cr值;与之前类似,返回每步证明及验证,签名即可;所述用户权限管理具体包括:(C1)用户添加,授予成员k操作权限,令Hdr=(C0,C1)中C1′=C1·(v·gn+1‑k)=(v·∏j∈S+kgn+1‑j),新群公钥更新为Hdr′=(C0,C′1)即可;(C2)用户移除,移除用户k需更新的K值,选取t′为随机数
新![]()
作为新密钥;同时计算rk′=sk/K′Z上传云端。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆第二师范学院,未经重庆第二师范学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810920712.3/,转载请声明来源钻瓜专利网。