CN112380584B - 区块链数据更新方法、装置、电子设备和存储介质 - Google Patents
区块链数据更新方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112380584B CN112380584B CN202110039407.5A CN202110039407A CN112380584B CN 112380584 B CN112380584 B CN 112380584B CN 202110039407 A CN202110039407 A CN 202110039407A CN 112380584 B CN112380584 B CN 112380584B
- Authority
- CN
- China
- Prior art keywords
- revised
- initial
- value
- elliptic curve
- hash
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
- H04L9/3252—Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种区块链数据更新方法、装置、电子设备和存储介质,所述方法包括:基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;基于椭圆曲线,以及修订密码消息,修订区块链目标节点上的第一初始签名值和第二初始签名值,以使区块链目标节点上的当前哈希值与区块链目标节点的原始哈希值相同。本发明实施例基于椭圆曲线进行区块链数据更新,相较于基于有限素域的乘法群的方案效率更高,即在同等哈希长度的条件下,椭圆曲线的安全度更高,且在同等安全的条件下,椭圆曲线所需的哈希长度更小。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种区块链数据更新方法、装置、电子设备和存储介质。
背景技术
区块链是一个分布式的共享账本和数据库,具有不可篡改特点,但区块链不可篡改在保证数据安全的同时,还存在被滥用的风险。例如,某些非法消息被发送到区块链上的数据随着交易被发送到了链上,由于区块链的不可篡改性,导致无法删除该非法消息,进而造成数据泄露风险。
目前,通常采用变色龙哈希函数变色龙哈希函数(chameleon hash function),计算变色龙哈希函数的碰撞,从而实现更新区块链上对应节点的数据。但目前采用的变色龙哈希函数,会将基于修订消息计算得到的新的变色龙随机数公开,从而其它人可以基于恢复私钥的算法计算出变色龙哈希私钥,造成私钥泄露。此外,目前使用的变色龙哈希函数主要是为了实现“不可转发签名方案”。在不可转发签名方案中,一个强制定的验证者拥有变色龙哈希函数的私钥,当签名者专门为该验证者构造一条消息的签名后,该签名只能被该指定验证者所验证,而不能被其他第三方验证。
发明内容
本发明提供一种区块链数据更新方法、装置、电子设备和存储介质,用以解决现有技术中区块链数据更新时会造成私钥泄露的缺陷。
本发明提供一种区块链数据更新方法,包括:
基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;
基于椭圆曲线,以及所述修订密码消息,修订所述区块链目标节点上的第一初始签名值和第二初始签名值,以使所述区块链目标节点上的当前哈希值与所述区块链目标节点的原始哈希值相同;
其中,所述原始哈希值是基于所述初始密码消息、所述第一初始签名值以及所述第二初始签名值确定的变色龙哈希值。
根据本发明提供的一种区块链数据更新方法,所述基于椭圆曲线,以及所述修订密码消息,修订所述目标节点上的第一初始签名值和第二初始签名值,具体包括:
基于所述椭圆曲线,以及所述原始哈希值,得到第一修订签名值;
基于所述椭圆曲线,所述修订密码消息,以及所述第一修订签名值,得到第二修订签名值。
根据本发明提供的一种区块链数据更新方法,所述基于所述椭圆曲线,以及所述原始哈希值,得到第一修订签名值,具体包括:
基于所述椭圆曲线的点群阶,确定椭圆曲线的随机数;
基于所述原始哈希值,所述椭圆曲线的基点,以及所述椭圆曲线的随机数,得到第一修订签名值。
其中,所述第一修订签名值是基于第一签名值模型确定的,所述第一签名值模型为:
r1 =h+k·G;
其中,r1表示所述第一修订签名值,h表示所述原始哈希值,k表示所述椭圆曲线的随机数,G表示所述椭圆曲线的基点。
根据本发明提供的一种区块链数据更新方法,所述基于所述椭圆曲线,所述修订密码消息,以及所述第一修订签名值,得到第二修订签名值,具体包括:
基于所述修订密码消息和所述第一修订签名值,对初始标准哈希值进行更新,得到修订标准哈希值;
基于所述椭圆曲线的随机数、所述修订标准哈希值以及哈希私钥,得到第二修订签名值。
其中,所述第二修订签名值是基于第二签名值模型确定的,所述第二签名值模型为:
s1 =k- H1(m1|| r1)·x;
其中,s1表示所述第二修订签名值,H1(m1|| r1)表示所述修订标准哈希值,x表示所述哈希私钥。
根据本发明提供的一种区块链数据更新方法,所述原始哈希值是基于如下步骤确定的:
基于原始密码消息和所述第一初始签名值,得到初始标准哈希值;
基于所述椭圆曲线对应的公开参数,以及哈希私钥,得到所述哈希私钥对应的哈希公钥;
基于所述哈希公钥、所述初始标准哈希值、所述第一初始签名值,以及所述第二初始签名值,得到所述原始哈希值。
根据本发明提供的一种区块链数据更新方法,所述原始哈希值是基于变色龙哈希模型确定的,所述变色龙哈希模型为:
h=r-y·H(m||r)-s·G;
其中,h表示所述原始哈希值,r表示所述第一初始签名值,y表示所述哈希公钥,s表示所述第二初始签名值,H(m||r)表示所述初始标准哈希值,G表示所述椭圆曲线的基点。
根据本发明提供的一种区块链数据更新方法,在修订区块链目标节点上的初始密码消息之前,还包括:
基于所述变色龙哈希模型,对所述原始哈希值进行验证,若验证通过,则修订所述区块链目标节点上的初始密码消息。
本发明还提供一种区块链数据更新装置,包括:
修订消息单元,用于基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;
修订签名单元,用于基于椭圆曲线,以及所述修订密码消息,修订所述区块链目标节点上的第一初始签名值和第二初始签名值,以使所述区块链目标节点上的当前哈希值与所述区块链目标节点的原始哈希值相同;
其中,所述原始哈希值是基于所述初始密码消息、所述第一初始签名值以及所述第二初始签名值确定的变色龙哈希值。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述区块链数据更新方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述区块链数据更新方法的步骤。
本发明提供的区块链数据更新方法、装置、电子设备和存储介质,基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;基于椭圆曲线,以及修订密码消息,修订区块链目标节点上的第一初始签名值和第二初始签名值,以使区块链目标节点上的当前哈希值与区块链目标节点的原始哈希值相同。由此可见,本发明实施例基于椭圆曲线进行区块链数据更新,相较于基于有限素域的乘法群的方案效率更高,即在同等哈希长度的条件下,椭圆曲线的安全度更高,且在同等安全的条件下,椭圆曲线所需的哈希长度更小。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的区块链数据更新方法的流程示意图;
图2是本发明提供的又一区块链数据更新方法的流程示意图;
图3是本发明提供的区块链数据更新装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
区块链是一个分布式的共享账本和数据库,具有不可篡改特点,但区块链不可篡改在保证数据安全的同时,还存在被滥用的风险。例如,某些非法消息被发送到区块链上的数据随着交易被发送到了链上,由于区块链的不可篡改性,导致无法删除该非法消息,进而造成数据泄露风险。目前,通常采用变色龙哈希函数变色龙哈希函数(chameleon hashfunction),计算变色龙哈希函数的碰撞,从而实现更新区块链上对应节点的数据。普通的哈希函数,如sha256哈希函数,任何人都无法寻找到另一条消息,与制定消息的哈希值相同,而对于变色龙哈希函数,如果掌握了陷门信息(即私钥),就能够轻易计算出变色龙哈希函数的碰撞。
目前,虽然有多种类型的变色龙哈希函数,但是,某些类型的变色龙哈希函数存在私钥泄漏的问题,例如通过修订算法对修订消息计算产生的新的变色龙随机数若被公开出来,其它人都可以基于恢复私钥的算法计算出变色龙哈希私钥。此外,某些类型的变色龙哈希函数则重视信息隐藏属性,此类变色龙哈希函数主要是为了实现“不可转发签名方案”。在不可转发签名方案中,一个强制定的验证者拥有变色龙哈希函数的私钥。当签名者专门为该验证者构造一条消息的签名后,该签名只能被该指定验证者所验证,而不能被其他第三方验证。因为该制定验证者可以通过变色龙哈希私钥篡改消息的内容,从而导致第三方不信赖验证者转发的消息和签名,但是该信息隐藏属性在某些应用场景如在可修订签名的场景中,只有制定的合法修订者拥有修订私钥,即拥有修订被签名消息的权利,即在可修订签名中,需要去除变色龙哈希函数的“消息隐藏属性”。例如,若要判定某条消息和签名是否是真实的,原理在于:假设签名者真正签署的原始消息为M1,如果制定验证者通过变色龙哈希函数伪造了一份假消息M2,使得M2与M1的哈希值相同,那么消息签名者就能基于M1与M2计算出M3,使得M3与M1和M2的哈希值、签名相同。因此,如果指定验证者出示了假消息M2,那么签名者就可以出示假消息M3,但是如果验证者出示了真实消息M1,那么签名者就不能否认M1,即能满足以上要求的变色龙哈希函数被称为具有消息隐藏属性。但该消息隐藏属性在另一些应用场景中就变成了一种缺点,例如假设原始消息为M1,当合法修订者进行修订操作,将修订后的消息改变为M2(M2与M1的哈希值、签名相同)后,其他任何人都能基于M1和M2计算出新的消息M3,使得M3与M2和M1的哈希值和签名相同。因此,在可修订签名中,应该去掉变色龙哈希函数的“消息隐藏属性”,而重视消隐属性(消除信息的隐藏属性)。
另外,某些类型的变色龙哈希函数,虽然能同时满足抗密钥泄漏和消隐两个属性,但需要依赖一种定制的基于身份标识的密码体系,而基于身份标识的密码体系需要有一个可信的第三方机构(密钥生成中心KGC,负责验证用户身份标识,生成和分发用户私钥)。因此,依赖基于身份标识密码体系的变色龙哈希函数只适用于有可信第三方机构参与的场景,而且需要先建设并维护一个密钥生成中信KGC,其适用场景有限,且使用成本更高。
对此,本发明提供一种区块链数据更新方法。图1是本发明提供的区块链数据更新方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤110、基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息。
具体地,区块链是一个分布式的共享账本和数据库,具有不可篡改特点,但区块链不可篡改在保证数据安全的同时,还存在被滥用的风险。例如,某些消息(如个人隐私、商业秘密、非法消息等)被发送到区块链上的数据随着交易被发送到了链上,由于区块链的不可篡改性,若要删除该消息需要删除整条区块链数据,代价较大例,若不删除该消息,会造成数据泄露风险。其中,区块链监管节点用于监控区块链各节点对应的初始密码消息中是否存在非法内容,若是,则会在数据更新请求中携带非法内容的信息,以供删除或修改初始密码消息中的非法内容,进而得到修订密码消息。例如,当区块链监管节点发现初始密码消息m中含有部分非法信息,就可以通过哈希私钥删除初始密码消息m中的非法信息,生成修订密码消息m1。其中,区块链监管节点可以为私有链场景中的监控节点,也可以为联盟链场景中的监控节点,本实施例对此不作具体限定。
步骤120、基于椭圆曲线,以及修订密码消息,修订区块链目标节点上的第一初始签名值和第二初始签名值,以使区块链目标节点上的当前哈希值与区块链目标节点的原始哈希值相同;
其中,原始哈希值是基于初始密码消息、第一初始签名值以及第二初始签名值确定的变色龙哈希值。
具体地,由于椭圆曲线是基于离散对数进行加密,从而在基于公开的参数(如原始哈希数组和修订哈希数组),无法逆推得到哈希私钥,从而避免了传统变色龙哈希函数中基于公开的变色龙随机数计算出变色龙哈希私钥导致私钥泄漏的问题。此外,相较于传统的基于乘法群上的离散对数进行RSA加密,需要使用2048位的私钥,并且计算出的哈希值长度也为2048位,本发明实施例采用的椭圆曲线计算得到的哈希密钥、当前哈希值和原始哈希值长度大幅减少,如若采用256比特的椭圆曲线,则计算得到的哈希密钥、当前哈希值和原始哈希值长度可降低至256位。此外,通常椭圆曲线密钥提供的安全强度与1024比特RSA密钥相当,由此可见,基于椭圆曲线不仅可以大幅降低密钥长度,提高加解密速度快,节省能源、带宽和存储空间,而且还能保证与1024比特RSA密钥相当的安全强度。
私钥拥有者在修订密码消息后,基于椭圆曲线,以及修订密码消息,可以修订区块链目标节点上的第一初始签名值和第二初始签名值,以使区块链目标节点上的当前哈希值与区块链目标节点的原始哈希值相同。需要说明的是,由于变色龙哈希函数与大多数哈希函数不同,其含有一个陷门密钥,对于陷门密钥的拥有者来说,可以通过修订随机数(如签名值),使得当前哈希值与原始哈希值相同。因此,目标节点在经过修订初始密码消息之后,还可以保证当前哈希值与原始哈希值相同,从而可以避免与目标节点相关联的其它区块数据发生改变,完成数据更新。需要说明的是,目标节点上存储的是经变色龙哈希计算得到的哈希值。
由此可见,本发明实施例基于椭圆曲线群构造,相较于基于有限素域的乘法群的方案效率更高,即在同等哈希长度的条件下,椭圆曲线的安全度更高,且在同等安全的条件下,椭圆曲线所需的哈希长度更小。此外,由于椭圆曲线使用的是256位曲线的变色龙哈希私钥,sha256 或 SM4标准哈希函数,进而生成了256位的变色龙哈希值,可以被基于256位曲线的签名算法,如ECDSA、SM2所签名,从而可以更方便地适配工业界常用的密码学算法。
此外,本发明实施例满足抗密钥泄漏性,基于椭圆曲线上的离散对数难题,使得其它人无法从公开的原始变色龙哈希数组和修订变色龙哈希数组中,计算出哈希私钥。同时,当原始变色龙哈希数组和修订变色龙哈希数组公开后,其它人无法计算出一个能通过验证的伪造变色龙哈希数组,即该变色龙哈希函数具有消隐属性。本发明实施例不依赖双线性配对技术,各步骤算法的计算开销主要来自于椭圆曲线上的标量乘法运算,与基于乘法群的指数运算相比,同样的安全性下,效率更高,哈希密钥和哈希值的长度更短。同时,不依赖定制身份和身份系统,具有更广泛的应用场景。
本发明实施例提供的区块链数据更新方法,基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;基于椭圆曲线,以及修订密码消息,修订区块链目标节点上的第一初始签名值和第二初始签名值,以使区块链目标节点上的当前哈希值与区块链目标节点的原始哈希值相同。由此可见,本发明实施例基于椭圆曲线进行区块链数据更新,相较于基于有限素域的乘法群的方案效率更高,即在同等哈希长度的条件下,椭圆曲线的安全度更高,且在同等安全的条件下,椭圆曲线所需的哈希长度更小。
基于上述实施例,步骤120具体包括:
基于椭圆曲线,以及原始哈希值,得到第一修订签名值;
基于椭圆曲线,修订密码消息,以及第一修订签名值,得到第二修订签名值。
具体地,基于椭圆曲线,可以确定对应的公开参数(p,a,b,G,n,h)。基于椭圆曲线的公开参数,以及原始哈希值,即可确定第一修订签名值。基于椭圆曲线,修订密码消息,以及第一修订签名值,得到第二修订签名值。由于修订密码消息是对目标节点的初始密码消息进行了更新,为了使得数据更新后目标节点的当前哈希值与原始哈希值相同,需要同步更新第一初始签名值和第二初始签名值,从而得到第一修订签名值和第二修订签名值,并将第一修订签名值和第二修订签名值更新到目标节点交易中,完成数据更新,而且不会影响目标节点以外其它节点的数据状态。
基于上述任一实施例,基于椭圆曲线,以及原始哈希值,得到第一修订签名值,具体包括:
基于椭圆曲线的点群阶,确定椭圆曲线的随机数;
基于原始哈希值,椭圆曲线的基点,以及椭圆曲线的随机数,得到第一修订签名值。
具体地,基于椭圆曲线的公开参数(p,a,b,G,n,h)中的点群阶n,随机选择椭圆曲线点群阶n的取值范围内的一个随机数k,k∈(0,n-1)。基于原始哈希值,椭圆曲线的基点,以及椭圆曲线的随机数,就可对第一初始签名值进行修订,得到第一修订签名值。
基于上述任一实施例,第一修订签名值是基于第一签名值模型确定的,第一签名值模型为:
r1 =h+k·G;
其中,r1表示第一修订签名值,h表示原始哈希值,k表示椭圆曲线的随机数,G表示椭圆曲线的基点。
具体地,初始密码消息对应的初始变色龙哈希数组为(m, h, r, s, pk),其中,m表示初始密码消息,h表示原始哈希值,r表示第一初始签名值,s表示第二初始签名值,pk表示哈希公钥。修订初始变色龙哈希数组中的m后,若要使得数组中的h值不变,则需要修订r和s。其中,r采用第一签名值模型进行修订,即基于原始哈希值、椭圆曲线的随机数以及椭圆曲线的基点确定第一修订签名值r1。
基于上述任一实施例,基于椭圆曲线,修订密码消息,以及第一修订签名值,得到第二修订签名值,具体包括:
基于修订密码消息和第一修订签名值,对初始标准哈希值进行更新,得到修订标准哈希值;
基于椭圆曲线的随机数、修订标准哈希值以及哈希私钥,得到第二修订签名值。
具体地,由于修订密码消息是对目标节点的初始密码消息进行了更新,为了使得数据更新后目标节点的当前哈希值与原始哈希值相同,需要同步更新第一初始签名值和第二初始签名值,从而得到第一修订签名值和第二修订签名值,并将第一修订签名值和第二修订签名值更新到目标节点交易中,完成数据更新,而且不会影响目标节点以外其它节点的数据状态。因此,本发明实施例基于修订密码消息和第一修订签名值,对初始标准哈希值进行更新,得到修订标准哈希值,并且基于椭圆曲线的随机数、修订标准哈希值以及哈希私钥,得到第二修订签名值,从而将第二修订签名值更新至目标节点的交易数据中,实现数据更新,同时不影响目标节点以外的其它节点。
基于上述任一实施例,第二修订签名值是基于第二签名值模型确定的,第二签名值模型为:
s1 =k- H1(m1|| r1)·x;
其中,s1表示第二修订签名值,H1(m1|| r1)表示修订标准哈希值,x表示哈希私钥。
具体地,初始密码消息对应的初始变色龙哈希数组为(m, h, r, s, pk),修订初始变色龙哈希数组中的m后,若要使得数组中的h值不变,则需要修订r和s。其中,s采用第二签名值模型进行修订,即基于修订标准哈希值、哈希私钥、椭圆曲线的随机数以及修订标准哈希值确定第二修订签名值s1。其中,修订标准哈希值是基于修订密码消息m1和第一修订签名值r1经过标准哈希运算(如SM3算法或sha256算法)得到的。
在对第一初始签名值和第二初始签名值进行修订之后,得到修订变色龙哈希数组为(m1, h, r1, s1, pk),该修订变色龙哈希数组与初始变色龙哈希数组(m, h, r, s,pk)相比,改变了初始密码消息、第一初始签名值和第二初始签名值,但变色龙哈希值都是h,从而使得私钥的拥有者可以修订消息,使修订密码消息的变色龙哈希与初始密码消息的变色龙哈希一致,即赋予了私钥拥有者修订消息的能力。
基于上述任一实施例,原始哈希值是基于如下步骤确定的:
基于原始密码消息和第一初始签名值,得到初始标准哈希值;
基于椭圆曲线对应的公开参数,以及哈希私钥,得到哈希私钥对应的哈希公钥;
基于哈希公钥、初始标准哈希值、第一初始签名值,以及第二初始签名值,得到原始哈希值。
具体地,根据椭圆曲线的公开参数,随机选择椭圆曲线上的一个点r作为第一初始签名值,并随机选择一个随机数s作为第二初始签名值,其中s∈(0,n-1)。根据r、s、公开参数和哈希公钥pk,可以通过共识计算出原始哈希值h,计算公式如下:
h=r- y·H (m||r)-s·G;
其中,r表示第一初始签名值,s表示第二初始签名值,y表示哈希公钥,H (m||r)表示初始标准哈希值,G表示椭圆曲线的基点。
需要说明的是,根据椭圆曲线的公开参数,选择一个随机数x作为哈希密钥sk,即:sk = x,其中sk∈(0,n-1),然后计算哈希公钥pk = y = x*G。
基于上述任一实施例,原始哈希值是基于变色龙哈希模型确定的,变色龙哈希模型为:
h=r-y·H(m||r)-s·G;
其中,h表示原始哈希值,r表示第一初始签名值,y表示哈希公钥,s表示第二初始签名值,H(m||r)表示初始标准哈希值,G表示椭圆曲线的基点。
基于上述任一实施例,在修订区块链目标节点上的初始密码消息之前,还包括:
基于变色龙哈希模型,对原始哈希值进行验证,若验证通过,则修订区块链目标节点上的初始密码消息。
具体地,对原始哈希值的验证过程其实就是验证者收到签发者发送的初始变色龙哈希数组后,根据变色龙哈希模型确定初始变色龙哈希数组无误。具体验证过程为:输入由初始密码消息m、原始哈希值h、第一初始签名值r,第二初始签名值s组成的数组(m, h, r,s, pk),并通过如下公式计算验证:
h=r-y·H(m||r)-s·G;
其中,若等式不成立,则返回0,表示验证未通过,则不对初始密码消息进行修订;否则,返回1,表示验证通过,则可以对初始密码消息进行修订。
需要说明的是,若原始哈希值通过验证,则上述修订变色龙哈希数组(m1, h, r1,s1, pk)也可以通过变色龙哈希模型的验证,即输入修订变色龙哈希数组(m1, h, r1, s1,pk),h= r1-y·H1(m1|| r1)- s1·G等式成立。
基于上述任一实施例,如图2所示,区块链数据更新的方法包括如下步骤:
首先,对系统进行初始化,选择椭圆曲线群E(Fp),设置该椭圆曲线的公开参数。
接着,根据椭圆曲线的公开参数,生成哈希密钥sk,和对应的哈希公钥pk。
然后,基于第一初始签名值r, 第二初始签名值s,初始密码消息m,哈希公钥pk以及椭圆曲线的公开参数,通过共识计算得到原始哈希值h,并将初始变色龙哈希数组(m, h,r, s,pk)作为输出结果公开。
随即,基于公开的初始变色龙哈希数组(m, h, r, s,pk),通过变色龙哈希模型验证该数组否是合法的变色龙哈希,输出结果为0或1。其中,0表示未通过验证,1表示验证通过。
最后,根据私钥sk,修订密码消息m′,和初始变色龙哈希数组(m, h, r, s, pk),计算出第一修订签名值r1和第二修订签名值s1,组成一个新变色龙哈希数组即修订变色龙哈希数组(m1, h, r1, s1, pk),该哈希数组可以通过变色龙哈希模型的验证,即同样是合法的变色龙哈希数组,而且修订变色龙哈希数组(m1, h, r1, s1, pk)中的h值与初始变色龙哈希数组(m, h, r, s, pk)中的h值相同。
由此可见,本发明实施例通过改变初始密码消息,第一初始签名值和第二初始签名值,使得计算得到的当前哈希值与原始哈希值相同,即实现了私钥拥有者可以修订初始密码消息,进而更新区块链数据。
下面对本发明提供的区块链数据更新装置进行描述,下文描述的区块链数据更新装置与上文描述的区块链数据更新方法可相互对应参照。
基于上述任一实施例,如图3所示,本发明还提供一种区块链数据更新装置,该装置包括:
修订消息单元310,用于基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;
修订签名单元320,用于基于椭圆曲线,以及所述修订密码消息,修订所述区块链目标节点上的第一初始签名值和第二初始签名值,以使所述区块链目标节点上的当前哈希值与所述区块链目标节点的原始哈希值相同;
其中,所述原始哈希值是基于所述初始密码消息、所述第一初始签名值以及所述第二初始签名值确定的变色龙哈希值。
基于上述任一实施例,所述修订签名单元320,具体包括:
第一修订单元,用于基于所述椭圆曲线,以及所述原始哈希值,得到第一修订签名值;
第二修订单元,用于基于所述椭圆曲线,所述修订密码消息,以及所述第一修订签名值,得到第二修订签名值。
基于上述任一实施例,所述第一修订单元,具体包括:
随机数确定单元,用于基于所述椭圆曲线的点群阶,确定椭圆曲线的随机数;
第一计算单元,用于基于所述原始哈希值,所述椭圆曲线的基点,以及所述椭圆曲线的随机数,得到第一修订签名值。
基于上述任一实施例,所述第一修订签名值是基于第一签名值模型确定的,所述第一签名值模型为:
r1=h+k·G;
其中,r1表示所述第一修订签名值,h表示所述原始哈希值,k表示所述椭圆曲线的随机数,G表示所述椭圆曲线的基点。
基于上述任一实施例,所述第二修订单元,具体包括:
标准哈希值确定单元,用于基于所述修订密码消息和所述第一修订签名值,对所述初始标准哈希值进行更新,得到修订标准哈希值;
第二计算单元,用于基于所述椭圆曲线的随机数、所述修订标准哈希值以及哈希私钥,得到第二修订签名值。
基于上述任一实施例,所述第二修订签名值是基于第二签名值模型确定的,所述第二签名值模型为:
s1=k- H1(m1|| r1)·x;
其中,s1表示所述第二修订签名值,H1(m1|| r1)表示所述修订标准哈希值,x表示所述哈希私钥。
基于上述任一实施例,该装置还包括原始哈希值确定单元,用于确定所述原始哈希值,所述原始哈希值确定单元具体包括:
初始标准哈希值确定单元,用于基于所述原始密码消息和所述第一初始签名值,得到初始标准哈希值;
哈希公钥确定单元,用于基于所述椭圆曲线对应的公开参数,以及哈希私钥,得到所述哈希私钥对应的哈希公钥;
原始哈希值确定子单元,用于基于所述哈希公钥、所述初始标准哈希值、所述第一初始签名值,以及所述第二初始签名值,得到所述原始哈希值。
基于上述任一实施例,所述原始哈希值是基于变色龙哈希模型确定的,所述变色龙哈希模型为:
h=r-y·H(m||r)-s·G;
其中,h表示所述原始哈希值,r表示所述第一初始签名值,y表示所述哈希公钥,s表示所述第二初始签名值,H(m||r)表示所述初始标准哈希值,G表示所述椭圆曲线的基点。
基于上述任一实施例,该装置还包括验证单元,用于在修订区块链目标节点上的初始密码消息之前,基于所述变色龙哈希模型,对所述原始哈希值进行验证,若验证通过,则修订所述区块链目标节点上的初始密码消息。
图4是本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行区块链数据更新方法,该方法包括:基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;基于椭圆曲线,以及所述修订密码消息,修订所述区块链目标节点上的第一初始签名值和第二初始签名值,以使所述区块链目标节点上的当前哈希值与所述区块链目标节点的原始哈希值相同;其中,所述原始哈希值是基于所述初始密码消息、所述第一初始签名值以及所述第二初始签名值确定的变色龙哈希值。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法所提供的区块链数据更新方法,该方法包括:基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;基于椭圆曲线,以及所述修订密码消息,修订所述区块链目标节点上的第一初始签名值和第二初始签名值,以使所述区块链目标节点上的当前哈希值与所述区块链目标节点的原始哈希值相同;其中,所述原始哈希值是基于所述初始密码消息、所述第一初始签名值以及所述第二初始签名值确定的变色龙哈希值。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的区块链数据更新方法,该方法包括:基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;基于椭圆曲线,以及所述修订密码消息,修订所述区块链目标节点上的第一初始签名值和第二初始签名值,以使所述区块链目标节点上的当前哈希值与所述区块链目标节点的原始哈希值相同;其中,所述原始哈希值是基于所述初始密码消息、所述第一初始签名值以及所述第二初始签名值确定的变色龙哈希值。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种区块链数据更新方法,其特征在于,包括:
基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;
基于椭圆曲线,以及所述修订密码消息,修订所述区块链目标节点上的第一初始签名值和第二初始签名值,以使所述区块链目标节点上的当前哈希值与所述区块链目标节点的原始哈希值相同;
其中,所述原始哈希值是基于所述初始密码消息、所述第一初始签名值以及所述第二初始签名值确定的变色龙哈希值;
所述基于椭圆曲线,以及所述修订密码消息,修订所述目标节点上的第一初始签名值和第二初始签名值,具体包括:
基于所述椭圆曲线,以及所述原始哈希值,得到第一修订签名值;
基于所述椭圆曲线,所述修订密码消息,以及所述第一修订签名值,得到第二修订签名值;
所述基于所述椭圆曲线,以及所述原始哈希值,得到第一修订签名值,具体包括:
基于所述椭圆曲线的点群阶,确定椭圆曲线的随机数;
基于所述原始哈希值,所述椭圆曲线的基点,以及所述椭圆曲线的随机数,得到第一修订签名值;
其中,所述第一修订签名值是基于第一签名值模型确定的,所述第一签名值模型为:
r′=h+k·G;
其中,r′表示所述第一修订签名值,h表示所述原始哈希值,k表示所述椭圆曲线的随机数,G表示所述椭圆曲线的基点。
2.根据权利要求1所述的区块链数据更新方法,其特征在于,所述基于所述椭圆曲线,所述修订密码消息,以及所述第一修订签名值,得到第二修订签名值,具体包括:
基于所述修订密码消息和所述第一修订签名值,对初始标准哈希值进行更新,得到修订标准哈希值;
基于所述椭圆曲线的随机数、所述修订标准哈希值以及哈希私钥,得到第二修订签名值;
其中,所述第二修订签名值是基于第二签名值模型确定的,所述第二签名值模型为:
s′=k- H′(m′||r′)·x;
其中,s′表示所述第二修订签名值,H′(m′||r′)表示所述修订标准哈希值,x表示所述哈希私钥。
3.根据权利要求1所述的区块链数据更新方法,其特征在于,所述原始哈希值是基于如下步骤确定的:
基于所述初始密码消息和所述第一初始签名值,得到初始标准哈希值;
基于所述椭圆曲线对应的公开参数,以及哈希私钥,得到所述哈希私钥对应的哈希公钥;
基于所述哈希公钥、所述初始标准哈希值、所述第一初始签名值,以及所述第二初始签名值,得到所述原始哈希值。
4.根据权利要求3所述的区块链数据更新方法,其特征在于,所述原始哈希值是基于变色龙哈希模型确定的,所述变色龙哈希模型为:
h=r-y·H(m||r)-s·G;
其中,h表示所述原始哈希值,r表示所述第一初始签名值,y表示所述哈希公钥,s表示所述第二初始签名值,H(m||r)表示所述初始标准哈希值,G表示所述椭圆曲线的基点。
5.根据权利要求4所述的区块链数据更新方法,其特征在于,在修订区块链目标节点上的初始密码消息之前,还包括:
基于所述变色龙哈希模型,对所述原始哈希值进行验证,若验证通过,则修订所述区块链目标节点上的初始密码消息。
6.一种区块链数据更新装置,其特征在于,包括:
修订消息单元,用于基于区块链监管节点检测到的数据更新请求,修订区块链目标节点上的初始密码消息,得到修订密码消息;
修订签名单元,用于基于椭圆曲线,以及所述修订密码消息,修订所述区块链目标节点上的第一初始签名值和第二初始签名值,以使所述区块链目标节点上的当前哈希值与所述区块链目标节点的原始哈希值相同;
其中,所述原始哈希值是基于所述初始密码消息、所述第一初始签名值以及所述第二初始签名值确定的变色龙哈希值;
所述修订签名单元,具体包括:
第一修订单元,用于基于所述椭圆曲线,以及所述原始哈希值,得到第一修订签名值;
第二修订单元,用于基于所述椭圆曲线,所述修订密码消息,以及所述第一修订签名值,得到第二修订签名值;
所述第一修订单元,具体包括:
随机数确定单元,用于基于所述椭圆曲线的点群阶,确定椭圆曲线的随机数;
第一计算单元,用于基于所述原始哈希值,所述椭圆曲线的基点,以及所述椭圆曲线的随机数,得到第一修订签名值;
所述第一修订签名值是基于第一签名值模型确定的,所述第一签名值模型为:
r′=h+k·G;
其中,r′表示所述第一修订签名值,h表示所述原始哈希值,k表示所述椭圆曲线的随机数,G表示所述椭圆曲线的基点。
7.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述区块链数据更新方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述区块链数据更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110039407.5A CN112380584B (zh) | 2021-01-13 | 2021-01-13 | 区块链数据更新方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110039407.5A CN112380584B (zh) | 2021-01-13 | 2021-01-13 | 区块链数据更新方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112380584A CN112380584A (zh) | 2021-02-19 |
CN112380584B true CN112380584B (zh) | 2021-04-16 |
Family
ID=74591063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110039407.5A Active CN112380584B (zh) | 2021-01-13 | 2021-01-13 | 区块链数据更新方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112380584B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134069A (zh) * | 2021-03-29 | 2022-09-30 | 华为技术有限公司 | 区块链编辑的方法和区块链节点 |
CN114614992B (zh) * | 2022-03-11 | 2023-10-13 | 深圳市名竹科技有限公司 | 签名值输出及验证方法、装置、计算机设备、存储介质 |
CN115037538B (zh) * | 2022-06-07 | 2024-02-23 | 中国银行股份有限公司 | 一种信息处理方法及装置 |
CN117081744B (zh) * | 2023-10-17 | 2024-01-26 | 北京密码云芯科技有限公司 | 基于椭圆曲线的签名处理方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109417479A (zh) * | 2016-05-23 | 2019-03-01 | 埃森哲环球解决方案有限公司 | 密码逻辑可重写区块链 |
CN110457297A (zh) * | 2019-07-10 | 2019-11-15 | 北京航空航天大学 | 基于多授权中心属性加密的可编辑区块链系统及方法 |
CN111460497A (zh) * | 2020-03-30 | 2020-07-28 | 中南大学 | 一种可编辑区块链系统 |
CN111641496A (zh) * | 2020-05-29 | 2020-09-08 | 深圳市网心科技有限公司 | 区块链数据更新方法、装置、设备、系统及可读存储介质 |
CN111641712A (zh) * | 2020-05-29 | 2020-09-08 | 深圳市网心科技有限公司 | 区块链数据更新方法、装置、设备、系统及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11025430B2 (en) * | 2018-12-20 | 2021-06-01 | International Business Machines Corporation | File provenance database system |
CN110061850B (zh) * | 2019-04-24 | 2021-04-23 | 电子科技大学 | 变色龙哈希函数的碰撞计算方法及可编辑区块链构造方法 |
CN110489422B (zh) * | 2019-08-23 | 2022-04-08 | 电子科技大学 | 区块链自动修复的方法 |
-
2021
- 2021-01-13 CN CN202110039407.5A patent/CN112380584B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109417479A (zh) * | 2016-05-23 | 2019-03-01 | 埃森哲环球解决方案有限公司 | 密码逻辑可重写区块链 |
CN110457297A (zh) * | 2019-07-10 | 2019-11-15 | 北京航空航天大学 | 基于多授权中心属性加密的可编辑区块链系统及方法 |
CN111460497A (zh) * | 2020-03-30 | 2020-07-28 | 中南大学 | 一种可编辑区块链系统 |
CN111641496A (zh) * | 2020-05-29 | 2020-09-08 | 深圳市网心科技有限公司 | 区块链数据更新方法、装置、设备、系统及可读存储介质 |
CN111641712A (zh) * | 2020-05-29 | 2020-09-08 | 深圳市网心科技有限公司 | 区块链数据更新方法、装置、设备、系统及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112380584A (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112380584B (zh) | 区块链数据更新方法、装置、电子设备和存储介质 | |
CN108989050B (zh) | 一种无证书数字签名方法 | |
US10846372B1 (en) | Systems and methods for trustless proof of possession and transmission of secured data | |
CN111835526B (zh) | 一种生成匿名凭证的方法及系统 | |
KR102372718B1 (ko) | 발행인 익명성 인증서 시스템을 위한 분산화된 그룹 서명 방법 | |
EP3529948B1 (en) | Composite digital signatures | |
CN111815321A (zh) | 交易提案的处理方法、装置、系统、存储介质和电子装置 | |
WO2019110399A1 (en) | Two-party signature device and method | |
KR20230024369A (ko) | 비밀 공유의 생성 | |
Odelu et al. | A secure and efficient ECC‐based user anonymity preserving single sign‐on scheme for distributed computer networks | |
WO2015004065A1 (en) | Electronic signature system | |
WO2022022924A1 (en) | Generating shared private keys | |
US20230237437A1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
EP4183105A1 (en) | Identifying denial-of-service attacks | |
KR20120091618A (ko) | 연쇄 해시에 의한 전자서명 시스템 및 방법 | |
JP2014515125A (ja) | データの暗号化のための方法、コンピュータ・プログラム、および装置 | |
US20200099521A1 (en) | Trusted ring | |
CN110278073B (zh) | 一种群组数字签名、验证方法及其设备和装置 | |
CN115174037B (zh) | 一种基于sm9签名的变色龙哈希函数的构造方法及装置 | |
CN110784318A (zh) | 群密钥更新方法、装置、电子设备、存储介质及通信系统 | |
Xu et al. | Sanitizable signature scheme with privacy protection for electronic medical data sharing | |
NL1043779B1 (en) | Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge | |
WO2023016729A1 (en) | Generating digital signature shares | |
CN112837064B (zh) | 联盟链的签名方法、签名验证方法及装置 | |
CN110572257B (zh) | 基于身份的数据来源鉴别方法和系统 |
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 |