CN110837659B - 带标签的私钥可更新数字签名方法及其在PoS区块链协议中的应用 - Google Patents

带标签的私钥可更新数字签名方法及其在PoS区块链协议中的应用 Download PDF

Info

Publication number
CN110837659B
CN110837659B CN201910917779.6A CN201910917779A CN110837659B CN 110837659 B CN110837659 B CN 110837659B CN 201910917779 A CN201910917779 A CN 201910917779A CN 110837659 B CN110837659 B CN 110837659B
Authority
CN
China
Prior art keywords
key
private key
signature
updating
algorithm
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
Application number
CN201910917779.6A
Other languages
English (en)
Other versions
CN110837659A (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201910917779.6A priority Critical patent/CN110837659B/zh
Publication of CN110837659A publication Critical patent/CN110837659A/zh
Application granted granted Critical
Publication of CN110837659B publication Critical patent/CN110837659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种带标签的私钥可更新数字签名方法,以及一种抵抗PoS区块链协议长距离攻击的方法。使用带标签的私钥可更新数字签名方法替换PoS区块链协议的签名方案,将签名的更新字段设置为区块链中的时间段信息,签名之后进行更新私钥,更新后的私钥无法在原时间段处重新签名,私钥的更新通过布隆过滤器完成,私钥的分发、签名和验证通过基于分层身份的数字签名算法实现。所有操作均可在实际中部署,实用性较强。

Description

带标签的私钥可更新数字签名方法及其在PoS区块链协议中 的应用
技术领域
本发明属于计算机技术与信息安全技术领域,涉及一种带标签的私钥可更新数字签名方法及其用于抵抗PoS区块链协议中长距离攻击的方法。
背景技术
股权证明(Proof of Stake,PoS)是区块链协议实现共识的一种机制。为了解决工作量证明(Proof of Work,PoW)机制中大量能源的消耗问题,PoS机制利用虚拟资源如用户的股权来实施区块发布者leader的选取进而实现共识,实现了共识过程的低耗能。然而基于PoS的区块链协议存在一些安全威胁如无利害攻击和长距离攻击等,PoS机制也因此在实际中并未得到广泛的应用。
在长距离攻击中,敌手可以在已有区块处产生分叉,造成区块链历史的改变。具体地,如果用户账户在当前阶段的股权较小,但在之前阶段拥有较大股权,敌手可以通过腐化这些账户的私钥并重新发布之前的区块,改写区块链的历史。实际中,相比股权较大的账户,股权较小甚至为0的账户安全保障更弱,为敌手腐化私钥提供了可能。长距离攻击可能导致双花等攻击,对于PoS区块链协议是一种严重的安全威胁。
发明内容
本发明的一个目的在于提供一种带标签的私钥可更新数字签名方法,采用带标签的私钥可更新数字签名替代PoS区块链协议中的签名,利用布隆过滤器(Bloom Filter,BF)和基于分级身份的数字签名(Hierarchical identity-based signature,HIBS)来构造。带标签的私钥可更新数字签名方法关注密钥泄露对已有签名的安全性影响,保证敌手即便腐化得到签名私钥也无法伪造对包含特定内容的消息的签名。具体地,公钥的有效期划分为多个周期,每个周期对应二叉树的一个叶节点,签名之后,一个周期内,在更新字段处进行私钥更新,新的私钥无法伪造对包含更新字段的消息的签名,而如果进入下一周期,则利用新的周期标签完成私钥的更新,新的私钥无法伪造对任意消息在之前周期的签名。其中,更新字段是待签名消息的一部分,位置和长度信息为预设值,可以根据具体方案进行设置,比如前缀或者消息整体。
为实现上述目的,本发明采用如下技术方案:
一种带标签的私钥可更新数字签名方法,包括以下步骤:
步骤1:密钥初始化,利用HIBS的密钥分发算法为第一个周期τ=0对应的节点分发私钥
Figure BDA0002216694010000028
之后为该周期内BF的每个位置身份i∈[l]分发私钥
Figure BDA0002216694010000029
并删除相应的
Figure BDA00022166940100000210
之后,为根节点至节点τ=0路径上节点的右侧兄弟节点分发私钥
Figure BDA00022166940100000211
步骤2:周期内密钥更新算法,利用更新字段str完成对当前私钥的更新;
步骤3:跨周期密钥更新算法,计算下一周期τ+1的私钥,并删除当前周期对应的私钥;
步骤4:签名算法,选取当前周期τ内位置身份
Figure BDA00022166940100000212
处的私钥对消息m做签名,输出签名σ;
步骤5:签名验证算法,利用公钥vk,验证消息m的签名σ。
优选地,步骤1具体包括:
1)首先运行({Hj}j∈[k],T)←Gen(l,k)生成布隆过滤器BF=(BFGen,BFUpdate,BFCheck),然后运行(mpk,skε)←HIBGen(1λ)产生HIBS密钥对;
2)对于任意的u∈[t],递归地计算
Figure BDA0002216694010000021
为初始标签τ=0t分发密钥
Figure BDA0002216694010000022
3)对于任意的u∈[l],计算
Figure BDA0002216694010000023
为BF的每个位置分发私钥,令
Figure BDA0002216694010000024
4)对于任意的u∈[t],递归地计算
Figure BDA0002216694010000025
Figure BDA0002216694010000026
5)最终,私钥为sk={T,skbloom,skupdate},公钥为vk={mpk,{Hj}j∈[k]}。
优选地,步骤2具体包括:
1)计算T′=Update({Hj}j∈[k],T,str),更新布隆过滤器状态位,其中str为更新字段;
2)对于任意的u∈[l],更新私钥为
Figure BDA0002216694010000027
3)令sk′bloom={sk′τ|u,τ}u∈[l],更新后的私钥为sk′=(T′,sk′bloom,skupdate)。
优选地,步骤3具体包括:
1)重置T=0l
2)然后利用skupdate中的密钥和HIBDel算法计算标签τ+1对应的密钥skτ+1
3)对于任意的对于任意的u∈[l],计算skτ+1|u=HIBDel(skτ+1,u),为BF的每个位置身份分发私钥;
4)为根节点至节点τ+1路径上节点的右侧兄弟节点分发私钥,并将这些私钥加入到更新的sk′update中,并删除根节点至节点τ+1路径上节点对应的私钥;
5)令sk′bloom={sk′τ+1|u,τ+1}u∈[l],更新后的私钥为sk′=(T,sk′bloom,sk′update)。
优选地,步骤4具体包括:
1)系统预设定消息的更新字段,包括位置信息和长度信息;
2)检测BF.Check({Hj}j∈[k],T,str)是否等于1,其中字符串str为消息m的更新字段,如果等于1,则签名失败,输出⊥。否则,挑选一个随机的
Figure BDA0002216694010000031
满足
Figure BDA0002216694010000032
Figure BDA0002216694010000033
3)计算
Figure BDA0002216694010000034
4)输出对消息m的签名
Figure BDA0002216694010000035
优选地,步骤5具体包括:
验证
Figure BDA0002216694010000036
是否成立,其中字符串str为消息m的更新字段,如果成立,则签名有效,输出“1”,否则输出“0”。
一种带标签的私钥可更新数字签名系统,包括存储器和处理器,该存储器存储计算机程序,该程序被配置为由该处理器执行,该程序包括用于执行上述方法中各步骤的指令。
本发明的另一个目的在于提出一种抵抗PoS区块链协议中长距离攻击的方法,利用带标签的私钥可更新数字签名方法解决PoS区块链协议长距离攻击问题。具体地,将更新字段设置为区块链中的时间段信息,签名之后进行更新私钥,新的私钥无法在原时间段处重新签名,因此,即便私钥发生了泄露,敌手也无法在之前时间段重新发布区块。
本发明提出的一种抵抗PoS区块链协议中长距离攻击的方法,其步骤包括:
在PoS的区块链协议中,区块发布者在当前时间段slot处发布区块时,利用上述带标签的私钥可更新数字签名方法对区块内容m做签名,之后进入下一个时间段,其中区块内容m包括当前时间段slot、交易信息和当前区块状态等信息;
对于周期内的密钥更新,将slot部分作为更新字段,签名之后执行密钥更新操作,更新后的密钥将无法再在相同的slot处做签名,保证了敌手无法更改区块链的历史;
对于跨周期的密钥更新,当BF的错误率达到上界时,进入下一周期,完成密钥更新,而验证者则通过记录每一个签名者的签名次数来维护签名者所处的正确周期,更新后的密钥将无法再在之前的周期做签名,保证了敌手无法更改区块链的历史。
本发明基于布隆过滤器与基于分级身份的数字签名,提供在更新字段处的密钥更新功能,保证敌手即便获取私钥仍然无法伪造对包含更新字段消息的签名,具体地包括以下两个重要的方面:
一、带标签的私钥可更新数字签名方案的构造
本发明由系统建立Setup、周期内更新UpdateStr、跨周期更新UpdateTag、签名Sign和验证Verify五个算法组成,安全性基于HIBS的安全性。
该签名方案具备以下性质:1)可以实现在消息任意字段的密钥更新;2)密钥更新过程中只需更新私钥,无需更新公钥,更符合实际应用场景;3)基于已有工具和已有密码方案,可实际部署。
二、将带标签的私钥可更新数字签名方案应用到基于PoS的区块链协议中
带标签的私钥可更新数字签名可以用来在基于PoS的区块链协议中发布区块,通过在区块消息中的时间段处做密钥更新,能够抵抗密钥泄露带来的长距离攻击。
附图说明
图1是带标签的私钥可更新数字签名方法的示例图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下面通过具体实施例,对本发明的技术方案做进一步说明。
一、符号说明
λ代表安全参数,[n]表示整数集合{1,...,n},∩和∪分别代表集合求交集、求并集运算符,a|b表示两个字符串a和b的级联。对于任意的数组T∈{0,1}n,用T[i](i≤n)代表T的第i个元素。
二、布隆过滤器
布隆过滤器BF用来检索一个元素是否在一个集合S中。具体地,如果元素s满足s∈S,则BF输出“1”,否则以较大的概率输出“0”。布隆过滤器由BFGen、BFUpdate和BFCheck三个算法组成:
·BFGen(l,k):输入两个整数l和k,算法首先生成k个独立的哈希函数H1,...,Hk,其中Hj:U→[l](j∈[k])。定义H={Hj}j∈[k],T=0l(T是一个初始长为l比特的全零向量)。输出(H,T)。
·BFUpdate(H,T,u):输入H={Hi}i∈[k],T∈{0,1}l和u∈U(U代表元素全集),对于任意的i∈[k]更新T[Hi(u)]=1,返回新的状态向量T。
·BFCheck(H,T,u):输入H={Hi}i∈[k],T∈{0,1}l和u∈U,算法返回b=∩i∈[k]T[Hi(u)]。
对于元素集合S={s1,...,sn}∈Un,首先运行(H,T1)←BFGen(l,k),然后对于i∈[n]定义Ti+1=BFUpdate(H,Ti,si)。BF具有如下性质:(1)对于任意s∈S有Pr[BFCheck(H,Tn,s)=1]=1,即,对于集合中包含的元素,BL输出1;(2)对于任意
Figure BDA0002216694010000051
有Pr[BFCheck(H,Tn,s)=1]≈(1-ekn/l)k,即,对于不属于集合的元素,BL存在一定的错误率pr=(1-ekn/l)k
三、基于分级身份的数字签名
设基于分级身份的数字签名HIBS中树的深度为t,身份空间为D=D1×...×Dt={0,1}×...×{0,1},其中根节点编码为空,其左子节点编码为0,右子节点编码为1。类似的,节点0的左子节点编码为00,右子节点编码为01,进而完成整棵树的节点编码。HIBS由参数生成算法HIBGen、密钥分发算法HIBDel、签名算法HIBSign和验证算法HIBVerify组成:
·HIBGen(1λ):输入安全参数λ,算法输出主公钥mpk和树根节点对应的主私钥skε
·HIBDele(skτ,d):输入身份τ∈D1×...×Di-1对应的密钥skτ,和身份d∈Di,算法为身份τ|d的分发密钥skτ|d
·HIBSign(skτ,m):输入密钥skτ和消息m,输出对m的签名σ。
·HIBVerify(mpk,τ,m,σ):输入身份τ,消息m,签名σ和验证公钥mpk,如果签名有效则算法输出1,否则输出0。
四、带标签的私钥可更新数字签名方法
在本发明中,带标签的私钥可更新数字签名方法基于BF和HIBS。方案描述过程中,假设更新字段的位置和长度是系统预先设定的。
设BF=(BFGen,BFUpdate,BFCheck)为布隆过滤器,HIBS=(HIBGen,HIBDel,HIBSign,HIBVerify)是深度为t+1的基于分级身份的数字签名方案,二进制字符串τ代表周期标签。带标签的私钥可更新数字签名方案由系统建立算法Setup、周期内密钥更新UpdateStr、跨周期密钥更新UpdateTag、签名算法Sign和验证算法Verify组成:
·Setup(1λ,l,k,t):首先运行({Hj}j∈[k],T)←BFGen(l,k)生成布隆过滤器,然后运行(mpk,skε)←HIBGen(1λ)产生密钥对。之后递归地运行以下算法为初始标签τ=0t分发密钥:
对于任意的u∈[t],计算
Figure BDA0002216694010000061
进而运行以下算法为BF的每个位置分发私钥:
对于任意的u∈[l],计算
Figure BDA0002216694010000062
然后对于任意的u∈[t],递归地计算
Figure BDA0002216694010000063
Figure BDA0002216694010000064
最后令私钥为sk={T,skbloom,skupdate},公钥为vk={mpk,{Hj}j∈[k]}。
·UpdateStr(sk,str):输入私钥sk={T,skbloom,skupdate}和更新字符串str,其中sk为标签τ对应的密钥,算法首先计算T′=Update({Hj}j∈[k],T,str)。之后对于所有的u∈[l],定义
Figure BDA0002216694010000065
其中T′[u]代表向量T′的第u比特。最终,令sk′bloom={sk′τ|u,τ}u∈[l],算法返回更新后的私钥sk′=(T′,sk′bloom,skupdate)。
·UpdateTag(sk,τ):输入私钥sk={T,skbloom,skupdate}和标签τ,其中sk为标签τ对应的密钥,算法首先重置T=0l,然后利用skupdate中的密钥和HIBDel算法计算标签τ+1对应的密钥skτ+1,并运行以下算法为BF的每一个位置身份分发私钥:
对于任意的u∈[l],计算skτ+1|u=HIBDel(skτ+1,u)。
最后,算法为根节点至节点τ+1路径上节点的右侧兄弟节点分发私钥,并将这些私钥加入到更新的sk′update中,之后删除根节点至节点τ+1路径上节点对应的私钥。令sk′bloom={sk′τ+1|u,τ+1}u∈[l],算法返回sk′=(T,sk′bloom,sk′update)。
·Sign(sk,m):输入私钥sk={T,skbloom,skupdate}和消息m,其中sk为标签τ对应的密钥,其中m的更新字段为字符串str。算法首先检查是否BF.Check({Hj}j∈[k],T,str)=1,如果是则输出⊥。否则,注意到BF.Check({Hj}j∈[k],T,str)=0意味着至少存在一个ij∈{i1,...,ik}满足
Figure BDA0002216694010000071
其中ij∈{Hj(str):j∈[k]}。因此挑选一个随机的ij*,对应位置的私钥为
Figure BDA0002216694010000072
Figure BDA0002216694010000073
并计算
Figure BDA0002216694010000074
最终,算法输出对消息m的签名为
Figure BDA0002216694010000075
·Verify(vk,m,σ):输入公钥vk=(mpk,{Hj}j∈[k]),更新字段为str的消息m和签名
Figure BDA0002216694010000076
算法验证以下条件是否成立:
Figure BDA0002216694010000077
如果成立,则算法输出“1”(接受),否则输出“0”(拒绝)。
图1是带标签的私钥可更新数字签名方法的示例图,图中,树的高度为3,8个叶节点分别标识不同的周期,其中最左侧的τ=000代表第一个周期,每个周期均维护相应的布隆过滤器以完成密钥的更新。方案中,(1)首先利用主私钥skε为节点τ=000对应的周期分发私钥sk000,并为节点001、01和1分发用于跨周期密钥更新的私钥,最后删除主私钥;(2)然后为该周期内布隆过滤器每个位置身份u分发对应的私钥sk000|u;(3)对于周期内的密钥更新,利用更新字段完成更新,即删除更新字段对应布隆过滤器位置处的私钥;而对于跨周期的密钥更新,则计算并保存τ=001对应周期内布隆过滤器每个位置身份处的私钥以及节点01和1对应处的私钥,以此类推进而完成之后跨周期的密钥更新;(4)签名时,利用刺穿字段选择密钥对消息进行签名;(5)签名验证算法则利用公钥验证签名的有效性。
五、带标签的私钥可更新数字签名方法应用在基于PoS的区块链协议中
在PoS的区块链协议中,区块发布者在当前时间段slot处发布区块时,利用带标签的私钥可更新数字签名方案对消息做签名,之后进入下一个时间段。待签名的消息包括当前时间段slot、交易信息和当前区块状态等信息,将slot部分作为更新字段,签名之后执行密钥更新操作。根据带标签的私钥可更新数字签名方案的性质,更新后的密钥将无法再在相同的slot处做签名,从而保证了敌手无法更改区块链的历史。而对于跨周期的密钥更新,当BF的错误率达到上界时,进行跨周期的密钥更新,而验证者则需要通过记录每一个签名者的签名次数来维护签名者所处的正确周期。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,本发明的保护范围应以权利要求所述为准。

