首页 / 专利库 / 电脑安全 / 密码学 / Merkle哈希求和树及其可验证数据库更新操作方法

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

阅读:352发布:2020-05-13

专利汇可以提供Merkle哈希求和树及其可验证数据库更新操作方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种Merkle哈希求和树及其可验证 数据库 更新操作方法,旨在解决数据库更新的全操作可验证问题,保证数据库的正确性、完整性和操作的高效性。本发明提出了Merkle哈希求和树这一新的概念,用以实现对大规模数据高效安全的验证。与Merkle哈希树相比,在Merkle哈希求和树上进行插入/删除操作时,不需要对树的全部 节点 重新计算,更新操作的计算开销小。基于Merkle哈希求和树,本发明提出了一种可验证数据库更新方法,实现了对大规模数据库所有更新操作的高效验证。,下面是Merkle哈希求和树及其可验证数据库更新操作方法专利的具体信息内容。

1.一种利用Merkle哈希求和树的可验证数据库更新操作方法,其特征在于,所述利用Merkle哈希求和树的可验证数据库更新操作方法由以下4个步骤组成:
步骤一,设置:数据拥有者运行设置算法,输入安全变量k和数据库DB,输出一个私钥SK和一个公钥PK;私钥SK由客户端秘密保存;公钥PK分发给所有验证者,包括数据拥有者,用于对证据的验证;数据拥有者同时对数据库加密,加密数据库记为S,将S发送给服务器
步骤二,查询:服务器端运行查询算法,输入公钥PK、加密数据库S、查询索引x,输出返回搜索结果和证据对τ=(v,π);
步骤三,验证:验证者或数据拥有者运行验证算法,输入公钥PK、查询索引x、搜索结果和证据对τ=(v,π),如果对应于v的证据π正确,则输出v,否则输出⊥;
步骤四,更新:数据拥有者运行更新算法,输入私钥SK、查询索引x、待更新数据v′,数据拥有者首先利用私钥SK产生一个操作授权token为t′x,然后将(t′x,v′)发送给服务器;服务器使用v′更新在索引x中的相关数据,并利用t′x更新公钥PK;
所述可验证数据库更新操作方法中令数据库为 其中1≤x≤q,
lx≥0表示在存储格索引x中的数据记录数目;在 上的三种
更新操作包括:
替代:客户端想将 替换为v′x,则 lx保持不变;
删除:客户端想删除 则 lx仍保持不变;
插入:客户端想在 前面插入一个新的记录 则
lx加一;
所述Merkle哈希求和树是基于密码学哈希函数构造的一种树形数据结构及其操作集;
所述Merkle哈希求和树的构造方法包括以下步骤:
(1)令hash:{0,1}3k→{0,1}k为一个密码学哈希函数,如SHA-256,其中k为安全变量;给定一个数据库 1≤x≤q;
(2)对每一个叶子节点x,定义Φ(x)=hash(lx,sx,rx),其中lx≥0表示在存储格索引x中的数据记录数目,sx≥1表示在存储格索引x中更新操作的次数,rx则是一个k-bit的随机数;
(3)对于中间节点,假设nL与nR分别表示为父亲节点nP的左孩子节点和右孩子节点,定义 其中 与 分别表示对于nL与nR节点哈希输入的第
一个元素;
(4)为了不失一般性,定义Φ(nR)为Merkle哈希求和树的根值;对根值计算签名S=SIGN(Φ(nR)),其中SIGN表示一个安全的签名方案,如BLS短签名。
2.一种应用权利要求1所述利用Merkle哈希求和树的可验证数据库更新操作方法的可验证数据库。
3.一种应用权利要求1所述利用Merkle哈希求和树的可验证数据库更新操作方法的端数据库。

说明书全文

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

技术领域

[0001] 本发明属于可验证数据库技术领域,尤其涉及一种Merkle哈希求和树及其可验证数据库更新操作方法。

背景技术

