CN115299010A - 用于验证数据完整性的方法和设备 - Google Patents

用于验证数据完整性的方法和设备 Download PDF

Info

Publication number
CN115299010A
CN115299010A CN202280003220.2A CN202280003220A CN115299010A CN 115299010 A CN115299010 A CN 115299010A CN 202280003220 A CN202280003220 A CN 202280003220A CN 115299010 A CN115299010 A CN 115299010A
Authority
CN
China
Prior art keywords
data
blockchain
encrypted
hash value
data content
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.)
Pending
Application number
CN202280003220.2A
Other languages
English (en)
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.)
Ant Chain Technology Co ltd
Original Assignee
Alipay Labs Singapore Pte Ltd
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 Alipay Labs Singapore Pte Ltd filed Critical Alipay Labs Singapore Pte Ltd
Publication of CN115299010A publication Critical patent/CN115299010A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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/3247Cryptographic 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 involving digital signatures
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • Storage Device Security (AREA)

Abstract

一种用于验证数据完整性的方法、设备和装置,包括存储在计算机可读介质上的计算机程序。所述方法之一包括:获取记录在区块链上的数据内容、加密数据片段、签名和加密哈希值;解密该加密数据片段以生成解密数据片段;根据数据内容解析该解密数据片段,以恢复用于创建与该加密数据片段对应的原始数据片段的随机数序列;根据数据内容、加密数据片段和签名计算哈希值;使用恢复的随机数序列加密该哈希值;通过比较使用恢复的随机数序列加密的哈希值与记录在区块链上的加密哈希值,确定数据内容的完整性。

Description