Claims (5)

1.一种带标签的私钥可更新数字签名方法,其特征在于,包括以下步骤:
生成布隆过滤器BF和基于分级身份的数字签名HIBS密钥对,其中,布隆过滤器BF由参数生成算法BFGen、更新算法BFUpdate和检测算法BFCheck组成;BFGen(l,k):输入两个整数l和k,生成k个独立的哈希函数H1,...,Hk,其中Hj:U→[l],j∈[k];定义H={Hj}j∈[k],T=0l是一个长为l比特的零向量;输出(H,T);BFUpdate(H,T,u):输入H={Hi}i∈[k]、T∈{0,1}l和u∈U,对于任意的i∈[k]更新T[Hi(u)]=1,返回新的状态向量T;BFCheck(H,T,u):输入H={Hi}i∈[k]、T∈{0,1}l和u∈U,算法返回b=∩i∈[k]T[Hi(u)];基于分级身份的数字签名HIBS由参数生成算法HIBGen、密钥分发算法HIBDel、签名算法HIBSign和验证算法HIBVerify组成;HIBGen(1λ):输入安全参数λ,输出主公钥mpk和树根节点对应的主私钥skε;HIBDel(skτ,d):输入身份τ∈D1×...×Di-1对应的密钥skτ和身份d∈Di,为身份τ|d分发私钥skτ|d;HIBSign(skτ,m):输入密钥skτ和消息m,输出对m的签名σ;HIBVerify(mpk,τ,m,σ):输入身份τ、消息m、签名σ和验证公钥mpk,如果签名有效,则算法输出1,否则输出0;生成密钥对的方法为:首先运行({Hj}j∈[k],T)←Gen(l,k)生成布隆过滤器BF=(BFGen,BFUpdate,BFCheck),然后运行(mpk,skε)←HIBGen(1λ)产生密钥对;对于任意的u∈[t],递归地计算
Figure FDA0003192348820000011
为初始标签τ=0t分发密钥
Figure FDA0003192348820000012
对于任意的u∈[l],计算
Figure FDA0003192348820000013
为BF的每个位置分发私钥,令
Figure FDA0003192348820000014
对于任意的u∈[t],递归地计算
Figure FDA0003192348820000015
Figure FDA0003192348820000016
得到私钥sk={T,skbloom,skupdate},公钥vk={mpk,{Hj}j∈[k]};
利用主密钥为初始标签和布隆过滤器的每个位置身份分发私钥,并计算用于跨周期更新的私钥集合;
对于一消息m的预设定更新字段str,其包括位置信息和长度信息,根据该更新字段str检查对应位置的签名私钥是否存在,如果存在,则随机选取一位置身份处的私钥,对消息m进行签名;
在更新字段str处完成对当前私钥的周期内更新,当前私钥的周期内更新方法为:计算T′=Update({Hj}j∈[k],T,str),更新布隆过滤器状态位;对于任意的u∈[l],更新私钥为
Figure FDA0003192348820000017
Figure FDA0003192348820000021
令sk′bloom={sk′τ|u,τ}u∈[l],更新后的私钥为sk′=(T′,sk′bloom,skupdate);
计算下一周期对应的私钥,完成当前私钥的跨周期更新,当前私钥的跨周期更新方法为:重置T=0l;利用skupdate中的密钥和HIBDel算法计算标签τ+1对应的密钥skτ+1;对于任意的u∈[l],计算skτ+1|u=HIBDel(skτ+1,u),为BF的每个位置身份分发私钥;为根节点至节点τ+1路径上节点的右侧兄弟节点分发私钥,将这些私钥加入到更新的sk′update中,并删除根节点至节点τ+1路径上节点对应的私钥;令sk′bloom={sk′τ+1|u,τ+1}u∈[l],更新后的私钥为sk′=(T,sk′bloom,sk′update);
利用公钥验证消息m的签名。
2.如权利要求1所述的带标签的私钥可更新数字签名方法,其特征在于,检测BFCheck({Hj}j∈[k],T,str)是否等于1,如果等于1,则签名失败,范围为⊥,否则挑选一个随机的
Figure FDA0003192348820000022
满足ij*∈{Hj(str):j∈[k]})且
Figure FDA0003192348820000023
其中
Figure FDA0003192348820000024
表示当前周期τ内位置身份
Figure FDA0003192348820000025
处的私钥。
3.如权利要求1所述的带标签的私钥可更新数字签名方法,其特征在于,对消息m进行签名为:σS←HIBSign
Figure FDA0003192348820000026
输出对消息m的签名
Figure FDA0003192348820000027
4.如权利要求1所述的带标签的私钥可更新数字签名方法,其特征在于,利用公钥验证消息m的签名方法为:验证
Figure FDA0003192348820000028
是否成立,如果成立,则签名有效,输出“1”,否则输出“0”。
5.一种抵抗PoS区块链协议长距离攻击的方法,其特征在于,包括以下步骤:
在PoS的区块链协议中,区块发布者在当前时间段slot处发布区块时,利用权利要求1-4任一所述的带标签的私钥可更新数字签名方法对区块内容消息m做签名,之后进入下一个时间段,其中区块内容消息m包括当前时间段slot、交易信息和当前区块状态信息;
对于周期内的密钥更新,将slot部分作为更新字段,签名之后执行密钥更新操作,更新后的密钥将无法再在相同的slot处做签名,以防止敌手更改区块链的历史;
对于跨周期的密钥更新,当布隆过滤器BF的错误率达到上界时,进入下一周期,完成密钥更新,验证者通过记录每一个签名者的签名次数来维护签名者所处的正确周期,更新后的密钥将无法再在之前的周期做签名,以防止敌手更改区块链的历史。
CN201910917779.6A 2019-09-26 2019-09-26 带标签的私钥可更新数字签名方法及其在PoS区块链协议中的应用 Active CN110837659B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910917779.6A CN110837659B (zh) 2019-09-26 2019-09-26 带标签的私钥可更新数字签名方法及其在PoS区块链协议中的应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910917779.6A CN110837659B (zh) 2019-09-26 2019-09-26 带标签的私钥可更新数字签名方法及其在PoS区块链协议中的应用