[0002] 随着计算和大数据的快速发展,资源受限的客户端可以将庞大的数据外包给云端服务器,从而减少客户端维护本地数据的开销。然而,由于云端服务器并不是完全可信的,它可能对数据库进行篡改,因此外包存储的一个关键问题就是如何高效验证客户端搜索时云端返回结果的正确性。近年来,许多学者都研究了在外包数据库上的可验证搜索问题(Backes M,Fiore D,Reischuk R M.Verifiable delegation of computation on outsourced data[C].Proceedings of the 2013ACM SIGSAC conference on Computer&communications security.ACM,2013:863-874.Camenisch J,Kohlweiss M,Soriente C.An accumulator based on bilinear maps and efficient revocation for anonymous credentials[C].International  Workshop  on  Public Key Cryptography.Springer Berlin Heidelberg,2009:481-500.Camenisch J,Lysyanskaya A.Dynamic accumulators and application to efficient revocation of anonymous credentials[C].Annual International Cryptology Conference.Springer Berlin Heidelberg,2002:61-76.Li F,Hadjieleftheriou M,Kollios G,et al.Dynamic authenticated index structures for outsourced databases[C].Proceedings of the 2006ACM SIGMOD international conference on Management of data.ACM,2006:121-
132.Ma D,Deng R H,Pang H,et al.Authenticating query results in data publishing[C].International Conference on Information and Communications Security.Springer Berlin Heidelberg,2005:376-388.Martel C,Nuckolls G,Devanbu P,et al.A general model for authenticated data structures[J].Algorithmica,
2004,39(1):21-41.Naor M,Nissim K.Certificate revocation and certificate update[J].IEEE Journal on selected areas in communications,2000,18(4):561-
570.Nguyen L.Accumulators from bilinear pairings and applications[C].Cryptographers’Track at the RSA Conference.Springer Berlin Heidelberg,2005:
275-292.Pang H H,Jain A,Ramamritham K,et al.Verifying completeness of relational query results in data publishing[C].Proceedings of the 2005ACM SIGMOD international conference on Management of data.ACM,2005:407-
418.Papamanthou C,Tamassia R.Time and space efficient algorithms for two-party authenticated data structures[C].International Conference  on Information and Communications Security.Springer Berlin Heidelberg,2007:1-
15.),但是目前这些方案都不适用于动态更新数据库,因而不适合实际应用。可高效更新的可验证数据库(简称为VDB)是由Benabbas,Gennaro和Vahlis[Benabbas S,Gennaro R,Vahlis Y.Verifiable delegation of computation over large datasets[C].Annual Cryptology Conference.Springer Berlin Heidelberg,2011:111-131.]首先提出的,目的是为了解决可验证的外包一个大规模的动态数据库问题,也就是一个资源受限的客户端能够在云端服务器上存储一个很大的数据库,之后客户端可以检索得到一条数据库记录,并对这条记录赋予新的值进行更新,同时客户端能够检测到恶意服务器对数据库的篡改行为。通常,对于VDB方案来说,一个很重要的要求就是客户端进行的本地计算和存储开销大小与数据库的大小没有关系(除了初始化阶段)。与之前的一些方法相比,VDB方案仅仅依赖一些常量级密码学假设(constant-size cryptographic assumptions)。Benabbas,Gennaro和Vahlis[Benabbas S,Gennaro R,Vahlis Y.Verifiable delegation of computation over large datasets[C].Annual Cryptology Conference.Springer Berlin Heidelberg,2011:111-131.]提出了第一个利用外包多项式函数(delegating polynomial functions)的高效VDB方案,然而这个方案仅仅满足非公开验证,并不支持公开可验证性。为了实现支持公开可验证性的VDB方案,Catalano和Fiore[Catalano D,Fiore D.Vector commitments and their applications[M].Public-Key Cryptography–PKC 
2013.Springer Berlin Heidelberg,2013:55-72.]使用向量承诺来构建VDB方案。Chen et al.[Chen X,Li J,Huang X,et al.New publicly verifiable databases with efficient updates[J].IEEE Transactions on Dependable and Secure Computing,
2015,12(5):546-556.]指出Catalano-Fiore的VDB方案无法有效抵御一种被称为前向自动更新(forward automatic update,简称为FAU)的攻击,并利用承诺绑定(commitment binding)方法解决了这个问题。最近,Chen et  al.[Chen X,Li J,Weng J,et al.Verifiable computation over large database with incremental updates[J].IEEE Transactions on Computers,65(10),pp.3184-3195,2016.]提出了支持增量更新的可验证数据库(Inc-VDB)方案,在该方案中,当数据库进行频繁的小改动时,客户端的计算开销可以得到降低。不过,在[enabbas S,Gennaro R,Vahlis Y.Verifiable delegation of computation over large datasets[C].Annual Cryptology Conference.Springer Berlin Heidelberg,2011:111-131.Catalano D,Fiore D.Vector commitments and their applications[M].Public-Key Cryptography–PKC 2013.Springer Berlin Heidelberg,2013:55-72.Chen X,Li J,Huang X,et al.New publicly verifiable databases with efficient updates[J].IEEE Transactions on Dependable and Secure Computing,2015,12(5):546-556.Chen X,Li J,Weng J,et al.Verifiable computation over large database with incremental updates[J].IEEE Transactions on Computers,65(10),pp.3184-3195,2016.]中的VDB方案都仅支持替代这种更新操作,主要原因是外包数据库的数据记录条数必须是固定的。最近,Miao et al.[Miao M,Wang J,Ma J,et al.Publicly verifiable databases with efficient insertion/deletion operations[J].Journal of Computer and System Sciences,2016]首先解决了这个问题,提出了支持替代、删除和插入全部更新操作的VDB方案,这个方案基于分层承诺的思想。
但是[Miao M,Wang J,Ma J,et al.Publicly verifiable databases with efficient insertion/deletion operations[J].Journal of Computer and System Sciences,
2016]中的VDB方案有一个缺点:在执行该方案的插入操作时,如果要操作的位置在已有的全部分层上都是被占用的,就需要增加一个新的分层,并要对新的分层进行承诺;所以,当需要在同一个位置进行多次的插入时,该方法就会不断地增加新的分层并承诺,这将造成巨大计算资源消耗和存储空间浪费;由此可见该方案在同位置多次插入的场景下是不实用的。
[0003] 综上所述,现有的VDB方案缺乏对替代、删除、插入等三种更新操作的完备支持,具体表现为以下两个方面:其一,缺乏插入操作的支持;其二,支持全操作方案的插入过程效率低,资源消耗大。