用于验证数据完整性的方法和设备
技术领域
本说明书总体涉及计算机技术,更具体地,涉及用于验证数据完整性的方法和设备。
背景技术
区块链系统,也称为分布式账本系统(DLS)或共识系统,可以使参与各方安全且不可篡改地存储数据。在不参考任何特定用例的情况下,区块链系统可以包括任何DLS并且可以用于公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放使用该系统,并开放参与共识处理。私有区块链网络为特定实体提供,该特定实体集中控制读写权限。联盟区块链网络为选择的实体组群提供,该实体组群控制共识处理,并且联盟区块链网络包括访问控制层。
区块链系统使用点对点(peer-to-peer,P2P)网络实现,其中节点彼此之间直接通信,例如,不需要固定的中央服务器。P2P网络中的每个节点可以发起与P2P网络中的另一节点的通信。区块链系统维护一个或多个区块链。区块链是用于存储诸如交易的数据的数据结构,其可以防止恶意方篡改和操纵数据。
虽然区块链系统可以安全且不可篡改地记录数据,但它们可能缺乏在先检查数据完整性或可信度的能力。例如,如果用户将数据发送到区块链系统用以记录,但恶意方在区块链系统接收到数据之前对数据进行拦截和操纵,由于缺乏检查接收到的数据完整性的机制,区块链系统可能继续记录经操纵的数据,这损害了记录在区块链系统上的数据的完整性。
发明内容
在一个方面,一种计算机实现的、用于验证数据完整性的方法包括:获取记录在区块链上的数据内容、加密数据片段(encrypted data clip)、签名和加密哈希值;解密所述加密数据片段以生成解密数据片段;根据所述数据内容解析所述解密数据片段,以恢复用于创建与所述加密数据片段对应的原始数据片段的随机数序列;基于所述数据内容、所述加密数据片段和所述签名计算哈希值;使用所述恢复的随机数序列加密所述哈希值;以及通过比较使用所述恢复的随机数序列加密的所述哈希值与记录在所述区块链上的所述加密哈希值,确定所述数据内容的完整性。
在另一方面,一种用于验证数据完整性的设备包括:一个或多个处理器;和一个或多个计算机可读存储器,耦接到所述一个或多个处理器并具有存储在其上的指令,这些指令可由所述一个或多个处理器执行以:获取记录在区块链上的数据内容、加密数据片段、签名和加密哈希值;解密所述加密数据片段以生成解密数据片段;根据所述数据内容解析所述解密数据片段,以恢复用于创建与所述加密数据片段对应的原始数据片段的随机数序列;根据所述数据内容、所述加密数据片段和所述签名计算哈希值;使用所述恢复的随机数序列加密所述哈希值;以及通过比较使用所述恢复的随机数序列加密的所述哈希值与记录在所述区块链上的所述加密哈希值,确定所述数据内容的完整性。
在又一方面,一种非暂态计算机可读介质,其中存储有指令,当由设备的处理器执行所述指令时,这些指令使所述设备执行用于验证数据完整性的方法。所述方法包括:获取记录在区块链上的数据内容、加密数据片段、签名和加密哈希值;解密所述加密数据片段以生成解密数据片段;根据所述数据内容解析所述解密数据片段,以恢复用于创建与所述加密数据片段对应的原始数据片段的随机数序列;根据所述数据内容、所述加密数据片段和所述签名计算哈希值;使用所述恢复的随机数序列加密所述哈希值;通过比较使用所述恢复的随机数序列加密的所述哈希值与记录在所述区块链上的所述加密哈希值,确定所述数据内容的完整性。
附图说明
包含在本文中并构成本文一部分的附图示出了实施例。在参考附图的以下描述中,除非另有说明,否则不同附图中的相同数字表示相同或相似的元件。
图1是根据实施例的区块链系统的示意图。
图2是根据实施例的用于实现区块链系统中的节点的计算设备的示意图。
图3A-3C是根据实施例的用于验证数据完整性的方法的流程图。
图4是根据实施例的描绘基于数据内容和随机数序列创建的数据片段的示意图。
图5是根据实施例的用于验证数据完整性的方法的流程图。
图6是根据实施例的用于验证数据完整性的装置的框图。
具体实施方式
本说明书的实施例提供了用于验证数据完整性的方法和设备。所述方法和设备可以允许用户以一些方式使用签名对数据内容进行签名,从而可以使用签名来验证数据内容的完整性。所述方法和设备还可以验证签名的真实性。此外,所述方法和设备可以利用区块链系统来记录信息以便验证数据内容的完整性和签名的真实性,并且在一些实施例中,所述方法和设备可以利用在区块链系统上执行的一个或多个智能合约来执行验证。
本说明书中公开的实施例具有一个或多个技术效果。在一些实施例中,所述方法和设备可以以一些方式处理用户签名以使所述签名可以用于验证数据完整性。这为所述方法和设备提供了在用户对数据内容进行签名之后确定数据内容是否已被修改的能力,从而提高数据完整性。在一些实施例中,所述方法和设备可以处理签名,从而该签名的真实性可以被验证。这允许所述方法和设备确定该签名是否由声称的签名者提供,从而进一步提高数据完整性。在一些实施例中,所述方法和设备可以以某种方式处理该签名,使得该签名不会被伪造。这使得所述方法和设备能够提高数据安全性,因为即使恶意方获取了用于生成该签名的签名者的秘密信息(例如,个人标识码),恶意方仍然可能无法伪造该签名者的签名。此外,在一些实施例中,所述方法和设备可以实现语音签名。这使得所述方法和设备对用户更加友好,因为用户不需要记录生成他们的签名所需的密钥。此外,在一些实施例中,所述方法和设备可以利用区块链系统来记录信息,以便验证数据内容完整性和签名真实性。这允许所述方法和设备将信息记录在可以防止恶意方篡改和操纵的数据结构中。
区块链是以防止恶意方篡改和操纵数据的方式存储诸如交易等数据的数据结构。以这种方式存储的交易可能是不可变的且随后要被验证的。区块链包括一个或多个区块。每个区块通过包括紧邻其之前的前一区块的加密哈希值(cryptographic hash)连接到该前一区块。每个区块还可以包括时间戳、自身的加密哈希值以及一个或多个交易。通常已经由区块链系统的节点验证的交易可以经哈希处理并编码成诸如默克尔(Merkle)树的数据结构。在默克尔树中,树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值可以在该分支的根处连接。该处理沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。声称是存储在树中的交易的哈希值可以通过确定其是否与树的结构一致而被快速验证。
区块链系统包括管理、更新和维护一个或多个区块链的计算节点的网络。所述网络可以是公有区块链网络、私有区块链网络或联盟区块链网络。例如,许多实体,诸如数百、数千或甚至数百万实体,可以在公有区块链网络中操作,并且每个实体操作公有区块链网络中的至少一个节点。因此,公有区块链网络可被认为是关于参与的实体的公有网络。有时,大多数实体(节点)必须对每个区块签名才能使该区块有效并被添加到区块链网络的区块链中。示例性公有区块链网络包括利用被称为区块链的分布式账本的特定点对点支付网络。
通常,公有区块链网络可以支持公开交易。公开交易为公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链,并且所有节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络中实施共识协议。共识协议的示例包括工作量证明(proof-of-work,POW)(例如,在一些加密货币网络中实现)、权益证明(proof-of-stake,POS)和权威证明(proof-of-authority,POA)。
通常,可以为特定实体提供私有区块链网络,该特定实体集中控制读写权限。该实体控制哪些节点能够参与到区块链网络中。因此,私有区块链网络通常被称为许可网络,其限制允许谁参与网络,以及他们的参与级别(例如,仅在某些交易中)。可以使用各种类型的访问控制机制(例如,现有参与者投票添加新实体,管理机构可以控制准入)。
通常,联盟区块链网络在参与的实体之间是私有的。在联盟区块链网络中,共识处理由一组被授权的节点控制,一个或多个节点由相应实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是与参与实体相关的私有网络。在一些示例中,每个实体(节点)必须对每个区块签名,以使区块有效并被添加到区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个区块签名,以使区块有效并被添加到区块链中。
图1示出了根据实施例的区块链系统100的示意图。参考图1,区块链系统100可以包括被配置为在区块链120上操作的多个节点,例如节点102-110。节点102-110可以形成网络112,例如点对点(P2P)网络。节点102-110中的每一个可以是被配置为存储区块链120的副本的计算设备,诸如计算机或计算机系统,或者可以是在计算设备上运行的软件,诸如处理或应用。节点102-110中的每一个可以具有唯一标识。
区块链120可以包括为例如图1中的区块B1-B5的数据区块形式的记录的增长列表。区块B1-B5中的每一个可以包括时间戳、前一区块的加密哈希值,以及当前区块的数据,该数据可以是诸如货币交易的交易。例如,如图1所示,区块B5可以包括时间戳、区块B4的加密哈希值和区块B5的交易数据。此外,例如,可以对前一个区块执行哈希操作以生成前一个区块的加密哈希值。哈希操作可以通过诸如SHA-256的哈希算法将各种长度的输入转换为固定长度的加密输出。
节点102-110可以被配置为对区块链120执行操作。例如,当节点(例如,节点102)想要将新数据存储到区块链120上时,该节点可以生成要被添加到区块链120的新区块,并将该新区块广播到网络112中的例如节点104-110的其他节点。基于新区块的合法性,例如,其签名和交易的有效性,其他节点可以确定接受该新区块,使得节点102和其他节点可以将该新区块添加到它们各自的区块链120的副本中。随着该处理重复,可以将越来越多的数据区块添加到区块链120。
图2示出了根据实施例的用于在区块链系统中实现节点(例如,节点102(图1))的计算设备200的示意图。参考图2,计算设备200可以包括通信接口202、处理器204和存储器206。
通信接口202可以便于计算设备200与用于实现网络中其他节点(例如,节点104-110(图1))的设备之间的通信。在一些实施例中,通信接口202被配置为支持一个或多个通信标准,诸如互联网标准或协议、综合业务数字网(Integrated Services DigitalNetwork,ISDN)标准,等等。在一些实施例中,通信接口202可以包括以下中的一个或多个:局域网(Local Area Network,LAN)卡、电缆调制解调器、卫星调制解调器、数据总线、电缆、无线通信信道、基于无线电的通信信道、蜂窝通信信道、基于互联网协议(InternetProtocol,IP)的通信设备、或用于有线和/或无线通信的其他通信设备。在一些实施例中,通信接口202可以基于公有云基础设施、私有云基础设施、混合公有/私有云基础设施。
处理器204可以包括一个或多个专用处理单元、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或各种其他类型的处理器或处理单元。处理器204与存储器206耦接,并且被配置为执行存储在存储器206中的指令。
存储器206可以存储处理器可执行指令和诸如区块链120(图1)的副本的数据。存储器206可以包括任何类型的易失性或非易失性存储器设备或其组合,例如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器PROM)、只读存储器(ROM)、磁存储器、闪存或磁盘或光盘。当存储器206中的指令由处理器204执行时,计算设备200可以对区块链120执行操作。
区块链系统(例如区块链系统100)的用户可以利用区块链系统100来记录各种类型的信息。例如,在一些实施例中,用户可以利用区块链系统100来记录诸如文档和文件的数据内容。用户还可以利用区块链系统100来记录可用于验证所记录的数据内容完整性的信息。
图3A-3C共同示出了根据实施例的用于验证数据完整性的方法300的流程图。出于说明的目的,图3A-3C中描绘了例如区块链120(图1)的区块链。区块链可以被实现为支持各种类型的用户或各方,包括例如个人、企业、银行、金融机构、以及其他类型的公司、组织等。出于说明的目的,图3A-3C中描绘了一个用户,被称为用户(User)。在一些实施例中,所述用户可以利用在计算设备上运行的应用(在图3A-3C中被称为用户应用(User Application))与区块链(Blockchain)交互。
在步骤302,用户应用可以生成随机数序列s。如将在下面详细描述的,该随机数序列s可以用于帮助验证数据完整性。在步骤304,用户应用可以生成随机数序列s的承诺值。在一些实施例中,用户应用可以基于承诺方案来计算承诺值。在一些实施例中,承诺方案可以包括密码学原语,该密码学原语允许用户应用可以对s作出承诺,同时使s自身对其他用户隐藏。在一些实施例中,所使用的承诺方案可以是佩德森(Pedersen)承诺方案,例如Torben Pryds Pedersen在“非交互式信息论安全可验证秘密共享”中公开的,见《计算机科学讲义》(Lecture Notes in Computer Science),密码学进展——CRYPTO91论文集,1991年第576卷第129-140页,全文通过引用并入本文。出于说明目的,s的承诺值可以表示为comm(s,r),其中,r是用于生成承诺值的随机数。
在步骤306,用户应用可以提交承诺值comm(s,r)至区块链用以记录。在步骤308,区块链可以记录该承诺值comm(s,r)。这样,如果恶意方或用户试图改变随机数序列s,则该改变可以被检测到。
在步骤310,用户可以提供或指定用户想要记录在区块链上的数据内容。出于说明目的,数据内容可表示为content,该数据内容可以以各种方式提供或指定。例如,用户可以标识现有的数据内容(例如,已经存在于计算设备上的文件)并请求用户应用获取所标识的数据内容。在另一个示例中,用户可以创建数据内容(例如,使用用户应用或其他应用),并且用户应用可以在数据内容被创建时或之后不久接收该数据内容。在一些实施例中,数据内容可以包括一个或多个文档。替代地或附加地,数据内容可以包括其他文件类型,包括例如语音记录、聊天机器人对话和其他类型的音频/视频文件。
在步骤312,用户应用可以基于数据内容content和随机数序列s,创建原始数据片段,表示为clip。在一些实施例中,用户应用可以通过从数据内容content中根据随机数序列s提取多条数据来创建该数据片段clip。例如,如图4所示,如果数据内容content包括语音记录,且随机数序列s为[9,3,6,3,7],用户应用可以通过从content中的第9位置处(例如,语音记录开始了9秒)提取第一条数据来创建所述数据片段clip,其中9是s中的第一个数字。然后,用户应用可以将提取位置前进3(3是s中的下一个数字),并从content中的第12位置处提取第二条数据。如图4所示,用户应用可以基于s中的下一个数字继续推进提取位置,并从content中提取其他条数据。用户应用可以将提取的多条数据连接在一起以形成数据片段clip。
应当理解,上述提取过程仅作为示例呈现,并不意味着限制。还应当理解,类似的技术可以应用于其他类型的数据内容,包括文档等。以这种方式,用户应用可以创建数据片段clip以包括该数据内容content中随机选择的多条数据,从而有效地将数据片段clip和数据内容content绑定。将数据片段clip和数据内容content绑定可能是有益的,因为恶意方在不知道数据内容content的情况下可能无法创建或伪造数据片段clip。将数据片段clip和数据内容content绑定还可以防止恶意方通过重用为另一个数据内容创建的另一个数据片段来绕过步骤312。
参考图3B,在步骤314,用户应用可以获取验证者(Verifier)的公钥,验证者例如为在区块链上执行的智能合约或另一个用户。在一些实施例中,用户应用可以从区块链获取公钥,从而用户应用不需要在本地存储任何密钥。在一些实施例中,验证者可以是可以验证数据内容content的完整性的另一用户。或者,在一些实施例中,验证者可以包括在区块链上执行的一个或多个智能合约。智能合约是以计算机代码的形式实现的计算机协议,其被并入区块链,以促进、验证或施行商定的条款或条件的协商或履行。例如,区块链的用户可以使用诸如C++、Java、Solidity、Python等编程语言将商定的条款编程为智能合约,并且当条款满足时,智能合约可以自动在区块链执行,例如执行交易。又例如,智能合约可以包括多个子例程或函数,每个子例程或函数可以是执行专用任务的一系列程序指令。智能合约可以是在完全或部分没有人工交互的情况下执行的操作代码。在步骤316,用户应用可以使用验证者的公钥加密该数据片段clip。出于说明的目的,该加密数据片段可以表示为En(clip,PKVerifier)。
在步骤318,用户应用可以从用户接收签名sig。在一些实施例中,从用户接收签名sig可以表明用户已对数据内容content签名。在一些实施例中,签名sig可以包括使用加密密钥生成的数字签名。在一些实施例中,签名sig可以包括语音签名,语音签名允许用户通过陈述个人标识码(personal identification number,PIN)对数据内容content签名,如美国专利第7,606,768号“具有强绑定的语音签名(Voice Signature With StrongBinding)”中所公开的,该专利的全文通过引用并入本文。可以设想,在某些情况下,包括例如通过聊天机器人对话收集数据,可能需要使用语音签名。某些用户也可能更倾向于语音签名,因为用户不需要生成和保护他们的数字签名通常需要的私钥。
在步骤320,用户应用可以将加密数据片段En(clip,PKVerifier)和签名sig附加到数据内容content,以创建附加数据D=content+En(clip,PKVerifier)+sig。在步骤322,用户应用可以计算该附加数据的哈希值H=hash(D)。在步骤324,用户应用可以使用随机数序列s加密该哈希值。出于说明的目的,该加密哈希值可以表示为EH=En(H,s)。
在步骤326,用户应用可以提交数据内容content、加密数据片段En(clip,PKVerififier)、签名sig和加密哈希值EH到区块链用以记录。在一些实施例中,用户应用可以提交数据内容content的明文值和签名sig至区块链。在一些实施例中,用户应用可以在将数据内容content和签名sig提交到区块链之前,加密该数据内容content和/或签名sig。在步骤328,区块链可以记录用户应用提交的数据,包括数据内容content、加密数据片段En(clip,PKVerifier)、签名sig和加密哈希值EH。
参考图3C,在步骤330,验证者(例如,在区块链上执行的智能合约或另一个用户)可以从区块链获取用户应用提交的数据。在一些实施例中,获取的数据可以包括数据内容content、加密数据片段En(clip,PKVerifier)、签名sig和加密哈希值EH。
在步骤332,验证者可以使用其私钥解密该加密数据片段En(clip,PKVerifier)以获取数据片段clip。在步骤334,验证者可以根据数据内容content解析该数据片段clip以恢复随机数序列s。出于说明的目的,恢复的随机数序列可以表示为s′,如果该恢复是成功的,则该恢复的随机数序列s′应该等于s。例如,如图4所示,验证者可以根据数据内容content解析数据片段clip并确定所提取的各条数据的位置。然后验证者可以基于所确定的位置恢复随机数序列s′。但是,如果数据片段clip是伪造的,则验证者可能无法恢复随机数序列。
在一些实施例中,在步骤336,验证者可以提交恢复的随机数序列s′至区块链用以记录。在一些实施例中,验证者可以将恢复的随机数序列s′附加到在步骤330从区块链获取的数据,并将该附加数据提交到区块链用以记录。提交恢复的随机数序列s′至区块链用以记录,这使得恢复的随机数序列s′被发布,并且在一些实施例中,方法300可以禁止重用任何发布的随机数序列以提高安全性。
此外,在一些实施例中,验证者可以基于(在步骤308)记录在区块链上的承诺值comm(s,r),验证恢复的随机数序列s′的正确性。例如,在一些实施例中,用户应用可以发布(release)用于生成承诺值comm(s,r)的随机数r,这使得验证者可以使用随机数r计算恢复的随机数序列s′的承诺值并确定它是否与(在步骤308)记录在区块链上的承诺值comm(s,r)匹配。如果这两个承诺值不匹配,验证者可以拒绝进一步处理,因为该不匹配表明验证者没有正确恢复随机数序列s′(例如,因为数据片段clip是伪造的)或随机数序列s在承诺值comm(s,r)被记录在区块链上(在步骤308)之后被修改(例如,由用户或恶意方无意或故意地)。另一方面,如果恢复的随机数序列s′的承诺值与记录在区块链上的承诺值comm(s,r)匹配,则验证处理可以继续。
在步骤338,验证者可以基于从区块链获取的数据内容content、加密数据片段En(clip,PKverifier)和签名sig,计算哈希值H′。例如,验证者可以计算哈希值H′=hash(content+En(clip,PKVerifier)+sig)。在步骤340,验证者可以使用恢复的随机数序列s′加密该哈希值H′。出于说明目的,该经加密的哈希值H′可以表示为EH′=En(H′,s′),该经加密的哈希值应该等于从区块链获取的EH。如果EH′≠EH,则验证者可以确定数据内容content的完整性和/或签名sig的真实性已被损坏。也就是说,如果区块链上记录的数据内容content和/或签名sig与用户用来计算EH的数据内容和/或签名不同(例如,如果恶意方更改了数据内容content或伪造了记录在区块链上的签名sig),则该不同由于EH′≠EH可以被识别。在这种情况下,验证者可以拒绝接受所述数据内容content和所述签名sig。否则,如果EH′=EH,验证者可以接受所述数据内容content和所述签名sig。
在一些实施例中,在步骤342验证者可以执行一个或多个附加验证。例如,如果数据内容content包括语音记录,且签名sig包括语音签名,验证者可以利用语音分析器,包括例如基于人工智能的语音分析器,来比对数据内容content中包含的声音和签名sig中包含的声音,以确定签名sig的真实性(例如,确定content和sig是否是同一个人说的)。在另一个例子中,如果签名sig是数字签名,验证者可以使用适当的验证算法来验证数字签名的真实性。在一些实施例中,如果数据内容content和签名sig通过了验证步骤340和342,验证者可以接受所述数据内容content和签名sig。以这种方式,方法300可以为区块链提供一种机制来确定接收到的数据内容content的完整性。在一些实施例中,如果数据内容content的完整性未得到验证,区块链可以拒绝记录该数据内容content。
图5示出了根据实施例的用于验证数据完整性的方法500的流程图。方法500可以由区块链系统中的一个或多个节点执行,例如,区块链系统100(图1)中的节点102-110。区块链系统100中的节点102-110可以在例如区块链120(图1)的区块链上执行操作。区块链120可以实现为上述示例中的区块链。
在步骤502,例如节点102的节点可以获取记录在区块链上的数据内容、加密数据片段、签名和加密哈希值。数据内容、加密数据片段、签名和加密哈希值可以由用户(例如,用户(图3B,步骤326))记录在区块链上,节点102可以获取所述记录的数据以验证数据内容的完整性和签名的真实性。
在步骤504,节点102可以解密该加密数据片段以生成解密数据片段。如上所述,在区块链上记录加密数据片段的用户可能已经使用节点102的公钥加密了数据片段,使得节点102可以使用其对应的私钥解密该加密数据片段。
在步骤506,节点102可以根据数据内容解析该解密数据片段以恢复用于创建数据片段的随机数序列。如上面参考图4所描述的,在一些实施例中,节点102可以根据数据内容解析该解密数据片段,以确定用以创建该数据片段所提取的各条数据的位置。然后节点102可以基于所确定的位置恢复随机数序列。在一些实施例中,区块链可以记录用于创建所述数据片段的随机数序列的承诺值。在这样的实施例中,如上所述,节点102可以基于记录在区块链上的承诺值来确定恢复的随机数序列是否正确。
在步骤508,节点102可以基于数据内容、加密数据片段和签名计算哈希值。在步骤510,节点102可以使用恢复的随机数序列加密该哈希值,并且在一些实施例中,节点102可以将恢复的随机数序列记录在区块链上,以防止恢复的随机数序列被再次用于加密该哈希值。如上所述,使用恢复的随机数序列加密的哈希值应该与区块链上记录的加密哈希值匹配。因此,在步骤512,节点102可以通过比较使用恢复的随机数序列加密的哈希值与记录在区块链上的加密哈希值来确定数据内容的完整性。在一些实施例中,如果使用恢复的随机数序列加密的哈希值与记录在区块链上的加密哈希值匹配,则节点102可以接受该数据内容的完整性。否则,如果使用恢复的随机数序列加密的哈希值与记录在区块链上的加密哈希值不匹配,则节点102可以拒绝接受该数据内容的完整性。
在一些实施例中,节点102可以进一步确定签名的真实性。例如,如果数据内容包括语音记录,并且签名包括语音签名,则节点102可以将数据内容中包含的语音与签名中包含的语音进行比较以确定语音签名的真实性。在另一个示例中,如果签名是数字签名,则节点102可以利用适当的验证算法来验证数字签名的真实性。在一些实施例中,如果签名是真实的,则节点102可以接受该数据内容的完整性。否则,节点102可以拒绝接受该数据内容的完整性。
图6是根据实施例的用于验证数据完整性的装置600的框图。装置600可以是软件处理的实施方式并且可以对应方法500(图5)。参考图6,装置600可以包括处理模块602、加密/解密模块604和确定模块606。
处理模块602可以获取记录在区块链上的数据内容、加密数据片段、签名和加密哈希值,并将所获取的数据提供给加密/解密模块604。加密/解密模块604可以解密所述加密数据片段以生成解密数据片段。处理模块602然后可以根据所述数据内容解析所述解密数据片段以恢复用于创建数据片段的随机数序列。处理模块602还可以基于数据内容、加密数据片段和签名计算哈希值,并将该哈希值提供给加密/解密模块604。加密/解密模块604可以使用所述恢复的随机数序列加密该哈希值,并将使用所述恢复的随机数序列加密的哈希值提供给确定模块606。如上所述,确定模块606可以通过比较使用所述恢复的随机数序列加密的哈希值与记录在区块链上的所述加密哈希值来确定数据内容的完整性。
上述模块中的每一个都可以实现为软件、或硬件、或软件和硬件的组合。例如,上述模块中的每一个模块可以使用处理器执行存储在存储器中的指令来实现。而且,例如,每个上述模块可以使用一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子组件来实施以执行所描述的方法。进一步地,例如,上述模块中的每一个可以通过使用计算机芯片或实体来实施,或者通过使用具有特定功能的产品来实施。在一个实施例中,装置600可以是计算机,并且计算机可以是个人计算机、膝上型计算机、蜂窝电话、照相手机、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任何组合。
对于装置600中每个模块的功能和角色的实施过程,可以参考上述方法中的相应步骤。为简单起见,这里省略了细节。
在一些实施例中,计算机程序产品可以包括非暂态计算机可读存储介质,其上存储有计算机可读程序指令,用于使处理器执行上述方法。
计算机可读存储介质可以是有形设备,其可以存储供指令执行设备使用的指令。所述计算机可读存储介质可以是,例如,但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、例如在其上记录有指令的凹槽中的穿孔卡或凸起结构的机械编码设备,以及前述的任何合适的组合。
用于执行上述方法的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的编程语言和传统的过程编程语言。计算机可读程序指令可以完全在计算设备上作为独立软件包执行,或者部分在第一计算设备上执行、部分在远离第一计算设备的第二计算设备上执行。在后一种情况下,第二远程计算设备可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到第一计算设备。
计算机可读程序指令可以被提供给通用或专用计算机的处理器或其他可编程数据处理装置以产生机器,使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实施上述方法的机构。
附图中的流程图和框图示出了根据本文的各种实施例的设备、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的框可以表示软件程序、代码的段或部分,其包括用于实现特定功能的一个或多个可执行指令。还应注意,在一些可选实施例中,框中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,图和/或流程图的每个框以及图和流程图中的框的组合,可以由执行指定功能或动作的专用目的的基于硬件的系统来实施,或由专用目的的硬件和计算机指令的组合来实施。
应当理解,为了清楚起见,在不同实施例的上下文中描述的本公开的某些特征也可以在单个实施例中组合提供。相反,为了简洁起见,在单个实施例的上下文中描述的本公开的各种特征也可以单独提供或者以任何合适的子组合提供,或者在本公开的任何其他描述的实施例中合适地提供。除非另有说明,否则在各种实施例的上下文中描述的某些特征不是那些实施例的必要特征。
尽管已经结合具体实施例描述了本公开,但是许多替换、修改和变体对于本领域技术人员而言将是显而易见的。因此,以下权利要求包含落入权利要求的范围内的所有这些替代、修改和变体。

