一种流水线友好的签名和验签方法、设备及存储介质技术

技术编号:25091136 阅读:32 留言:0更新日期:2020-07-31 23:35
本发明专利技术公开了一种流水线友好的签名和验签方法、设备及存储介质,属于数据加密技术领域。包括所述Witness节点通过基础签名算法生成公私钥对:私钥x和公钥X,将公钥X发送到其他Witness节点;所述Witness节点选择随机数v,将V发送给Leader节点;接收Leader节点发来的C;根据C和公钥X,通过基础签名算法和消息散列算法,计算消息摘要h,进而计算ps,将ps发给Leader节点;将线性验签结构的签名算法构建为聚合签名;具有门限签名的特点;对流水线机制友好,不会因为协议某个步骤的失败而打断流水线过程;显著降低验签压力。

【技术实现步骤摘要】
一种流水线友好的签名和验签方法、设备及存储介质
本专利技术涉及数据加密
,尤其涉及一种流水线友好的签名和验签方法、设备及存储介质。
技术介绍
区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,存储的信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块的节点上,任何节点可见,从而保证其不可伪造和篡改。联盟区块链与普通区块链(现有的区块链也会有涉及隐私保护机制的区块链)的根本区别之一是需要提供隐私保护机制,通常情况下,该机制是通过密码学中的签名加密和验签签名来实现的。目前,区块链事务被打包成块的形式发送给区块链节点,由节点解开块并获取其中的事务,然后对每个事务进行验签并按序执行对应事务的提交过程。由于现有区块链事务的提交是采用顺序化的方式执行,因此,在系统较繁忙且产生事务较多时,事务提交的速度往往滞后于事务产生的速度,降低了事务处理效率,因此采用流水线技术。流水线技术是指计算机技术中普遍采用的一种并行处理技术,在一个批处理中,将一个流程按时序划分为几部分,然后并行处理各个部分实现加速优化。例如计算机处理器的指令流水线、Hotstuff共识协议的流水线处理等。但是如果某一部分的失败需要变更执行流程,例如某程序某一步骤的失败导致需要重新从头执行该条程序,那么就会破坏流水线过程,流水线友好是指不会导致这样的破坏的一种程序特性。门限签名方案是指由n个成员组成一个签名群体,该群体有一对公钥和私钥,群体内大于等于T个合法且诚实的成员组合可以代表群体用群私钥进行签名,任何人可利用该群体的公钥进行签名验证;这里T是门限值,只有大于等于T个合法成员才能代表群体进行签名,群体中任何T-1个或更少的成员不能代表该群体进行签名,同时任何成员不能假冒其他成员进行签名。采用门限签名方式可以实现权力分配,避免滥用职权。现有区块链采用的门限签名大部分是通过BLS等需要交互的签名算法构造而来,但是BLS基于双线性对,需要大量的运算,会消耗节点大量的CPU时间从而成为性能瓶颈,从而制约了区块链的进一步应用。例如Facebook公司的区块链产品Libra,使用了Hotstuff的变种共识算法,但是因为快速的Ed25519聚合签名不是流水线友好的,而只能采用BLS或者Ed25519的批量验签,仅从验签上进行优化导致网络通信的量没有减少,不能解决网络负担。如何找到一种流水线友好的高效门限签名方法是联盟区块链更好用于实际生产所要面临的一项挑战。
技术实现思路
专利技术要解决的技术问题为了克服上述技术问题,本专利技术提供了一种流水线友好的签名和验签方法、设备及存储介质。将线性验签结构的签名算法构建为聚合签名;具有门限签名的特点;对流水线机制友好,不会因为协议某个步骤的失败而打断流水线过程;显著降低验签压力。技术方案为解决上述问题,本专利技术提供的技术方案为:一种流水线友好的签名方法,适用于Witness节点,所述Witness节点通过基础签名算法生成公私钥对:私钥x和公钥X,将公钥X发送到其他Witness节点;所述Witness节点选择随机数v,将V发送给Leader节点;接收Leader节点发来的C;根据C和公钥X,通过基础签名算法和消息散列算法,计算消息摘要h,进而计算ps,将ps发给Leader节点;其中,V=v*G;ps=h*x+v;所述Leader节点由一个以上的所述Witness节点选出;根据所述基础签名算法的类型确定至少包括生成元G在内的相关参数;在第一约定时间内,若Leader节点没有接收到Witness节点发来的V,则视为对应的Witness节点放弃投票,Leader节点为对应的Witness节点随机生成V;若Leader节点接收到Witness节点发来的V,则视为对应的Witness节点参与投票;对所有V求和相加得到C,发送到Witness节点;在第二约定时间内,若Leader节点没有收到相应Witness节点发来的ps,则视为对应的Witness节点为无效票,位掩码Mask对应标记位处标记为0;Leader节点验证已经收到的ps是否正确;若ps不正确,则视为对应的Witness节点为无效票,位掩码Mask对应标记位处标记为0;若ps正确,则视为对应的Witness节点为有效票,位掩码Mask对应标记位处标记为1;计算聚合签名(C,s,Mask),s为N个正确的ps之和,N为ps正确的Witness节点个数之和,用以验签时与门限值T比对大小。可选的,所述基础签名算法为Elgmal签名算法及变体、或Schnorr签名算法及变体,或SM2签名验签算法,或ED25519签名验签算法中的一种。可选的,所述Leader节点验证已经收到的ps是否正确,进一步包括:Leader节点判断ps*G得到的值与h*X+V得到的值是否相等,若相等,则ps正确;若不相等,则ps不正确。可选的,所述消息散列算法为密码学安全的哈希算法。可选的,所述的Leader节点为Witness节点,或非Witness节点。一种流水线友好的签名方法,适用于Leader节点,根据以上任一项所述的一种流水线友好的签名方法,包括:在第一约定时间内,若Leader节点没有接收到Witness节点发来的V,则视为对应的Witness节点放弃投票,Leader节点为对应的Witness节点随机生成V;若Leader节点接收到Witness节点发来的V,则视为对应的Witness节点参与投票;对所有V求和相加得到C,发送到Witness节点;在第二约定时间内,若Leader节点没有收到相应Witness节点发来的ps,则视为对应的Witness节点为无效票,位掩码Mask对应标记位处标记为0;Leader节点验证已经收到的ps是否正确;若ps不正确,则视为对应的Witness节点为无效票,位掩码Mask对应标记位处标记为0;若ps正确,则视为对应的Witness节点为有效票,位掩码Mask对应标记位处标记为1;计算聚合签名(C,s,Mask),s为N个正确的ps之和,N为ps正确的Witness节点个数之和,用以验签时与门限值T比对大小。可选的,所述的Leader节点为Witness节点,或非Witness节点。一种验签方法,根据以上任一项所述的一种流水线友好的签名方法,包括:若s*G得到的值与h*AggX+C得到的值相等,且N≥T;则验签通过;否则,验签不通过;其中,s为N个正确的ps之和,N为ps正确的Witness节点个数之和,T为门限值;AggX为N个ps正确的Witness节点的公钥X之和;C为所有ps正确的Witness节点的V之和;V=v*G。此外,本专利技术提供了一种设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如以上所述的方法。相应地,本专利技术提供了一种存储有计算机程序的本文档来自技高网
...