发明内容

[0004] 本发明的目的在于提供一种Merkle哈希求和树及其可验证数据库更新操作方法,旨在解决现有的VDB方案无法同时支持高效的全部更新操作和验证操作。
[0005] 本发明是这样实现的,一种Merkle哈希求和树,所述Merkle哈希求和树是一种基于密码学哈希函数构造的树形数据结构及其操作集。所述Merkle哈希求和树的构造方法包括以下步骤:
[0006] 步骤一:令hash:{0,1}3k→{0,1}k为一个密码学哈希函数,如SHA-256,其中k为安全变量。给定一个数据库
[0007] 步骤二:对每一个叶子节点x,定义Φ(x)=hash(lx,sx,rx),其中lx≥0表示在存储格索引x中的数据记录数目,sx≥1表示在存储格索引x中更新操作的次数(也就是计数器),rx则是一个k-bit的随机数;
[0008] 步骤三:对于中间节点,假设nL与nR分别表示为父亲节点nP的左孩子节点和右孩子节点,定义 其中 与 分别表示对于nL与nR节点哈希输入的第一个元素;
[0009] 步骤四:为了不失一般性,定义Φ(nR)为Merkle哈希求和树的根值。对根值计算签名S=SIGN(Φ(nR)),其中SIGN表示一个安全的签名方案,如BLS短签名。
[0010] 本发明的另一目的在于提供一种利用所述Merkle哈希求和树的可验证数据库更新操作方法,所述可验证数据库更新操作方法包括以下步骤:
[0011] 步骤一,设置:给定一个安全变量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;同时,随机选择:
[0012] g1,h1∈R G1,g2,h2,u2∈R G2,a,b∈RZN;
[0013] 对于每一个i∈{1,...,q}:
[0014]
[0015] 定义:
[0016]
[0017] 设 公共密钥为 私钥为SK=(a,Tw,k1,k2);
[0018] 步骤二,查询:查询算法输入公钥PK和一个查询索引 使用Merkle哈希求和树和等式 确定存储格索引x∈{1,...,q}及相应的证据Ω,证据Ω=(lx,sx,rx,Φi,S),其中Φi(1≤i≤H)表示在MSHT上从叶子节点x到根节点的路径上的节点的兄弟节点值,H为Merkle哈希求和树的深度。然后计算:
[0019]
[0020] 定义 最终返回
[0021] 步骤三,验证:验证算法输入一个私钥SK,一个查询索引 和 验证者首先利用证据Ω验证x的有效性,检查:
[0022]
[0023] 其中 如果等式成立,则验证者输出1,否则输出⊥;
[0024] 步骤四,更新:进一步,所述步骤四具体包括:
[0025] 1)替代:将查询索引 对应的记录vx替换为 客户端首先从服务器端检索客户端获得存储格索引x,计数器sx,相应的存储格记录(cell record) 和证据(T,Ω);如果 则客户端计算 用以代替 在
中, 已经被 代替;如果 则
[0026]
[0027] 将t'x给予服务器,更新公钥:tx←tx·t'x,sx←sx+1;
[0028] 2)删除:当客户端想删除索引 对应的记录时,首先 然后删除操作可以看成上面的一种特殊情况的替代操作;
[0029] 3)插入:客户端在记录 前面插入新的记录 客户端首先从服务器端检索如果 则客户端计算 用以代替 在 中,记录 前面插入了新的记录 也就是说,如果 则
[0030]
[0031] 将t'x给予服务器,更新公钥:tx←tx·t'x,sx←sx+1,设lx←lx+1,服务器更新Merkle哈希求和树及相应的证据Ω。
[0032] 进一步,所述可验证数据库更新操作方法中令数据库为 其中1≤x≤q, lx≥0表示在存储格索引x中的数据记录数目;在 上的三种更新操作包括:
[0033] 替代:客户端想将 替换为v′x,则 lx保持不变;
[0034] 删除:客户端想删除 则 lx仍保持不变;
[0035] 插入:客户端想在 前面插入一个新的记录 则lx加1。
[0036] 本发明的另一目的在于提供一种应用所述Merkle哈希求和树的可验证数据库。
[0037] 本发明的另一目的在于提供一种应用所述Merkle哈希求和树的云端数据库。
[0038] 本发明提出了Merkle哈希求和树这个新的概念,并利用Merkle哈希求和树构建了支持密文数据库全操作可验证更新的方法。Merkle哈希求和树由Merkle哈希树发展而来,其与Merkle哈希树的主要不同之处在于:在Merkle哈希树上进行插入/删除更新时需要重新构建树形结构,计算开销大;在Merkle哈希求和树上,叶子的数目总是相同的,并且叶子节点的输入是独立于数据记录值的(但依赖数据记录的数目),因此在Merkle哈希求和树上的任何更新操作都是更加高效的(如表1所示)。
[0039] 本发明提出了一个全新的可验证数据库更新方法,使用了外包多项式函数,支持全部的更新操作(插入、删除和替代);全部的更新操作可以看做是Benabbas-Gennaro-Vahlis的VDB方案中的一种特殊情况的替代操作,因而与Benabbas-Gennaro-Vahlis的VDB方案一样高效,更符合实际应用。
[0040] 表1MHT和MHST对比表(以N个叶子节点为例)
[0041]类型 树形 高度 替代/删除节点计算量 插入节点计算量
MHT 二叉树 lgN lgN 2logN+1次哈希计算
MHST 二叉树 lgN lgN lgN次哈希
附图说明
[0042] 图1是本发明实施例提供的Merkle哈希求和树的构造方法示意图;
[0043] 图2是本发明实施例提供的可验证数据库插入操作示意图。

