CN113282798A - 一种基于梅克尔树的标识资源版本验证方法及系统 - Google Patents

一种基于梅克尔树的标识资源版本验证方法及系统 Download PDF

Info

Publication number
CN113282798A
CN113282798A CN202110494602.7A CN202110494602A CN113282798A CN 113282798 A CN113282798 A CN 113282798A CN 202110494602 A CN202110494602 A CN 202110494602A CN 113282798 A CN113282798 A CN 113282798A
Authority
CN
China
Prior art keywords
version
irma
identification
tree
resource
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
CN202110494602.7A
Other languages
English (en)
Other versions
CN113282798B (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.)
Guangzhou Computer Network Information Center Chinese Academy Of Sciences
Computer Network Information Center of CAS
Original Assignee
Guangzhou Computer Network Information Center Chinese Academy Of Sciences
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 Guangzhou Computer Network Information Center Chinese Academy Of Sciences filed Critical Guangzhou Computer Network Information Center Chinese Academy Of Sciences
Priority to CN202110494602.7A priority Critical patent/CN113282798B/zh
Publication of CN113282798A publication Critical patent/CN113282798A/zh
Application granted granted Critical
Publication of CN113282798B publication Critical patent/CN113282798B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于梅克尔树的标识资源版本验证方法及系统,涉及物联网领域,将标识资源按照时间线性顺序抽象成不同版本,不同版本代表不同时间点的标识资源内容。通过基于构建梅克尔树,继承了二叉树快速检查和归纳海量数据的能力,可以在较少通信数据量的情况下,对标识资源进行当前版本及历史版本的完整性进行快速验证,以及对异常版本位置的快速定位,适用于物联网中多标识资源管理授权机构节点之间、多用户或终端与标识资源管理机构之间频繁验证和纠错的场景。

Description

