区块链中数据签名的方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:23315036 阅读:13 留言:0更新日期:2020-02-11 17:46
本发明专利技术公开了一种区块链中数据签名的方法、装置、计算机设备及存储介质,该区块链中数据签名的方法在进行数字签名的过程中通过随机数缓存通道提前缓存随机数数组,签名时直接通过随机数缓存通道获取随机数,从而绕开可能因多线程并发签名时引起的文件锁竞争,更好地保证了CPU的性能,提高了处理器的并发能力。并且,通过将签名信息进行多次哈希运算之后再进行加密,能够很好地保证数据不轻易受到篡改,也保证了数据的安全性。

Method, device, computer equipment and storage medium of data signature in blockchain

【技术实现步骤摘要】
区块链中数据签名的方法、装置、计算机设备及存储介质
本专利技术涉及数据处理领域,尤其涉及一种区块链中数据签名的方法、装置、计算机设备及存储介质。
技术介绍
区块链一般被理解为一个分布式账本,它的本质也是一个分布式的数据库。在联盟链场景中,为保证提议阶段的数据不被篡改,提议请求中的内容数据都需要签名,而在签名的过程需要用到一个随机数字节数组。在现有的系统中,获取随机数字节数组是通过urandom文件锁实现的。然而,每次数据签名都需要实时调用系统资源来获取随机数,耗时过长。并且当多个线程同时需要进行数据的签名时,容易引发文件锁的竞争,进而影响CPU本身的性能,降低了处理器的并发能力。
技术实现思路
本专利技术实施例提供一种区块链中数据签名的方法、装置、计算机设备及存储介质,以解决数据签名过程中影响处理器的并发能力的问题。一种区块链中数据签名的方法,包括:获取数据签名请求,所述数据签名请求包括签名信息;根据所述数据签名请求获取节点身份信息和签名密钥;将所述签名信息和所述节点身份信息进行组合,得到待签名信息;对所述待签名信息进行哈希运算,得到第一哈希数;从随机数缓存通道中获取一随机数数组,作为签名随机数;对所述签名密钥、所述签名随机数和所述第一哈希数进行哈希运算,得到第二哈希数;通过非对称加密算法对第二哈希数进行加密,得到加密哈希数;将所述加密哈希数和节点身份信息发送至客户端。一种区块链中数据签名的装置,包括:签名请求获取模块,用于获取数据签名请求,所述数据签名请求包括签名信息;签名密钥获取模块,用于根据所述数据签名请求获取节点身份信息和签名密钥;组合模块,用于将所述签名信息和所述节点身份信息进行组合,得到待签名信息;第一哈希运算模块,用于对所述待签名信息进行哈希运算,得到第一哈希数;随机数获取模块,用于从随机数缓存通道中获取一随机数数组,作为签名随机数;第二哈希运算模块,用于对所述签名密钥、所述签名随机数和所述第一哈希数进行哈希运算,得到第二哈希数;加密模块,用于通过非对称加密算法对第二哈希数进行加密,得到加密哈希数;发送模块,用于将所述加密哈希数和节点身份信息发送至客户端。一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链中数据签名的方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述区块链中数据签名的方法的步骤。上述区块链中数据签名的方法、装置、计算机设备及存储介质中,在获取数据签名请求之后,根据所述数据签名请求获取节点身份信息和签名密钥;再将所述签名信息和所述节点身份信息组合,得到待签名信息;将所述待签名信息进行哈希运算,得到第一哈希数;从随机数缓存通道中获取一随机数数组,作为签名随机数;对所述签名密钥、所述签名随机数和所述第一哈希数进行哈希运算,得到第二哈希数;通过非对称加密算法对第二哈希数进行加密,得到加密哈希数;最后将所述加密哈希数和节点身份信息发送至客户端。该方法在进行数字签名的过程中通过随机数缓存通道提前缓存随机数数组,签名时直接通过随机数缓存通道获取随机数,从而绕开可能因多线程并发签名时引起的文件锁竞争,更好地保证了CPU的性能,提高了处理器的并发能力。并且,通过将签名信息进行多次哈希运算之后再进行加密,能够很好地保证数据不轻易受到篡改,也保证了数据的安全性。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例中区块链中数据签名的方法的一应用环境示意图;图2是本专利技术一实施例中区块链中数据签名的方法的一流程图;图3是本专利技术一实施例中区块链中数据签名的方法的另一流程图;图4是本专利技术一实施例中区块链中数据签名的方法的另一流程图;图5是本专利技术一实施例中区块链中数据签名的方法的另一流程图;图6是本专利技术一实施例中区块链中数据签名的方法的另一流程图;图7是本专利技术一实施例中区块链中数据签名的装置的一示意图;图8是本专利技术一实施例中区块链中数据签名的装置的另一示意图;图9是本专利技术一实施例中区块链中数据签名的装置的另一示意图;图10是本专利技术一实施例中计算机设备的一示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供的区块链中数据签名的方法,可应用在如图1的应用环境中,其中,客户端(计算机设备)通过网络与服务端进行通信。服务端获取客户端发送的数据签名请求,所述数据签名请求包括签名信息;根据所述数据签名请求获取节点身份信息和签名密钥;将所述签名信息和所述节点身份信息进行组合,得到待签名信息;将所述待签名信息进行哈希运算,得到第一哈希数;从随机数缓存通道中获取一随机数数组,作为签名随机数;对所述签名密钥、所述签名随机数和所述第一哈希数进行哈希运算,得到第二哈希数;通过非对称加密算法对第二哈希数进行加密,得到加密哈希数;将所述加密哈希数和节点身份信息发送至客户端。其中,客户端(计算机设备)可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在一实施例中,如图2所示,提供一种区块链中数据签名的方法,以该方法应用在图1中的服务端为例进行说明,包括如下步骤:S10:获取数据签名请求,所述数据签名请求包括签名信息。其中,所述数据签名请求为对数据发起签名的触发请求。可选地,该数据签名请求可以由客户端发起,也可以由服务端触发。数据签名请求中包括签名信息,该签名信息可以为原始的需要进行签名的数据,也可以为经过处理后的签名数据。示例性地,可以为需要进行签名的数据进行哈希运算,得到一个哈希值,构成签名信息。在此场景下,也可以由客户端发送需要进行签名的数据到服务端,服务端再对该需要进行签名的数据进行哈希运算,得到一个哈希值,构成签名信息,进而生成一个数据签名请求。S20:根据所述数据签名请求获取节点身份信息和签名密钥。具体地,可以根据数据签名请求的发送端(客户端)对应的标识来获取到该发送端对应的节点身份信息和签名密钥。节点身份信息为对应客户端的身份信息,该身份信息可以通过不同的形式来体现,例如数字、字母、符号或者文字中的至少一项。签名密钥为不同客户端所携本文档来自技高网...