Claims (13)

1.一种计算机实现的、用于验证数据完整性的方法,所述方法包括:
获取记录在区块链上的数据内容、加密数据片段、签名和加密哈希值;
解密所述加密数据片段以生成解密数据片段;
根据所述数据内容解析所述解密数据片段,以恢复用于创建与所述加密数据片段对应的原始数据片段的随机数序列;
基于所述数据内容、所述加密数据片段和所述签名计算哈希值;
使用所述恢复的随机数序列加密所述哈希值;
通过比较使用所述恢复的随机数序列加密的所述哈希值与记录在所述区块链上的所述加密哈希值来确定所述数据内容的完整性。
2.根据权利要求1所述的方法,还包括:
响应于确定使用所述恢复的随机数序列加密的所述哈希值与记录在所述区块链上的所述加密哈希值匹配,接受所述数据内容的完整性。
3.根据前述任一权利要求所述的方法,还包括:
响应于确定使用所述恢复的随机数序列加密的所述哈希值与记录在所述区块链上的所述加密哈希值不匹配,拒绝接受所述数据内容的完整性。
4.根据前述任一权利要求所述的方法,还包括:
确定所述签名的真实性;
响应于确定所述签名是真实的,接受所述数据内容的完整性。
5.根据权利要求4所述的方法,还包括:
响应于确定所述签名是不真实的,拒绝接受所述数据内容的完整性。
6.根据前述任一权利要求所述的方法,还包括:
将所述恢复的随机数序列记录在所述区块链上,防止所述恢复的随机数序列被再次用于加密所述哈希值。
7.根据前述任一权利要求所述的方法,其中,所述原始数据片段是通过从所述数据内容中根据所述随机数序列提取多条数据创建的,所述提取的多条数据中的每条数据在所述数据内容中的位置由所述随机数序列中的对应数确定。
8.根据前述任一权利要求所述的方法,还包括:
记录用于在所述区块链上创建所述数据片段的所述随机数序列的承诺值;
基于记录在所述区块链上的所述承诺值,判断所述恢复的随机数序列是否正确。
9.根据前述任一权利要求所述的方法,其中,所述数据内容包括语音记录。
10.根据前述任一权利要求所述的方法,其中,所述签名包括语音签名。
11.一种用于验证数据完整性的设备,包括:
一个或多个处理器;
一个或多个计算机可读存储器,耦接至所述一个或多个处理器且其上存储有指令,所述指令能够由所述一个或多个处理器执行以执行如权利要求1至10中任一项所述的方法。
12.一种用于验证数据完整性的装置,所述装置包括用于执行权利要求1至10中任一项所述的方法的多个模块。
13.一种非暂态计算机可读介质,其中存储有指令,当由设备的处理器执行所述指令时,促使所述设备执行权利要求1至10中任一项所述的方法。
CN202280003220.2A 2021-03-08 2022-01-18 用于验证数据完整性的方法和设备 Pending CN115299010A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SG10202102327U 2021-03-08
SG10202102327UA SG10202102327UA (en) 2021-03-08 2021-03-08 Methods and devices for verifying data integrity
PCT/IB2022/050377 WO2022189865A1 (en) 2021-03-08 2022-01-18 Methods and devices for verifying data integrity