一种基于梅克尔树的标识资源版本验证方法及系统
技术领域
本发明涉及物联网领域,具体涉及一种基于梅克尔树的标识资源版本验证方法及系统。
背景技术
在当前的物联网环境中,“万物互联”是信息技术发展的趋势,“万物互联”要求给每一个“物”或“物的集合”赋予一个唯一的标识作为互联的基础,这个标识(也就是“物”)的相关资源称为标识资源,标识资源可以是不同对象的集合。标识是唯一不变的,但是标识资源则是可变的,为了满足物联网可追溯性的要求,标识资源的重要变更都应该存储和标记形成版本,以便后续检查,并且在特定的场景之下,每个版本的资源是反应某一历史时段的事实,不能被删除或否认。标识资源的存储和标记离不开计算机应用,标识资源可包含不同的对象,一般是文本、图片、其他程序文件等,其中文本和图片对象应用较为广泛。
现有的一种技术方案是哈希列表,标识资源管理授权机构(IRMA)按照时间发生顺序以列表形式对不同版本标识资源的哈希值进行登记,也存储真实的标识资源对象,当用户或物联网终端需要验证自己当前的标识资源版本是否属于历史存储时,从IRMA下载完整的哈希列表,遍历完整的哈希列表,以确认自己当前的标识资源版本是否正确和完整。IRMA中的多个节点,具有容错能力,通过比对哈希列表找出出现数据异常的节点并定位有问题的标识资源版本。
如图1,4个IRMA节点分别对自己当前存储的标识001对应的不同标识资源进行哈希,形成一张所有版本标识资源哈希组成的资源哈希列表,列表中记录建立顺序索引,4个IRMA节点实时与其他节点比对资源哈希列表,以便发现存在异常的节点,并通过逐一比对哈希列表中的记录,定位出现数据异常的标识资源版本。
授权用户或物联网终端,需要验证其中一个版本的标识资源,先计算哈希值,然后从IRMA一个或多个节点请求该版本标识资源哈希值,IRMA节点通过索引取得资源哈希列表中对应位置哈希值返回,用户或终端通过比对哈希值是否一致,来判断当前版本标识资源的版本位置和内容完整性。
随着物联网的爆发式增长,现有方案在物联网规模逐渐壮大的情况下,可能存在某些不足:
1.IRMA节点间要对标识资源进行验证和异常定位的时候,需要对整个哈希列表完整传输、进行记录逐一比对,这样实现的灵活性和效率较低(时间复杂度为O(n))。随着联网“物”的增加,标识和在网的IRMA节点的数量也会爆发式增加,传输数据量的剧增对窄带网络来说是巨大的负载。
2.IRMA节点要对前m个版本标识资源验证的时候,则需要传输完整哈希列表中的前m个版本哈希子列表,效率较低(时间复杂度为O(m))。
3.哈希列表中元素相互独立,没有依赖关系,用户或终端要验证当前标识资源版本时候,只能验证当前版本标识资源的版本位置和内容完整性,并不能同时完成对之前的历史版本是否正确进行验证。
发明内容
本发明的主要目的是在于提出一种能够实现标识资源版本的验证方法及系统,适用于物联网中多标识资源管理授权机构节点之间、多用户或终端与标识资源管理机构之间频繁验证和纠错的场景,能够实现快速的标识资源版本完整性和追溯性验证,并且尽可能的减少验证过程需要传输的数据量,适应物联网窄带通信的环境要求。
为实现上述目的,本发明采用以下技术方案:
一种基于梅克尔树的标识资源版本验证方法,包括以下步骤:
存储标识资源,标识资源管理授权机构IRMA通过IRMA节点对每个标识存储的所有版本的标识资源生成一棵对应的梅克尔树;
IRMA节点进行标识资源版本验证,每个IRMA节点对自己当前存储标识资源的梅克尔树与所有IRMA节点达成共识的梅克尔树进行比较,如果树根哈希一样,则标识资源一致,否则标识资源版本出错,将检查出标识版本出错的IRMA节点作为异常IRMA节点;
IRMA节点根据共识策略对梅克尔树进行确认,异常IRMA节点将异常梅克尔树与共识梅克尔树从树根到叶子逐层比对,定位出错的标识资源版本;
IRMA节点验证前多个历史标识资源版本是否都为正确完整的版本时,其中一个IRMA节点通过向其他IRMA节点取得共识梅克尔树的树根哈希和版本号,递归求出验算需要用到的其它节点哈希,根据所述其它节点哈希来验证所述前多个历史标识资源版本都是正确完整的版本;
物联网终端验证某个历史标识资源版本是否为正确完整的版本时,通过向IRMA节点取得共识梅克尔树的树根哈希和版本号,递归求出验算需要用到的其它节点哈希,根据所述其它节点哈希来验证所述历史标识资源版本是否为正确完整的版本。
进一步地,生成梅克尔哈希树采用的哈希算法包括但不限于sha-1、sha-224、sha-256、sha-384、sha-512或md5。
进一步地,IRMA节点之间通过共识算法协议进行通信,共识算法包括但不限于BFT、PBFT、Pow、Pos或Raft。
进一步地,生成梅克尔哈希树的步骤包括:
IRMA节点收到来自物联网终端的某一标识的某一版本的资源和版本哈希时,IRMA节点之间进行共识通信,若满足共识策略,以及验证版本哈希正确,则将标识资源存储于标识资源版本列表中;
IRMA节点基于目标标识的所有版本哈希,构建目标标识对应的梅克尔树。
进一步地,定位出错的标识资源版本时,对于标识资源版本的数量为n个时,如果经过
Figure BDA0003053848660000031
层一共传输不多于2n-1个哈希值,则确定所有标识资源版本异常;如果经过
Figure BDA0003053848660000032
层一共传输不多于
Figure BDA0003053848660000033
个哈希值,则确定只有一个标识资源版本异常,其中ceil为向上取整函数。
进一步地,验证前多个历史标识资源版本时,参与验证的梅克尔树中节点个数最多不超过
Figure BDA0003053848660000034
个。
一种基于梅克尔树的标识资源版本验证系统,包括:
标识资源管理授权机构IRMA,包括多个IRMA节点,用于对每个标识存储的所有版本的标识资源生成一棵对应的梅克尔树;IRMA节点进行标识资源版本验证,每个IRMA节点将自己当前的梅克尔树树根与所有IRMA节点达成共识的梅克尔树树根进行比较,如果树根哈希一样,则标识资源一致,否则标识资源版本出错,将检查出标识版本出错的IRMA节点作为异常IRMA节点;将异常IRMA节点梅克尔树与共识梅克尔树从树根到叶子逐层比对,定位出错的标识资源版本;IRMA节点验证前多个历史标识资源版本是否都为正确完整的版本时,其中一个IRMA节点通过向其他IRMA节点取得共识梅克尔树的树根哈希和版本号,递归求出验算需要用到的其它节点哈希,根据所述其它节点哈希来验证所述前多个历史标识资源版本都是正确完整的版本;
物联网终端,用于采集或生成标识资源,以及验证标识资源版本,验证某个历史标识资源版本是否为正确完整的版本时,通过向IRMA节点取得共识梅克尔树的树根哈希和版本号,递归求出验算需要用到的其它节点哈希,根据所述其它节点哈希来验证所述历史标识资源版本是否为正确完整的版本。
本发明提出的一种基于梅克尔树的标识资源版本验证方法及系统,其优点在于:将标识资源按照时间线性顺序抽象成不同版本,不同版本代表不同时间点的标识资源内容。将标识资源不同版本按照时间顺序排序生成哈希树,极大提高了查找、验证版本的速度,减少需要传输的数据量,适合于对传输带宽和功耗要求高的场景。以“只增”方式生成树,不但可以快速验证某一个版本及之前所有版本的完整性,还可以验证顺序性,相对哈希列表方式,验证时间复杂度从O(N)下降为
Figure BDA0003053848660000041
快速的副本验证功能,只需要验证树根哈希即可判断两个标识资源所有版本副本是否一致。快速的异常版本定位能力,一个标识资源版本异常,校对标识资源所有版本组成的哈希树,时间复杂度是
Figure BDA0003053848660000042
借助梅克尔树和共识算法,建立IRMA集群,解决了单IRMA节点存储的容错和性能问题。快速的子树验证能力,只需要验证proof(m,T[n])对应的节点哈希,即可验证所有前m个版本的正确性。充分利用梅克尔树的验证特性,加强了网络安全的健壮性。
通过基于构建梅克尔树,本发明同样继承了二叉树快速检查和归纳海量数据的能力,本方法可以在较少通信数据量的情况下,对标识资源进行当前版本及历史版本的完整性进行快速验证,异常版本位置的快速定位,标识资源版本数量越多验证效率优势越明显。对于在窄带通信网中进行海量版本数据验证的场景尤其有效。
附图说明
图1是IRMA节点对标识资源进行哈希的示意图。
图2是梅克尔树形式的标识资源版本验证示意图。
图3是IRMA节点对写入存储的标识资源生成梅克尔树的示意图。
图4是递归求解验算路径中的哈希树节点的示意图。
图5是MTH哈希树反向递归对比查找异常标识资源版本的示意图。
图6是终端向达成共识的两IRMA节点发送版本标识资源数据的示意图。
图7是终端验证标识资源版本和内容是否真实完整的示意图。
图8是终端验证标识资源版本和内容是否真实完整的流程图。
图9是终端验证标识资源版本正确后拉取后续版本的流程图。
具体实施方式
为使本发明的技术方案能更明显易懂,特举实施例并结合附图详细说明如下。
为了方便说明本发明方法的一个管理流程,需要先给出物联网标识通信的几个定义:
1.标识资源管理授权机构(Identification Resource Management Authority,IRMA):这是对某一个领域的标识的所有不同版本资源进行管理的机构,具体由很多的节点(亦称为IRMA节点)组成,这些IRMA节点之间以某种共识算法进行频繁的相互验证,监听发现标识资源异常的节点。
2.窄带物联网(Narrow Band Internet of Things,NB-IoT):支持低功耗设备在广域网中连接的网络,也称作低功耗广域网,特点是功耗与带宽较低。
3.物联网终端:物联网终端基本由外围感知(传感)接口,中央处理模块和外部通信接口三个部分组成,特点是功耗低、运算能力相对低和接口带宽速率低。
本方法的标识资源版本验证支持标识的分布式或集中式存储验证,如图2所表示,在网络中对于某一类型的标识资源集合,由这一类标识的IRMA进行存储管理,针对每一类标识,它们的IRMA可以由一个或多个节点组成,节点之间以某种的共识算法对标识资源进行标记形成版本,根据标识资源生成“只增”梅克尔树,来进行标识资源版本验证。
一、标识资源写入
如图3所示,每一个IRMA节点都对写入存储的标识资源生成一棵对应梅克尔树,生成步骤如下:
1.网络中的一个或多个IRMA节点收到来自终端的某一版本的标识资源和哈希值,例如第1版本的标识资源对象内容为D1,内容哈希值为H1(依次类推第8版本内容为D8,内容哈希值为H8),IRMA节点之间进行共识通信,满足共识策略和验证内容哈希值正确,则将标识资源写入节点存储。
2.每个节点按照梅克尔树生成方法生成哈希二叉树,
当只有一个版本时候,标识资源版本列表为T[1]={t(0)}(注意:t(0)的内容为D1),生成树的公式为:
MTH(T[1])=MTH({t(0)})=SHA-xxx(0x0||t(0))
其中,MTH()表示用括号中的元素生成梅克尔树,T[1]表示包含1个元素的列表,t(0)表示列表T中的第1个元素,以此类推,T[n]表示包含n个元素的列表,t(n)表示列表T中的第n+1个元素;SHA-xxx表示所使用的哈希算法,可以是sha-128、sha-256等;0x0表示16进制中的0(0x表示16进制),计算机存储中占一个字节(二进制就是8个零),即00000000;“||”是构成连接符,是将前后两部分直接连接,例如A||B的输出结果为AB。
当有n个版本时候(k为少于n的2的最大次冥),标识资源版本列表为T[n]={t(0),t(1),...,t(n-1)},生成树的递归公式为:
MTH(T[n])=SHA-xxx(0x01||MTH(T[0:k])||MTH(T[k:n])),...,n>1,k<n<2k
其中,T[0:k]表示列表T中前k个元素,T[k:n]表示列表T中除去前k个元素后剩下的n-k个元素,T[k:n]={t(k),t(k+1),...,t(n-1)},“||”是构成连接符。
如图3,H12由D1和D2的哈希值H1和H2计算得出,H1234则由D1、D2、D3和D4的哈希值计算得出。
二、IRMA节点间异常版本定位
IRMA节点之间按照一定时间策略进行标识资源版本验证,每个IRMA节点比较自己当前存储标识资源的梅克尔树树根哈希与所有IRMA节点的共识通讯得出的共识梅克尔树树根哈希,如果树根哈希一样,则标识资源一致。
如果梅克尔树树根哈希不一样,则开始定位出错的版本,首先根据共识策略确定在IRMA节点中权威的共识梅克尔树,然后将异常的IRMA节点的梅克尔树与共识梅克尔树进行比对,从树根到叶子逐层比对定位错误。当有n个版本时候,存在两种极端情况:
1.假设所有标识资源版本全部异常,则经过
Figure BDA0003053848660000061
层(树高)一共传输不多于2n-1个哈希值,全部对比,就可以确定所有标识资源版本异常。
2.假设只有一标识资源版本异常,则经过
Figure BDA0003053848660000062
层(树高)一共传输不多于
Figure BDA0003053848660000063
Figure BDA0003053848660000064
个哈希值,其中ceil为向上取整,进行比对,就可以确认和定位异常的标识资源版本。
三、IRMA节点之间前m个历史版本验证
当标识资源的最新版本为第n版本,当前IRMA节点要验证前m版本的标识资源为正确完整的版本,即验证MTH(T[0:m])是否为MTH(T[n])前m个叶子组成的树的一致性验证为PROOF(m,T[n]):当前IRMA节点向其它IRMA节点取得最新树根哈希和版本号,递归求出验算子树需要用到的哈希树节点,先求k(k为少于n的2的最大次冥),则有3种情况:
1.当m=n,则只需要验证梅克尔树树根:
PROOF(m,T[n])=SUBPROOF(m,T[n])=MTH(T[m])
2.当m<=k,则需要递归验证:
SUBPROOF(m,T[n])=SUBPROOF(m,T[0:k]):MTH(T[k:n])
3.当m>k,则需要递归验证:
SUBPROOF(m,T[n])=SUBPROOF(m-k,T[k:n]):MTH(T[0:k])
其中,PROOF()表示一次性验证函数,PROOF(m,T[n])表示验证MTH(T[0:m])是否为MTH(T[n])前m个叶子组成的树;SUBPROOF()表示递归验证函数,SUBPROOF(m,T[n])表示递归验证MTH(T[0:m])是否为MTH(T[n])前m个叶子组成的树;“:”是构成连接符,表示前后两个验证动作组合,即都需要验证。
需要参与验证的梅克尔树中节点个数最多不超过:
Figure BDA0003053848660000065
如图4示例,通过递归求出验算路径中的哈希树节点,其中一个IRMA节点要验证自己的3个版本(即D1、D2、D3)是否为完整标识资源中的前3个正确的版本,则验证所需要的梅克尔树节点数不超过:
Figure BDA0003053848660000066
验证路径PROOF(3,T[8])=[H12,H3,H4,H5678],其中H12、H3验证D1、D2和D3构成的子树是否一致,H4和H5678用于附加展示子树是否与全树保持一致,请求的IRMA节点依据这4个树节点即可验证前3个版本是否一致。
四、终端与IRMA节点之间第m个版本验证
当标识资源的最新版本为第n版本,终端要验证第m+1版本的标识资源为正确完整的版本,并确认<m+1的所有版本可信,即验证第m+1个叶子是否为MTH(T[n])第m+1个叶子和前m个叶子是否可信的验证路径为PATH(m,T[n])。终端向IRMA节点取得最新树根哈希和版本号,递归求出验算第m个叶子到达树根需要用到的其它哈希树节点,先求k(k为少于n的2的最大次冥),则有3种情况:
1.当整数只有一个元素T[1],则验证路径为空:
PATH(0,T[1])=PATH(0,{t(0)})={}
2.当m<k,则需要递归验证:
PATH(m,T[n])=PATH(m,T[0:k]):MTH(T[k:n])
3.当m>k,则需要递归验证:
PATH(m,T[n])=PATH(m-k,T[k:n]):MTH(T[0:k])
其中,“:”是构成连接符,T[k1:k2]表示列表{t[k1],t[k1+1],...,t[k2-1]}。
如图4示例,其中终端要验证自己的持有的D4(没有持有D1、D2、D3)是否为完整标识资源中的第4个正确的版本,验证路径PATH(t(3))=[H3,H12,H5678],其中自身计算的H4与H3算出H34,H34和H12算出H1234,H1234与H5678算出树根哈希,若终端依据这3个哈希算出的树根哈希和从IRMA节点处获得的树根哈希一致,即可验证持有的D4为完整表述资源中的第4个版本。
下面给出一具体应用实例,以某一辆车作为标识标识对象进行说明:
1.从一辆车登记到一个主体注册到IRMA(车联网系统、公安系统等组成)开始就赋予一个标识(假设为:yueABC345),车上安装一个终端通过NB-iot网络,每间隔1小时向IRMA不同节点上传标识资源数据(例如gps位置、胎压等),形成版本标记。
2.终端C发送第1版本标识资源及哈希给2个IRMA节点A和节点B,有序列表为T[1]={t(0)},IRMA节点A和节点B通过raft共识协议进行通信,如图6两节点达成共识(假设共识策略为节点A和B同时信任)信任终端C发来的这一版本标识资源数据,则分别写入自身节点的存储,以sha-256算法生成初始哈希树:MTH({t(0)});其中,raft共识算法可以替换成为其他共识算法,包括但不限于BFT、PBFT、Pow、Pos、Ripple等;sha-256哈希算法可以替换成为其他哈希算法,包括但不限于sha-1、sha-224、sha-384、sha-512、md5、hmac、pbkdf2等。
3.依次按照上面步骤2,终端C间隔1小时不断发送标识资源数据给IRMA节点,经过40天,标识资源版本数量是24*40=960。
4.IRMA节点A和节点B,写入第960版本标识资源,生成了哈希树:MTH(T[960]),之后按照一定间隔重复生成哈希树,比对各自生成的树根哈希,若树根哈希一致,则可以确定节点A和节点B中关于标识(yueABC345)的所有资源版本的顺序性和完整性一致。
5.当IRMA节点A发现后续生成的哈希树与之前哈希树不一致,则马上与IRMA节点B进行通信,确认最新的MTH(T[960])树树根哈希是否一致,不一致则以共识认定的哈希树为参照,从树根到叶子逐层进行比对的方式来定位错误。
假设当只有第888个版本资源D888有异常,即t{887}版本有异常,代入以下公式:
MTH(T[n])=SHA-xxx(0x01||MTH(T[0:k])||MTH(T[k:n])),...,n>1,k<n<2k
代入公式进行反向递归对比,如图5,对比了
Figure BDA0003053848660000081
个哈希值后,确定出现异常的标识资源版本为t{887}。
6.图7中终端D取得了标识yueABC345的第888个版本标识资源,要验证该标识资源版本和内容是否真实完整,如图8流程,终端D从IRMA节点A和节点B查询标识yueABC345最新的标识版本梅克尔树树根哈希和版本数,返回树根哈希MTH(T[960])和版本数960;终端D通过代入递归验证公式(可以由终端计算,也可以由IRMA节点计算,也可以各自分别计算),可以计算验证路径path(t(887))=[MTH(t(886)),MTH(T[884:886),MTH(T[880:884]),MTH(T[888:896]),MTH(T[864:880]),MTH(T[832:864]),MTH(T[768:832]),MTH(T[896:960]),MTH(T[512:768]),MTH(T[0:512])]一共10个哈希值(如图5);IRMA节点传回这10个哈希值,终端D经过演算,验证树根哈希是否一致便可以确认持有的第888版本及之前版本标识资源的完整性和时间准确性,然而又不需要知道前面所有版本标识资源的具体内容。
7.IRMA节点A写入第832个版本后就下线,间隔一段时间后重新上线,节点A需要验证这832个版本是否正确,如果正确则节点A向节点B拉取后续版本,如图9流程,节点A向节点B查询标识yueABC345最新的标识版本梅克尔树树根哈希和版本数,返回树根哈希MTH(T[960])和版本数960;节点A通过代入递归验证公式,可以计算验证路径proof(832,T[960])=[MTH(T[768:832]),MTH(T[832:896]),MTH(T[896:960]),MTH(T[512:768],MTH(T[0:512])]]一共6个哈希值(如图5);节点B传回这6个哈希值,节点A经过演算,验证树根哈希是否一致便可以确认持有的这832个版本与B节点完整主树前832个版本的一致性,确认一致就不用重新拉取这832个版本,可以从第833版本开始拉取。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,本发明的保护范围以权利要求所述为准。

Claims (10)

1.一种基于梅克尔树的标识资源版本验证方法,其特征在于,包括以下步骤:
存储标识资源,标识资源管理授权机构IRMA通过IRMA节点对每个标识存储的所有版本的标识资源生成一棵对应的梅克尔树;
IRMA节点进行标识资源版本验证,每个IRMA节点对自己当前存储标识资源的梅克尔树与所有IRMA节点达成共识的梅克尔树进行比较,如果树根哈希一样,则标识资源一致,否则标识资源版本出错,将检查出标识版本出错的IRMA节点作为异常IRMA节点;
IRMA节点根据共识策略对梅克尔树进行确认,异常IRMA节点将异常梅克尔树与共识梅克尔树从树根到叶子逐层比对,定位出错的标识资源版本;
IRMA节点验证前多个历史标识资源版本是否都为正确完整的版本时,其中一个IRMA节点通过向其他IRMA节点取得共识梅克尔树的树根哈希和版本号,递归求出验算需要用到的其它节点哈希,根据所述其它节点哈希来验证所述前多个历史标识资源版本都是正确完整的版本;
物联网终端验证某个历史标识资源版本是否为正确完整的版本时,通过向IRMA节点取得共识梅克尔树的树根哈希和版本号,递归求出验算需要用到的其它节点哈希,根据所述其它节点哈希来验证所述历史标识资源版本是否为正确完整的版本。
2.如权利要求1所述的方法,其特征在于,生成梅克尔哈希树采用的哈希算法包括sha-1、sha-224、sha-256、sha-384、sha-512或md5。
3.如权利要求1所述的方法,其特征在于,IRMA节点之间通过共识算法协议进行通信,共识算法包括BFT、PBFT、Pow、Pos或Raft。
4.如权利要求1所述的方法,其特征在于,生成梅克尔哈希树的步骤包括:
IRMA节点收到来自物联网终端的某一标识的某一版本的资源和版本哈希时,IRMA节点之间进行共识通信,若满足共识策略,以及验证版本哈希正确,则将标识资源存储于标识资源版本列表中;
IRMA节点基于目标标识的所有版本哈希,构建目标标识对应的梅克尔树。
5.如权利要求1所述的方法,其特征在于,生成梅克尔树时,分为以下两种情况:
当只有一个版本时候,标识资源版本列表为T[1]={t(0)},生成树的公式为:
MTH(T[1])=MTH({t(0)})=SHA-xxx(0x0||t(0));
当有n个版本时候,标识资源版本列表为T[n]={t(0),t(1),...,t(n-1)},生成树的递归公式为:
MTH(T[n])=SHA-xxx(0x01||MTH(T[0:k])||MTH(T[k:n])),...,n>1,k<n<2k;
其中,MTH()表示用括号中的元素生成梅克尔树,T[n]表示包含n个元素的列表,t(n)表示列表T中的第n+1个元素;SHA-xxx表示所使用的哈希算法;0x表示16进制;||是构成连接符,是将前后两部分直接连接;T[0:k]表示列表T中前k个元素,T[k:n]表示列表T中除去前k个元素后剩下的n-k个元素。
6.如权利要求5所述的方法,其特征在于,IRMA节点验证前多个历史标识资源版本分为以下三种情况:
(1)当m=n,则验证梅克尔树树根:
PROOF(m,T[n])=SUBPROOF(m,T[n])=MTH(T[m]);
(2)当m<=k,则递归验证:
SUBPROOF(m,T[n])=SUBPROOF(m,T[0:k]):MTH(T[k:n]);
(3)当m>k,则递归验证:
SUBPROOF(m,T[n])=SUBPROOF(m-k,T[k:n]):MTH(T[0:k]);
其中,n为标识资源的最新版本序数,m为要验证的历史标识资源版本数量;PROOF()表示一次性验证函数,PROOF(m,T[n])表示验证MTH(T[0:m])是否为MTH(T[n])前m个叶子组成的树;SUBPROOF()表示递归验证函数,SUBPROOF(m,T[n])表示递归验证MTH(T[0:m])是否为MTH(T[n])前m个叶子组成的树;“:”是构成连接符,表示前后两个验证动作组合。
7.如权利要求6所述的方法,其特征在于,验证前多个历史标识资源版本时,参与验证的梅克尔树中节点个数最多不超过
Figure FDA0003053848650000021
个。
8.如权利要求5所述的方法,其特征在于,物联网终端验证某个历史标识资源版本分为以下三种情况:
(1)当整数只有一个元素T[1],则验证路径为空:
PATH(0,T[1])=PATH(0,{t(0)})={};
(2)当m<k,则递归验证:
PATH(m,T[n])=PATH(m,T[0:k]):MTH(T[k:n]);
(3)当m>k,则递归验证:
PATH(m,T[n])=PATH(m-k,T[k:n]):MTH(T[0:k]);
其中,n为标识资源的最新版本序数,m为要验证的历史标识资源版本的序数;PATH()为路径验证函数,PATH(m,T[n])表示验证第m+1个叶子是否为MTH(T[n])第m+1个叶子和前m个叶子是否可信的验证路径;“:”是构成连接符,表示前后两个验证动作组合。
9.如权利要求1所述的方法,其特征在于,定位出错的标识资源版本时,对于标识资源版本的数量为n个时,如果经过
Figure FDA0003053848650000031
层一共传输不多于2n-1个哈希值,则确定所有标识资源版本异常;如果经过
Figure FDA0003053848650000032
层一共传输不多于
Figure FDA0003053848650000033
个哈希值,则确定只有一个标识资源版本异常,其中ceil为向上取整函数。
10.一种基于梅克尔树的标识资源版本验证系统,其特征在于,包括:
标识资源管理授权机构IRMA,包括多个IRMA节点,用于对每个标识存储的所有版本的标识资源生成一棵对应的梅克尔树;IRMA节点进行标识资源版本验证,每个IRMA节点将自己当前的梅克尔树树根与所有IRMA节点达成共识的梅克尔树树根进行比较,如果树根哈希一样,则标识资源一致,否则标识资源版本出错,将检查出标识版本出错的IRMA节点作为异常IRMA节点;将异常IRMA节点梅克尔树与共识梅克尔树从树根到叶子逐层比对,定位出错的标识资源版本;IRMA节点验证前多个历史标识资源版本是否都为正确完整的版本时,其中一个IRMA节点通过向其他IRMA节点取得共识梅克尔树的树根哈希和版本号,递归求出验算需要用到的其它节点哈希,根据所述其它节点哈希来验证所述前多个历史标识资源版本都是正确完整的版本;
物联网终端,用于采集或生成标识资源,以及验证标识资源版本,验证某个历史标识资源版本是否为正确完整的版本时,通过向IRMA节点取得共识梅克尔树的树根哈希和版本号,递归求出验算需要用到的其它节点哈希,根据所述其它节点哈希来验证所述历史标识资源版本是否为正确完整的版本。
CN202110494602.7A 2021-05-07 2021-05-07 一种基于梅克尔树的标识资源版本验证方法及系统 Active CN113282798B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110494602.7A CN113282798B (zh) 2021-05-07 2021-05-07 一种基于梅克尔树的标识资源版本验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110494602.7A CN113282798B (zh) 2021-05-07 2021-05-07 一种基于梅克尔树的标识资源版本验证方法及系统

Publications (2)

Publication Number Publication Date
CN113282798A true CN113282798A (zh) 2021-08-20
CN113282798B CN113282798B (zh) 2022-03-25

Family

ID=77278253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110494602.7A Active CN113282798B (zh) 2021-05-07 2021-05-07 一种基于梅克尔树的标识资源版本验证方法及系统

Country Status (1)

Country Link
CN (1) CN113282798B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150003654A (ko) * 2013-07-01 2015-01-09 삼성전자주식회사 데이터 인증을 위한 서명 정보 생성 및 검증 방법과 이를 위한 시스템
CN105320899A (zh) * 2014-07-22 2016-02-10 北京大学 一种面向用户的云存储数据完整性保护方法
US20160098723A1 (en) * 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
CN106682907A (zh) * 2016-12-10 2017-05-17 江苏恒为信息科技有限公司 区块链数据对比及共识方法
CN108364181A (zh) * 2018-01-08 2018-08-03 广州中国科学院计算机网络信息中心 基于区块链与物联网标识的溯源方法及系统
CN108769171A (zh) * 2018-05-18 2018-11-06 百度在线网络技术(北京)有限公司 分布式存储的副本保持验证方法、装置、设备及存储介质
CN109345388A (zh) * 2018-09-20 2019-02-15 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
CN110009334A (zh) * 2018-11-07 2019-07-12 阿里巴巴集团控股有限公司 一种构建梅克尔树、简单支付验证方法及装置
CN110138596A (zh) * 2019-04-13 2019-08-16 山东公链信息科技有限公司 一种基于切换网络拓扑方式的区块链共识方法
CN110989994A (zh) * 2019-11-18 2020-04-10 腾讯科技(深圳)有限公司 基于区块链的代码版本管理方法、装置、终端及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150003654A (ko) * 2013-07-01 2015-01-09 삼성전자주식회사 데이터 인증을 위한 서명 정보 생성 및 검증 방법과 이를 위한 시스템
CN105320899A (zh) * 2014-07-22 2016-02-10 北京大学 一种面向用户的云存储数据完整性保护方法
US20160098723A1 (en) * 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
CN106682907A (zh) * 2016-12-10 2017-05-17 江苏恒为信息科技有限公司 区块链数据对比及共识方法
CN108364181A (zh) * 2018-01-08 2018-08-03 广州中国科学院计算机网络信息中心 基于区块链与物联网标识的溯源方法及系统
CN108769171A (zh) * 2018-05-18 2018-11-06 百度在线网络技术(北京)有限公司 分布式存储的副本保持验证方法、装置、设备及存储介质
CN109345388A (zh) * 2018-09-20 2019-02-15 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
CN110009334A (zh) * 2018-11-07 2019-07-12 阿里巴巴集团控股有限公司 一种构建梅克尔树、简单支付验证方法及装置
CN110138596A (zh) * 2019-04-13 2019-08-16 山东公链信息科技有限公司 一种基于切换网络拓扑方式的区块链共识方法
CN110989994A (zh) * 2019-11-18 2020-04-10 腾讯科技(深圳)有限公司 基于区块链的代码版本管理方法、装置、终端及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
焦文喆: "分布式IMA的网络性能及机载数据完整性分析与研究", 《中国博士学位论文全文数据库 工程科技Ⅱ辑》 *
王占兵: "基于区块链的云数据库完整性验证机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Also Published As

Publication number Publication date
CN113282798B (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
US10938571B2 (en) System and method for verification of data transferred among several data storages
EP3693886B1 (en) Optimizations for verification of interactions system and method
US8595595B1 (en) Identifying lost write errors in a raid array
US9378155B2 (en) Method for processing and verifying remote dynamic data, system using the same, and computer-readable medium
US10969982B1 (en) Data deduplication with collision resistant hash digest processes
WO2021108258A1 (en) Optimizations for verification of interactions system and method using probability density functions
CN111984726A (zh) 测量数据集的存储和分布式数据库
CN113037492B (zh) 传感器数据处理方法及装置
CN113609533B (zh) 一种面向智能电网数据的完整性审计方法
US11983160B2 (en) Apparatus and method for providing sensor data based on blockchain
CN113282798B (zh) 一种基于梅克尔树的标识资源版本验证方法及系统
JP7319461B2 (ja) コンソーシアムブロックチェーンを用いてプライベートデータを保持する方法および装置
Balasubramanian et al. Cloud data integrity checking using bilinear pairing and network coding
CN115514644B (zh) 表项一致性检查方法、电子设备及存储介质
CN116303425A (zh) 一种在区块链中创建账户的方法和区块链节点
US11675777B2 (en) Method, apparatus, and computer readable medium for generating an audit trail of an electronic data record
CN115941452A (zh) 基于物联网及区块链技术的去中心化电网故障溯源系统
CN115129704A (zh) 迁移数据校验方法及其系统、电子设备、存储介质
CN115694811A (zh) 一种基于无密钥签名的区块链数据传输方法与系统
US11621846B2 (en) Privacy protecting transparency tree for device attestation
CN116249977A (zh) 固定性数据处理
KR101443508B1 (ko) 클라우드 컴퓨팅을 위한 데이터 무결성 검증 방법 및 시스템
Chanal et al. Blockchain-based data integrity framework for Internet of Things
Guo et al. BFT-DSN: A Byzantine Fault Tolerant Decentralized Storage Network
US20230350865A1 (en) System and method using bloom filters to improve system reliability

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