具体实施方式

[0044] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0045] 下面结合附图对本发明的应用原理作详细的描述。
[0046] 本发明实施例提供的Merkle哈希求和树
[0047] 如图1所示,本发明实施例提供的Merkle哈希求和树的构造方法包括以下步骤:
[0048] (1)选取SHA-256作为安全的哈希函数(记为hash(·)),给定一个数据库DB,共有八条记录,分别为(x1,v1),(x2,v2)…(x8,v8);
[0049] (2)对每一个叶子节点x,定义Φx=hash(lx,sx,γx),其中lx=1,表示在存储格记录x中有一条数据记录,sx=0表示在存储格索引存储格记录x中还没有进行过更新操作,γx则是一个随机数;
[0050] (3)对于中间节点,如Φ1-2,表示Φ1与Φ2的父亲节点,定义其中 与 分别为1,表示它的孩子节点分别有一条数据记录;
[0051] (4)根节点与中间节点的计算方法相同,记为ΦR,并对其计算签名S=SIGN(ΦR),其中SIGN表示一个安全的签名方案。
[0052] 本发明实施例提供的基于Merkle哈希求和树的可验证数据库具体步骤如下:
[0053] 为了不失一般性,令数据库为 其中1≤x≤q,lx≥0表示在存储格索引x中的数据记录数目。
[0054] 本发明分为以下几部分:
[0055] (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(algebraic pseudorandom function)的密钥K1,K2。同时,随机选择:
[0056] g1,h1∈R G1,g2,h2,u2∈R G2,a,b∈RZN;
[0057] 对于每一个i∈{1,...,q},设:
[0058]
[0059] 定义:
[0060]
[0061] 设 公共密钥为 私钥为SK=(a,Tw,k1,k2)。
[0062] 查询(Query):查询算法输入公钥PK和一个查询索引 使用Merkle哈希求和树和等式 确定存储格索引x∈{1,...,q}及相应的证据Ω,证据,其中表示在MSHT上从叶子节点x到根节点的路径上的节点的兄弟节点值,H为Merkle哈希求和树的深度。然后计算:
[0063]
[0064] 为了不失一般性,定义 最终返回
[0065] (2)验证(Verify):验证算法输入一个私钥SK,一个查询索引 和验证者首先利用证据Ω验证x的有效性,然后检查:
[0066]
[0067] 其中 如果等式成立,则验证者输出1,否则输出⊥。
[0068] (3)更新(Update):考虑下面三种更新:
[0069] 1)替代(Replacement):为了将查询索引 对应的记录 替换为 客户端首先从服务器端检索 也就是说,客户端获得了存储格索引x,计数器sx,相应的元记录(cell record) 和证据(T,Ω)。如果 则客户端计算
用以代替 在 中,vx已经被 代替。也就是说,如果 则
并且,由于Merkle哈希求和树的性质,确定 的准确位置是很
容易的。
[0070] 然后,设:
[0071]
[0072] 将t'x给予服务器,更新公钥:tx←tx·t'x,sx←sx+1。
[0073] 2)删除(Deletion):当客户端想删除索引 对应的记录时,首先设 然后删除操作可以看成上面的一种特殊情况的替代操作。
[0074] 3)插入(Insertion):插入操作可以看成一种特殊情况的替代操作,不同之处在于当客户端插入一条数据记录时,Merkle哈希求和树也应该进行更新。为了不失一般性,假设客户端想在记录 前面插入新的记录 与替代操作类似,客户端首先从服务器端检索如果 则客户端计算 用以代替 在 中,记录 前面插入了新的记录 也就是说,如果 则
[0075] 然后,设:
[0076]
[0077] 将t'x给予服务器,更新公钥:tx←tx·t'x,sx←sx+1。此外,设lx←lx+1,服务器更新Merkle哈希求和树及相应的证据Ω。Merkle哈希求和树的更新过程如图2所示(以在图1所示数据库的第二个存储格插入一条新的数据记录为例)。
[0078] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