Publications (1)

Publication Number Publication Date
CN115299010A true CN115299010A (zh) 2022-11-04

Family

ID=78397435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280003220.2A Pending CN115299010A (zh) 2021-03-08 2022-01-18 用于验证数据完整性的方法和设备

Country Status (3)

Country Link
CN (1) CN115299010A (zh)
SG (1) SG10202102327UA (zh)
WO (1) WO2022189865A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116233120B (zh) * 2023-05-10 2023-07-14 深圳普菲特信息科技股份有限公司 一种基于数据处理的大文件分片传输方法、系统和介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3292484B1 (en) * 2015-05-05 2021-07-07 Ping Identity Corporation Identity management service using a block chain
KR20180130623A (ko) * 2017-05-29 2018-12-10 주식회사 익스트러스 어플리케이션 무결성검증을 위한 블록체인 구성방법 및 어플리케이션 무결성 검증방법
DE102018004423A1 (de) * 2018-06-04 2019-12-05 Sap Se Sicherer Datenaustausch
CN109583886B (zh) * 2018-09-30 2020-07-03 阿里巴巴集团控股有限公司 基于区块链的交易方法、装置和汇出方设备
CN109522698B (zh) * 2018-10-11 2024-10-18 平安科技(深圳)有限公司 基于区块链的用户认证方法及终端设备
CN110351089B (zh) * 2019-05-23 2022-01-04 西安电子科技大学 一种数据签名认证方法及装置