Publications (2)

Publication Number Publication Date
CN110837659A CN110837659A (zh) 2020-02-25
CN110837659B true CN110837659B (zh) 2021-10-15

Family

ID=69575286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910917779.6A Active CN110837659B (zh) 2019-09-26 2019-09-26 带标签的私钥可更新数字签名方法及其在PoS区块链协议中的应用

Country Status (1)

Country Link
CN (1) CN110837659B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113452510B (zh) * 2020-03-24 2022-05-06 山东浪潮质量链科技有限公司 一种基于区块链的私钥更新方法及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714919A (zh) * 2009-10-29 2010-05-26 电子科技大学 基于rsa算法的前向安全数字签名算法
CN102651747A (zh) * 2012-05-24 2012-08-29 电子科技大学 基于不可信更新环境的前向安全数字签名方法
CN103873257A (zh) * 2014-03-24 2014-06-18 中国工商银行股份有限公司 密钥更新、数字签名及签名验证的方法及装置
CN104410609A (zh) * 2014-11-07 2015-03-11 上海九逸科技有限公司 电子商务应用中基于rsa问题前向安全的数字签名方法
CN109815746A (zh) * 2019-01-11 2019-05-28 西安企业资本服务中心有限公司 一种基于区块链技术的数据防篡改方法及系统
CN109905247A (zh) * 2019-03-28 2019-06-18 郑州师范学院 基于区块链的数字签名方法、装置、设备及存储介质
CN110034936A (zh) * 2019-04-08 2019-07-19 中国科学院软件研究所 一种可刺穿的数字签名方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI581599B (zh) * 2015-04-30 2017-05-01 鴻海精密工業股份有限公司 金鑰生成系統、資料簽章與加密系統和方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714919A (zh) * 2009-10-29 2010-05-26 电子科技大学 基于rsa算法的前向安全数字签名算法
CN102651747A (zh) * 2012-05-24 2012-08-29 电子科技大学 基于不可信更新环境的前向安全数字签名方法
CN103873257A (zh) * 2014-03-24 2014-06-18 中国工商银行股份有限公司 密钥更新、数字签名及签名验证的方法及装置
CN104410609A (zh) * 2014-11-07 2015-03-11 上海九逸科技有限公司 电子商务应用中基于rsa问题前向安全的数字签名方法
CN109815746A (zh) * 2019-01-11 2019-05-28 西安企业资本服务中心有限公司 一种基于区块链技术的数据防篡改方法及系统
CN109905247A (zh) * 2019-03-28 2019-06-18 郑州师范学院 基于区块链的数字签名方法、装置、设备及存储介质
CN110034936A (zh) * 2019-04-08 2019-07-19 中国科学院软件研究所 一种可刺穿的数字签名方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Bloom Filter Encryption and Applications to Efficient;David Derler等;《EUROCRYPT》;20180429;425–455 *