【技术保护点】
1.一种流水线友好的签名方法,适用于Witness节点,其特征在于:/n所述Witness节点通过基础签名算法生成公私钥对:私钥x和公钥X,将公钥X发送到其他Witness节点;/n所述Witness节点选择随机数v,将V发送给Leader节点;/n接收Leader节点发来的C;/n根据C和公钥X,通过基础签名算法和消息散列算法,计算消息摘要h,进而计算ps,将ps发给Leader节点;/n其中,V=v*G; ps=h*x+v;所述Leader节点由一个以上的所述Witness节点选出;根据所述基础签名算法的类型确定至少包括生成元G在内的相关参数;/n在第一约定时间内,若Leader节点没有接收到Witness节点发来的V,则视为对应的Witness节点放弃投票,Leader节点为对应的Witness节点随机生成V;/n若Leader节点接收到Witness节点发来的V,则视为对应的Witness节点参与投票;/n对所有V求和相加得到C,发送到Witness节点;/n在第二约定时间内,若Leader节点没有收到相应Witness节点发来的ps,则视为对应的Witness节点为无效票,位掩码Mask对应标记位处标记为0;/nLeader节点验证已经收到的ps是否正确;/n若ps不正确,则视为对应的Witness节点为无效票,位掩码Mask对应标记位处标记为0;/n若ps正确,则视为对应的Witness节点为有效票,位掩码Mask对应标记位处标记为1;/n计算聚合签名(C,s,Mask),s为N个正确的ps之和,N为ps正确的Witness节点个数之和,用以验签时与门限值T比对大小。/n...

【技术特征摘要】
1.一种流水线友好的签名方法,适用于Witness节点,其特征在于:
所述Witness节点通过基础签名算法生成公私钥对:私钥x和公钥X,将公钥X发送到其他Witness节点;
所述Witness节点选择随机数v,将V发送给Leader节点;
接收Leader节点发来的C;
根据C和公钥X,通过基础签名算法和消息散列算法,计算消息摘要h,进而计算ps,将ps发给Leader节点;
其中,V=v*G;ps=h*x+v;所述Leader节点由一个以上的所述Witness节点选出;根据所述基础签名算法的类型确定至少包括生成元G在内的相关参数;
在第一约定时间内,若Leader节点没有接收到Witness节点发来的V,则视为对应的Witness节点放弃投票,Leader节点为对应的Witness节点随机生成V;
若Leader节点接收到Witness节点发来的V,则视为对应的Witness节点参与投票;
对所有V求和相加得到C,发送到Witness节点;
在第二约定时间内,若Leader节点没有收到相应Witness节点发来的ps,则视为对应的Witness节点为无效票,位掩码Mask对应标记位处标记为0;
Leader节点验证已经收到的ps是否正确;
若ps不正确,则视为对应的Witness节点为无效票,位掩码Mask对应标记位处标记为0;
若ps正确,则视为对应的Witness节点为有效票,位掩码Mask对应标记位处标记为1;
计算聚合签名(C,s,Mask),s为N个正确的ps之和,N为ps正确的Witness节点个数之和,用以验签时与门限值T比对大小。


2.根据权利要求1所述的一种流水线友好的签名方法,其特征在于:
所述基础签名算法为Elgmal签名算法及变体、或Schnorr签名算法及变体,或SM2签名验签算法,或ED25519签名验签算法中的一种。


3.根据权利要求1所述的一种流水线友好的签名方法,其特征在于:
所述Leader节点验证已经收到的ps是否正确,进一步包括:Leader节点判断ps*G得到的值与h*X+V得到的值是否相等,若相等,则ps正确;若不相等,则ps不正确。


4.根据权利要求1所述的一种流水线友好的签名方法,其特征在于:
所述消息散列算法为密码学安全的哈希算法。


5.根据权利要求...

【专利技术属性】
技术研发人员:邱炜伟李伟张珂杰黄方蕾乔沛杨
申请(专利权)人:杭州趣链科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1