一种应用于区块链的签名方法、系统及存储介质技术方案

技术编号:23934594 阅读:29 留言:0更新日期:2020-04-25 02:41
本发明专利技术公开了一种应用于区块链的签名方法、系统及存储介质,方法包括:基于预设长度,对待发送消息进行截取处理后,生成截取数据包;对所述截取数据包进行哈希计算,确定签名信息;将待发送消息、截取数据包以及签名信息发送至接收节点;对截取数据包和签名信息进行验证,得到验证通过后的信息。本发明专利技术基于预设长度对待发送消息进行截取处理后,再对截取数据包进行哈希计算,以及根据截取数据包进行验证,能够减小节点间进行消息签名时的资源消耗,提高消息签名的效率,可广泛应用于区块链技术领域。

A signature method, system and storage medium applied to blockchain

【技术实现步骤摘要】
一种应用于区块链的签名方法、系统及存储介质
本专利技术涉及区块链
,尤其是一种应用于区块链的签名方法、系统及存储介质。
技术介绍
联盟链由多个节点构成,节点之间的信息交互都需要签名的方式保证安全性,发送节点对整个交易信息文件进行序列化后运算哈希并通过自己的私钥产生签名,接收节点收到信息首先对整个交易文件序列化后运算哈希通过发送者的私钥进行验签。对整个交易文件序列化后运算哈希过程需要占用大量运算资源,效率低下。现有的联盟链方案中,节点中的交互信息的签名都是对整个消息体序列化进行哈希运算,随着消息体的内容增加以及节点的增加,达成交易的效率会变低。
技术实现思路
有鉴于此,本专利技术实施例提供一种效率高的,应用于区块链的签名方法、系统及存储介质。本专利技术的第一方面提供了一种应用于区块链的签名方法,包括:基于预设长度,对待发送消息进行截取处理后,生成截取数据包;对所述截取数据包进行哈希计算,确定签名信息;将待发送消息、截取数据包以及签名信息发送至接收节点;对截取数据包和签名信息进行验证,得到验证通过后的信息。进一步,所述基于预设长度,对待发送消息进行截取处理后,生成截取数据包,包括:获取待发送消息的标识;基于预设的数据长度,对待发送消息的消息属性进行截取,获取预设数据长度的截取数据;确定待发送消息的时间戳;将所述标识、截取数据和时间戳组合成截取数据包。进一步,所述对所述截取数据包进行哈希计算,确定签名信息,包括:计算所述截取数据包的哈希值和私钥,得到所述截取数据包的签名信息;将所述截取数据包加密成加密数据。进一步,所述对截取数据包和签名信息进行验证,得到验证通过后的信息,包括:接收节点接收发送节点发送的消息;对接收的消息,将加密数据解密成截取数据包;验证所述截取数据包是否属于待发送消息的部分内容;验证签名信息是否唯一;确定接收所述消息。进一步,还包括:保存所述签名信息。进一步,所述验证所述截取数据包是否属于待发送消息的部分内容,包括:将待发送信息转换成第一字符串;将截取数据包转换成第二字符串;判断所述第一字符串中是否包含第二字符串,若是,则确定所述截取数据包属于待发送消息的部分内容;反之,则确定所述截取数据包不属于待发送消息的部分内容。进一步,所述验证签名信息是否唯一,包括:在所述接收节点的本地查找是否存储有该签名信息,若是,则确定该签名信息不唯一;反之,则确定该签名信息唯一。本专利技术第二方面提供了一种应用于区块链的签名系统,包括:截取模块,用于基于预设长度,对待发送消息进行截取处理后,生成截取数据包;哈希计算模块,用于对所述截取数据包进行哈希计算,确定签名信息;发送模块,用于将待发送消息、截取数据包以及签名信息发送至接收节点;验证模块,用于对截取数据包和签名信息进行验证,得到验证通过后的信息。本专利技术第三方面提供了一种应用于区块链的签名系统,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的方法。本专利技术第四方面提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的方法。上述本专利技术实施例中的一个或多个技术方案具有如下优点:本专利技术的实施例基于预设长度对待发送消息进行截取处理后,再对截取数据包进行哈希计算,以及根据截取数据包进行验证,能够减小节点间进行消息签名时的资源消耗,提高消息签名的效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例的整体步骤流程图。具体实施方式下面结合说明书附图和具体实施例对本专利技术作进一步解释和说明。对于本专利技术实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。针对现有技术在节点间进行消息签名时的资源消耗较高,消息签名的效率较低的情况,本申请实施例提供了一种区块链中节点的签名方法,旨在提高联盟链在节点之间签名的效率以及安全性。为了实现上述目的,本专利技术提供的步骤为:1:发送节点对发送消息M(Id,p1,p2,p3)处理成M’(Id,p1',p2',p3',S),Id是消息唯一标识,p是消息属性,p'是对p有限长度随机截取,S是时间戳;本申请实施例中,M代表待发送消息;M’则代表截取数据包;SIGN代表签名信息;2:发送节点发送消息,此过程包括对M’计算哈希和私钥生成签名SIGN,M’和接收节点公钥加密成M”,最后把M、SIGN、M”发送给指定节点;3:接收节点验证消息,此过程包括接收节点通过公钥解密M”成M’并验证M’属于M的一部分,校验存储的消息SIGN针对此节点的这次消息是唯一的,保证同一消息同一节点只能验签一次,增加安全性;4:接收节点验签及保存签名,此过程包括接收节点通过M’进行哈希和发送者的公钥对SIGN进行验签,成功后保存SIGN。具体的,以待发送消息M(Id,p1,p2,p3)为例,下面参照图1,对本申请实施例的整体步骤进行详细描述:S1:发送节点对发送消息M(Id,p1,p2,p3)处理成M’(Id,p1',p2',p3',S),Id是消息唯一标识,p是消息属性,p'是对p有限长度随机截取,S是时间戳;S2:发送节点发送消息,此过程包括对M’计算哈希和私钥生成签名SIGN,然后通过接收节点上存储的公钥将M’加密成M”,最后把M、SIGN、M”发送给指定节点;S3:接收节点接收发送节点发送的消息,此过程包括接收节点通过公钥解密M”成M’,并验证M’属于M的一部分(本申请实施例可以通过将消息转化成字符串,验证截取的字符串属于整体的一部分的方式来实现),校验存储的消息SIGN针对此节点的这次消息是唯一的(本申请实施例中,成功的SIGN会存储在介质上,每次校验时先查询是否存在,如果存在则代表不唯一),保证同一消息同一节点只能验签一次,增加安全性;S4:接收节点验签及保存签名,此过程包括接收节点通过M’进行哈希和通过发送者的公钥对SIGN进行验签,成功后保存SIGN。本实施例中:通过公私钥加解密的方式,来提供真实安全验证节点可用性的方法。本实施例中:通过对消息进行随机截取,提高消息签名的效率。对发送消息M(Id,p1,p2,p3)处理成M’(Id,p1',p2',p3',S)的具体处理步骤如下,p1,p本文档来自技高网...

【技术保护点】
1.一种应用于区块链的签名方法,其特征在于,包括:/n基于预设长度,对待发送消息进行截取处理后,生成截取数据包;/n对所述截取数据包进行哈希计算,确定签名信息;/n将待发送消息、截取数据包以及签名信息发送至接收节点;/n对截取数据包和签名信息进行验证,得到验证通过后的信息。/n

【技术特征摘要】
1.一种应用于区块链的签名方法,其特征在于,包括:
基于预设长度,对待发送消息进行截取处理后,生成截取数据包;
对所述截取数据包进行哈希计算,确定签名信息;
将待发送消息、截取数据包以及签名信息发送至接收节点;
对截取数据包和签名信息进行验证,得到验证通过后的信息。


2.根据权利要求1所述的一种应用于区块链的签名方法,其特征在于,所述基于预设长度,对待发送消息进行截取处理后,生成截取数据包,包括:
获取待发送消息的标识;
基于预设的数据长度,对待发送消息的消息属性进行截取,获取预设数据长度的截取数据;
确定待发送消息的时间戳;
将所述标识、截取数据和时间戳组合成截取数据包。


3.根据权利要求2所述的一种应用于区块链的签名方法,其特征在于,所述对所述截取数据包进行哈希计算,确定签名信息,包括:
计算所述截取数据包的哈希值和私钥,得到所述截取数据包的签名信息;
将所述截取数据包加密成加密数据。


4.根据权利要求3所述的一种应用于区块链的签名方法,其特征在于,所述对截取数据包和签名信息进行验证,得到验证通过后的信息,包括:
接收节点接收发送节点发送的消息;
对接收的消息,将加密数据解密成截取数据包;
验证所述截取数据包是否属于待发送消息的部分内容;
验证签名信息是否唯一;
确定接收所述消息。


5.根据权利要求1所述的一种应用于区块链的签名方法,其特征在于,还包括:
保存所述签名信息。

【专利技术属性】
技术研发人员:石宁许小明王晨旭甘子荣
申请(专利权)人:南京金宁汇科技有限公司
类型:发明
国别省市:江苏;32

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

1