【技术保护点】
1.一种区块链中数据签名的方法,其特征在于,包括:/n获取数据签名请求,所述数据签名请求包括签名信息;/n根据所述数据签名请求获取节点身份信息和签名密钥;/n将所述签名信息和所述节点身份信息进行组合,得到待签名信息;/n对所述待签名信息进行哈希运算,得到第一哈希数;/n从随机数缓存通道中获取一随机数数组,作为签名随机数;/n对所述签名密钥、所述签名随机数和所述第一哈希数进行哈希运算,得到第二哈希数;/n通过非对称加密算法对第二哈希数进行加密,得到加密哈希数;/n将所述加密哈希数和节点身份信息发送至客户端。/n

【技术特征摘要】
1.一种区块链中数据签名的方法,其特征在于,包括:
获取数据签名请求,所述数据签名请求包括签名信息;
根据所述数据签名请求获取节点身份信息和签名密钥;
将所述签名信息和所述节点身份信息进行组合,得到待签名信息;
对所述待签名信息进行哈希运算,得到第一哈希数;
从随机数缓存通道中获取一随机数数组,作为签名随机数;
对所述签名密钥、所述签名随机数和所述第一哈希数进行哈希运算,得到第二哈希数;
通过非对称加密算法对第二哈希数进行加密,得到加密哈希数;
将所述加密哈希数和节点身份信息发送至客户端。


2.如权利要求1所述的区块链中数据签名的方法,其特征在于,所述将所述签名信息和所述节点身份信息进行组合,得到待签名信息,包括:
采用随机函数生成一随机数;
根据所述随机数从签名信息或者所述节点身份信息中确定信息插入位置;
根据所述信息插入位置将所述签名信息和所述节点身份信息组合,得到组合信息;
将所述随机数加入到所述组合信息中,得到待签名信息。


3.如权利要求1所述的区块链中数据签名的方法,其特征在于,在所述从随机数缓存通道中获取随机数数组之前,所述区块链中数据签名的方法还包括:
创建预设容量的随机数缓存通道;
通过预设方式重复生成随机数数组,并将生成的所述随机数数组存入所述随机数缓存通道中,直至所述随机数缓存通道存满,则停止生成所述随机数数组。


4.如权利要求1所述的区块链中数据签名的方法,其特征在于,在所述从随机数缓存通道中获取随机数数组之前,所述区块链中数据签名的方法还包括:
创建预设容量的随机数缓存通道,并构建数组对象池;
通过预设方式重复生成随机数数组,并将生成的所述随机数数组存入所述随机数缓存通道中,直至所述随机数缓存通道存满,则停止生成所述随机数数组;
从所述随机数缓存通道中获取预设数量的随机数数组,并将获取的随机数数组传入数组对象池中。


5.如权利要求1所述的区块链中数据签名的方法,其特征在于,在所述从随机数缓存通道中获取随机数数组之前,所述区块链中数据签名的方法还包括:
构建临时对象池;
在所述从随机数缓存通道中获取随机数数组之后,所述区块链中数据签名的方法还包括:
通过预设方式生成新的随机数数组,并将新生成的所述随机数数组存入所述随...

【专利技术属性】
技术研发人员:张玉坚
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东;44

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

1