Merkle哈希求和树及其可验证数据库更新操作方法与流程

文档序号:12733907阅读:403来源:国知局
Merkle哈希求和树及其可验证数据库更新操作方法与流程
本发明属于可验证数据库
技术领域
,尤其涉及一种Merkle哈希求和树及其可验证数据库更新操作方法。
背景技术
:随着云计算和大数据的快速发展,资源受限的客户端可以将庞大的数据外包给云端服务器,从而减少客户端维护本地数据的开销。然而,由于云端服务器并不是完全可信的,它可能对数据库进行篡改,因此外包存储的一个关键问题就是如何高效验证客户端搜索时云端返回结果的正确性。近年来,许多学者都研究了在外包数据库上的可验证搜索问题(BackesM,FioreD,ReischukRM.Verifiabledelegationofcomputationonoutsourceddata[C].Proceedingsofthe2013ACMSIGSACconferenceonComputer&communicationssecurity.ACM,2013:863-874.CamenischJ,KohlweissM,SorienteC.Anaccumulatorbasedonbilinearmapsandefficientrevocationforanonymouscredentials[C].InternationalWorkshoponPublicKeyCryptography.SpringerBerlinHeidelberg,2009:481-500.CamenischJ,LysyanskayaA.Dynamicaccumulatorsandapplicationtoefficientrevocationofanonymouscredentials[C].AnnualInternationalCryptologyConference.SpringerBerlinHeidelberg,2002:61-76.LiF,HadjieleftheriouM,KolliosG,etal.Dynamicauthenticatedindexstructuresforoutsourceddatabases[C].Proceedingsofthe2006ACMSIGMODinternationalconferenceonManagementofdata.ACM,2006:121-132.MaD,DengRH,PangH,etal.Authenticatingqueryresultsindatapublishing[C].InternationalConferenceonInformationandCommunicationsSecurity.SpringerBerlinHeidelberg,2005:376-388.MartelC,NuckollsG,DevanbuP,etal.Ageneralmodelforauthenticateddatastructures[J].Algorithmica,2004,39(1):21-41.NaorM,NissimK.Certificaterevocationandcertificateupdate[J].IEEEJournalonselectedareasincommunications,2000,18(4):561-570.NguyenL.Accumulatorsfrombilinearpairingsandapplications[C].Cryptographers’TrackattheRSAConference.SpringerBerlinHeidelberg,2005:275-292.PangHH,JainA,RamamrithamK,etal.Verifyingcompletenessofrelationalqueryresultsindatapublishing[C].Proceedingsofthe2005ACMSIGMODinternationalconferenceonManagementofdata.ACM,2005:407-418.PapamanthouC,TamassiaR.Timeandspaceefficientalgorithmsfortwo-partyauthenticateddatastructures[C].InternationalConferenceonInformationandCommunicationsSecurity.SpringerBerlinHeidelberg,2007:1-15.),但是目前这些方案都不适用于动态更新数据库,因而不适合实际应用。可高效更新的可验证数据库(简称为VDB)是由Benabbas,Gennaro和Vahlis[BenabbasS,GennaroR,VahlisY.Verifiabledelegationofcomputationoverlargedatasets[C].AnnualCryptologyConference.SpringerBerlinHeidelberg,2011:111-131.]首先提出的,目的是为了解决可验证的外包一个大规模的动态数据库问题,也就是一个资源受限的客户端能够在云端服务器上存储一个很大的数据库,之后客户端可以检索得到一条数据库记录,并对这条记录赋予新的值进行更新,同时客户端能够检测到恶意服务器对数据库的篡改行为。通常,对于VDB方案来说,一个很重要的要求就是客户端进行的本地计算和存储开销大小与数据库的大小没有关系(除了初始化阶段)。与之前的一些方法相比,VDB方案仅仅依赖一些常量级密码学假设(constant-sizecryptographicassumptions)。Benabbas,Gennaro和Vahlis[BenabbasS,GennaroR,VahlisY.Verifiabledelegationofcomputationoverlargedatasets[C].AnnualCryptologyConference.SpringerBerlinHeidelberg,2011:111-131.]提出了第一个利用外包多项式函数(delegatingpolynomialfunctions)的高效VDB方案,然而这个方案仅仅满足非公开验证,并不支持公开可验证性。为了实现支持公开可验证性的VDB方案,Catalano和Fiore[CatalanoD,FioreD.Vectorcommitmentsandtheirapplications[M].Public-KeyCryptography–PKC2013.SpringerBerlinHeidelberg,2013:55-72.]使用向量承诺来构建VDB方案。Chenetal.[ChenX,LiJ,HuangX,etal.Newpubliclyverifiabledatabaseswithefficientupdates[J].IEEETransactionsonDependableandSecureComputing,2015,12(5):546-556.]指出Catalano-Fiore的VDB方案无法有效抵御一种被称为前向自动更新(forwardautomaticupdate,简称为FAU)的攻击,并利用承诺绑定(commitmentbinding)方法解决了这个问题。最近,Chenetal.[ChenX,LiJ,WengJ,etal.Verifiablecomputationoverlargedatabasewithincrementalupdates[J].IEEETransactionsonComputers,65(10),pp.3184-3195,2016.]提出了支持增量更新的可验证数据库(Inc-VDB)方案,在该方案中,当数据库进行频繁的小改动时,客户端的计算开销可以得到降低。不过,在[enabbasS,GennaroR,VahlisY.Verifiabledelegationofcomputationoverlargedatasets[C].AnnualCryptologyConference.SpringerBerlinHeidelberg,2011:111-131.CatalanoD,FioreD.Vectorcommitmentsandtheirapplications[M].Public-KeyCryptography–PKC2013.SpringerBerlinHeidelberg,2013:55-72.ChenX,LiJ,HuangX,etal.Newpubliclyverifiabledatabaseswithefficientupdates[J].IEEETransactionsonDependableandSecureComputing,2015,12(5):546-556.ChenX,LiJ,WengJ,etal.Verifiablecomputationoverlargedatabasewithincrementalupdates[J].IEEETransactionsonComputers,65(10),pp.3184-3195,2016.]中的VDB方案都仅支持替代这种更新操作,主要原因是外包数据库的数据记录条数必须是固定的。最近,Miaoetal.[MiaoM,WangJ,MaJ,etal.Publiclyverifiabledatabaseswithefficientinsertion/deletionoperations[J].JournalofComputerandSystemSciences,2016]首先解决了这个问题,提出了支持替代、删除和插入全部更新操作的VDB方案,这个方案基于分层承诺的思想。但是[MiaoM,WangJ,MaJ,etal.Publiclyverifiabledatabaseswithefficientinsertion/deletionoperations[J].JournalofComputerandSystemSciences,2016]中的VDB方案有一个缺点:在执行该方案的插入操作时,如果要操作的位置在已有的全部分层上都是被占用的,就需要增加一个新的分层,并要对新的分层进行承诺;所以,当需要在同一个位置进行多次的插入时,该方法就会不断地增加新的分层并承诺,这将造成巨大计算资源消耗和存储空间浪费;由此可见该方案在同位置多次插入的场景下是不实用的。综上所述,现有的VDB方案缺乏对替代、删除、插入等三种更新操作的完备支持,具体表现为以下两个方面:其一,缺乏插入操作的支持;其二,支持全操作方案的插入过程效率低,资源消耗大。技术实现要素:本发明的目的在于提供一种Merkle哈希求和树及其可验证数据库更新操作方法,旨在解决现有的VDB方案无法同时支持高效的全部更新操作和验证操作。本发明是这样实现的,一种Merkle哈希求和树,所述Merkle哈希求和树是一种基于密码学哈希函数构造的树形数据结构及其操作集。所述Merkle哈希求和树的构造方法包括以下步骤:步骤一:令hash:{0,1}3k→{0,1}k为一个密码学哈希函数,如SHA-256,其中k为安全变量。给定一个数据库步骤二:对每一个叶子节点x,定义Φ(x)=hash(lx,sx,rx),其中lx≥0表示在存储格索引x中的数据记录数目,sx≥1表示在存储格索引x中更新操作的次数(也就是计数器),rx则是一个k-bit的随机数;步骤三:对于中间节点,假设nL与nR分别表示为父亲节点nP的左孩子节点和右孩子节点,定义其中与分别表示对于nL与nR节点哈希输入的第一个元素;步骤四:为了不失一般性,定义Φ(nR)为Merkle哈希求和树的根值。对根值计算签名S=SIGN(Φ(nR)),其中SIGN表示一个安全的签名方案,如BLS短签名。本发明的另一目的在于提供一种利用所述Merkle哈希求和树的可验证数据库更新操作方法,所述可验证数据库更新操作方法包括以下步骤:步骤一,设置:给定一个安全变量n和一个加密的数据库DB,加密数据库形式为(i,vi)∈[q]×Zn-1,使用一个哈希函数H:{0,1}*→Zn-1来处理非常大的数据记录vi;设置算法产生两个阶为N=p1p2的群G与GT,其中p1,p2是范围在[2n-1,2n-1]的素数;双线性映射为e:G×G→GT;令G1与G2为G的子群,阶分别为p1,p2;随机选择两个代数伪随机函数F的密钥K1,K2;同时,随机选择:g1,h1∈RG1,g2,h2,u2∈RG2,a,b∈RZN;对于每一个i∈{1,...,q}:定义:设公共密钥为私钥为SK=(a,Tw,k1,k2);步骤二,查询:查询算法输入公钥PK和一个查询索引使用Merkle哈希求和树和等式确定存储格索引x∈{1,...,q}及相应的证据Ω,证据Ω=(lx,sx,rx,Φi,S),其中Φi(1≤i≤H)表示在MSHT上从叶子节点x到根节点的路径上的节点的兄弟节点值,H为Merkle哈希求和树的深度。然后计算:定义最终返回步骤三,验证:验证算法输入一个私钥SK,一个查询索引和验证者首先利用证据Ω验证x的有效性,检查:其中如果等式成立,则验证者输出1,否则输出⊥;步骤四,更新:进一步,所述步骤四具体包括:1)替代:将查询索引对应的记录vx替换为客户端首先从服务器端检索客户端获得存储格索引x,计数器sx,相应的存储格记录(cellrecord)和证据(T,Ω);如果则客户端计算用以代替在中,已经被代替;如果则将t'x给予服务器,更新公钥:tx←tx·t'x,sx←sx+1;2)删除:当客户端想删除索引对应的记录时,首先然后删除操作可以看成上面的一种特殊情况的替代操作;3)插入:客户端在记录前面插入新的记录客户端首先从服务器端检索如果则客户端计算用以代替在中,记录前面插入了新的记录也就是说,如果则将t'x给予服务器,更新公钥:tx←tx·t'x,sx←sx+1,设lx←lx+1,服务器更新Merkle哈希求和树及相应的证据Ω。进一步,所述可验证数据库更新操作方法中令数据库为其中1≤x≤q,lx≥0表示在存储格索引x中的数据记录数目;在上的三种更新操作包括:替代:客户端想将替换为v′x,则lx保持不变;删除:客户端想删除则lx仍保持不变;插入:客户端想在前面插入一个新的记录则lx加1。本发明的另一目的在于提供一种应用所述Merkle哈希求和树的可验证数据库。本发明的另一目的在于提供一种应用所述Merkle哈希求和树的云端数据库。本发明提出了Merkle哈希求和树这个新的概念,并利用Merkle哈希求和树构建了支持密文数据库全操作可验证更新的方法。Merkle哈希求和树由Merkle哈希树发展而来,其与Merkle哈希树的主要不同之处在于:在Merkle哈希树上进行插入/删除更新时需要重新构建树形结构,计算开销大;在Merkle哈希求和树上,叶子的数目总是相同的,并且叶子节点的输入是独立于数据记录值的(但依赖数据记录的数目),因此在Merkle哈希求和树上的任何更新操作都是更加高效的(如表1所示)。本发明提出了一个全新的可验证数据库更新方法,使用了外包多项式函数,支持全部的更新操作(插入、删除和替代);全部的更新操作可以看做是Benabbas-Gennaro-Vahlis的VDB方案中的一种特殊情况的替代操作,因而与Benabbas-Gennaro-Vahlis的VDB方案一样高效,更符合实际应用。表1MHT和MHST对比表(以N个叶子节点为例)类型树形高度替代/删除节点计算量插入节点计算量MHT二叉树lgNlgN2logN+1次哈希计算MHST二叉树lgNlgNlgN次哈希附图说明图1是本发明实施例提供的Merkle哈希求和树的构造方法示意图;图2是本发明实施例提供的可验证数据库插入操作示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。下面结合附图对本发明的应用原理作详细的描述。本发明实施例提供的Merkle哈希求和树如图1所示,本发明实施例提供的Merkle哈希求和树的构造方法包括以下步骤:(1)选取SHA-256作为安全的哈希函数(记为hash(·)),给定一个数据库DB,共有八条记录,分别为(x1,v1),(x2,v2)…(x8,v8);(2)对每一个叶子节点x,定义Φx=hash(lx,sx,γx),其中lx=1,表示在存储格记录x中有一条数据记录,sx=0表示在存储格索引存储格记录x中还没有进行过更新操作,γx则是一个随机数;(3)对于中间节点,如Φ1-2,表示Φ1与Φ2的父亲节点,定义其中与分别为1,表示它的孩子节点分别有一条数据记录;(4)根节点与中间节点的计算方法相同,记为ΦR,并对其计算签名S=SIGN(ΦR),其中SIGN表示一个安全的签名方案。本发明实施例提供的基于Merkle哈希求和树的可验证数据库具体步骤如下:为了不失一般性,令数据库为其中1≤x≤q,lx≥0表示在存储格索引x中的数据记录数目。本发明分为以下几部分:(1)设置(Setup):给定一个安全变量n和一个加密的数据库DB,加密数据库形式为(i,vi)∈[q]×Zn-1(可以使用一个哈希函数H:{0,1}*→Zn-1来处理非常大的数据记录vi)。设置算法产生两个阶为N=p1p2的群G与GT,其中p1,p2是范围在[2n-1,2n-1]的素数;双线性映射为e:G×G→GT。令G1与G2为G的子群,阶分别为p1,p2。随机选择两个代数伪随机函数F(algebraicpseudorandomfunction)的密钥K1,K2。同时,随机选择:g1,h1∈RG1,g2,h2,u2∈RG2,a,b∈RZN;对于每一个i∈{1,...,q},设:定义:设公共密钥为私钥为SK=(a,Tw,k1,k2)。查询(Query):查询算法输入公钥PK和一个查询索引使用Merkle哈希求和树和等式确定存储格索引x∈{1,...,q}及相应的证据Ω,证据,其中表示在MSHT上从叶子节点x到根节点的路径上的节点的兄弟节点值,H为Merkle哈希求和树的深度。然后计算:为了不失一般性,定义最终返回(2)验证(Verify):验证算法输入一个私钥SK,一个查询索引和验证者首先利用证据Ω验证x的有效性,然后检查:其中如果等式成立,则验证者输出1,否则输出⊥。(3)更新(Update):考虑下面三种更新:1)替代(Replacement):为了将查询索引对应的记录替换为客户端首先从服务器端检索也就是说,客户端获得了存储格索引x,计数器sx,相应的元记录(cellrecord)和证据(T,Ω)。如果则客户端计算用以代替在中,vx已经被代替。也就是说,如果则并且,由于Merkle哈希求和树的性质,确定的准确位置是很容易的。然后,设:将t'x给予服务器,更新公钥:tx←tx·t'x,sx←sx+1。2)删除(Deletion):当客户端想删除索引对应的记录时,首先设然后删除操作可以看成上面的一种特殊情况的替代操作。3)插入(Insertion):插入操作可以看成一种特殊情况的替代操作,不同之处在于当客户端插入一条数据记录时,Merkle哈希求和树也应该进行更新。为了不失一般性,假设客户端想在记录前面插入新的记录与替代操作类似,客户端首先从服务器端检索如果则客户端计算用以代替在中,记录前面插入了新的记录也就是说,如果则然后,设:将t'x给予服务器,更新公钥:tx←tx·t'x,sx←sx+1。此外,设lx←lx+1,服务器更新Merkle哈希求和树及相应的证据Ω。Merkle哈希求和树的更新过程如图2所示(以在图1所示数据库的第二个存储格插入一条新的数据记录为例)。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1