Also Published As

Publication number Publication date
CN110837659A (zh) 2020-02-25

Similar Documents

Publication Publication Date Title
US20230120742A1 (en) Quantumproof blockchain
Yin et al. An anti-quantum transaction authentication approach in blockchain
Li et al. A new lattice-based signature scheme in post-quantum blockchain network
CN108038184B (zh) 一种基于区块链的数据存储方法及系统、一种智能区块链
Phesso et al. An efficient attack on a code-based signature scheme
CN109768866B (zh) 基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法
CN103259662A (zh) 一种新的基于整数分解问题的代理签名及验证方法
CN110663215A (zh) 在白盒场景中的椭圆曲线点乘设备和方法
CN113141247B (zh) 一种同态加密方法、装置、系统及可读存储介质
CN103220146B (zh) 基于多变量公钥密码体制的零知识数字签名方法
EP3864794B1 (en) Linking transactions
Karamachoski et al. Blockchain-based application for certification management
CN115552397A (zh) 多方和多用途抗量子签名和密钥建立
CN110034936B (zh) 一种可刺穿的数字签名方法
CN110233733B (zh) 面向区块链智能合约的不可拆分数字签名通用构造方法
Kazmirchuk et al. The Improvement of digital signature algorithm based on elliptic curve cryptography
CN110837659B (zh) 带标签的私钥可更新数字签名方法及其在PoS区块链协议中的应用
Wang et al. Efficient verifiable databases with additional insertion and deletion operations in cloud computing
CN112511314A (zh) 一种基于身份的可恢复消息盲签名生成方法
Li et al. A forward-secure certificate-based signature scheme
Dobraunig et al. Differential cryptanalysis of SipHash
CN109104444B (zh) 一种基于区块链的电子签章方法
CN114169888B (zh) 一种通用型支持多重签名的加密货币保管方法
Elbuz et al. Designing a secure blockchain-based trading platform for internet of things
Ko et al. Private key recovery on Bitcoin with duplicated signatures

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