Also Published As

Publication number Publication date
WO2022189865A1 (en) 2022-09-15
SG10202102327UA (en) 2021-09-29

Similar Documents

Publication Publication Date Title
US11165590B2 (en) Decentralized biometric signing of digital contracts
CN110692228B (zh) 基于区块链中智能合约保护交易活动敏感数据的方法和设备
US20200344070A1 (en) Methods and devices for validating transaction in blockchain system
CN107342867B (zh) 签名验签方法和装置
CN110785783A (zh) 对用于区块链系统的签名验证进行测试的方法和设备
US7606768B2 (en) Voice signature with strong binding
WO2019036178A1 (en) DISTRIBUTED DIGITAL REGISTER
US11917071B2 (en) Data protection using universal tagging
CN111210287A (zh) 一种基于税务UKey的开具发票的方法及系统
CN111480316B (zh) 生成和验证密码的方法和设备
CN111242611A (zh) 一种用于恢复数字钱包密钥的方法及系统
CN117094036A (zh) 一种基于区块链技术的电子签章方法
US11343107B2 (en) System for method for secured logging of events
CN108540447A (zh) 一种基于区块链的证书验证方法及系统
CN115299010A (zh) 用于验证数据完整性的方法和设备
CN113761578A (zh) 一种基于区块链的文书验真方法
CN111279330A (zh) 用于在区块链上存储和管理音频数据的方法和设备
CN114846765B (zh) 提供去中心化身份验证的方法和设备
CN114641788B (zh) 用于防止对区块链系统的拒绝服务攻击的方法和设备
TWI482480B (zh) 數位證書自動更新系統及方法
US10999077B2 (en) Data protection using sporadically generated universal tags
CN115023721A (zh) 用于保护和验证记录的状态转换的方法和设备
CN114930372A (zh) 促进拆分票据融资的方法和设备
US20240311803A1 (en) Non-fungible token digital wallet as a gatewayfor conducting resource-related events/transactions
US20230410072A1 (en) Systems and methods for enhanced non-fungible tokens

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
TA01 Transfer of patent application right

Effective date of registration: 20240921

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Applicant after: Ant Chain Technology Co.,Ltd.

Country or region after: Singapore

Address before: 51 Belashbaatar Road, Singapore City, Laizanda No.1 # 04-08

Applicant before: Alipay laboratories (Singapore) Ltd.

Country or region before: Singapore