数字签名生成方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:25528419 阅读:19 留言:0更新日期:2020-09-04 17:16
本申请涉及一种数字签名生成方法、装置、计算机设备和存储介质。所述方法包括:获取待签名消息,计算待签名消息的消息散列值。获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值,使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。即通过使用拼接信息对应的哈希值、待签名消息的消息散列值和签名私钥来生成待签名消息对应的数字签名,能够提高生成的数字签名的安全性,本申请还涉及一种区块链共识方法,能够提高区块链共识过程中的安全性。

【技术实现步骤摘要】
数字签名生成方法、装置、计算机设备和存储介质
本申请涉及互联网
,特别是涉及一种数字签名生成方法、装置、计算机设备和存储介质。
技术介绍
随着互联网技术的发展,越来越多的互联网用户开始重视互联网安全,目前,互联网开始使用各种加密技术来保证互联网的安全,比如数字签名技术,数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。传统的国密版本的椭圆曲线数字签名(SM2,是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法)技术需要依赖于一个安全的随机数生成器,当随机数的质量不够高时,会导致数字签名的安全性降低。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够提高数字签名安全性的数字签名生成方法、装置、计算机设备和存储介质。一种数字签名方法,所述方法包括:获取待签名消息,计算待签名消息的消息散列值;获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。一种数字签名生成装置,所述装置包括:消息获取模块,用于获取待签名消息,计算待签名消息的消息散列值;计算模块,用于获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;生成模块,用于使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取待签名消息,计算待签名消息的消息散列值;获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取待签名消息,计算待签名消息的消息散列值;获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。上述数字签名生成方法、装置、计算机设备和存储介质,通过获取待签名消息,计算待签名消息的消息散列值。获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值,使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。即通过拼接信息对应的哈希值作为随机数来生成数字签名,避免了生成质量低的随机数,从而提高了生成的数字签名的安全性。并且,由于将拼接信息对应的哈希值作为随机数,使得同一私钥和同一待签名消息生成的数字签名是相同的,从而能够应用在同一私钥对同一消息进行数字签名得到相同签名结果的场景中,拓展了应用场景。一种区块链共识方法,所述方法包括:接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。一种区块链共识装置,所述装置包括:请求接收模块,用于接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;拼接模块,用于计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;数字签名生成模块,用于计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;哈希值计算模块,用于将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;哈希值验证模块,用于当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。上述区块链共识方法、装置、计算机设备和存储介质,通过接收到区块链共识请求时,计算区块体信息的信息散列值,然后将共享私钥和信息散列值拼接,得到第一拼接结果,计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名。将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值。当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息,能够使每个区块链节点使用共享私钥生成相同的数字签名,然后每个区块链节点使用数字签名和区块体信息计算得到哈希值,从而能够保证当区块体信息完整无误时,每个具有共享私钥的区块链节点计算得到的哈希值与接收到的区块哈希值一致,从而能够保证共识成功,提高了区块链共识的安全性。附图说明图1为一个实施例中数字签名生成方法的应用环境图;图2为一个实施例中数字签名生成方法的流程示意图;图3为一个实施例中确定数字签名的流程示意图;图4为一个实施例中验证数字签名的流程示意图;图5为一个实施例中计算目标第一部分数字签名的流程示意图;图6为一个具体实施例中数字签名生成方法的流程示意图;图7为一个实施例中区块链共识方法的应用环境图;图8为一个实施例中区块链共识方法的流程示意图;图9为一个实施例待共识区块的区块结构示意图;图10为一个实施例中验证已写入数字签名的流程示意图;图11为一个本文档来自技高网...

【技术保护点】
1.一种数字签名方法,其特征在于,所述方法包括:/n获取待签名消息,计算待签名消息的消息散列值;/n获取签名私钥,将所述签名私钥和所述消息散列值拼接,得到拼接信息,计算所述拼接信息对应的哈希值;/n使用所述拼接信息对应的哈希值、所述消息散列值和所述签名私钥生成所述待签名消息对应的数字签名。/n

【技术特征摘要】
1.一种数字签名方法,其特征在于,所述方法包括:
获取待签名消息,计算待签名消息的消息散列值;
获取签名私钥,将所述签名私钥和所述消息散列值拼接,得到拼接信息,计算所述拼接信息对应的哈希值;
使用所述拼接信息对应的哈希值、所述消息散列值和所述签名私钥生成所述待签名消息对应的数字签名。


2.根据权利要求1所述的方法,其特征在于,所述获取签名私钥,将所述签名私钥和所述消息散列值拼接,得到拼接信息,包括:
获取签名私钥,将所述签名私钥按照预设转换规则转换为目标信息;
将所述目标信息与所述消息散列值拼接,得到所述拼接信息。


3.根据权利要求2所述的方法,其特征在于,所述将所述签名私钥按照预设转换规则转换为目标信息,包括:
将所述签名私钥转换为比特串,得到比特串私钥;
将所述比特串私钥逆序排列,得到所述目标信息。


4.根据权利要求2所述的方法,其特征在于,所述将所述签名私钥按照预设转换规则转换为目标信息,包括:
获取预设映射关系,根据所述预设映射关系获取所述签名私钥对应的转换信息,将所述转换信息作为所述目标信息。


5.根据权利要求1所述的方法,其特征在于,所述使用所述拼接信息对应的哈希值、所述消息散列值和所述签名私钥生成所述待签名消息对应的数字签名,包括:
获取椭圆曲线基点,使用所述拼接信息对应的哈希值和所述椭圆曲线基点计算得到椭圆曲线点坐标;
根据所述椭圆曲线基点确定对应的阶信息,使用所述消息散列值、所述椭圆曲线点坐标和所述阶信息计算得到第一部分数字签名;
当所述第一部分数字签名符合预设第一条件时,使用所述第一部分数字签名、所述拼接信息对应的哈希值、所述签名私钥和所述阶信息计算得到第二部分数字签名;
当所述第二部分数字签名符合预设第二条件时,根据所述第一部分数字签名和第二部分数字签名确定所述数字签名。


6.根据权利要求1所述的方法,其特征在于,将所述待签名消息对应的数字签名作为待验证数字签名,在所述使用所述拼接信息对应的哈希值、所述消息散列值和所述签名私钥生成所述待签名消息对应的数字签名之后,还包括:
获取待验证数字签名,当所述待验证数字签名符合预设签名规则时,计算所述待验证数字签名的待验证散列值;
获取所述待验证数字签名对应的验证公钥,基于所述待验证数字签名、所述验证公钥和所述待验证散列值计算目标第一部分数字签名;
当所述目标第一部分数字签名与所述待验证数字签名中的第一部分数字签名一致时,得到数字签名验证通过结果。


7.根据权利要求6所述的方法,其特征在于,所述获取所述待验证数字签名对应的验证公钥,基于所述待验证数字签名、所述验证公钥和所述待验证散列值计算目标第一部分数字签名,包括:
获取椭圆曲线基点,根据所述待验证数字签名和所述椭圆曲线基点对应的阶信息计算目标值,当所述目标值符合预设目标条件时,获取椭圆曲线基点,使用所述待验证数字签名中的第二部分数字签名、所述椭圆曲线基点、所述目标值和所述验证公钥计算待验证椭圆曲线点;
根据所述待验证椭圆曲线点、所述待验证散列值和所述椭圆曲线基点对应的阶信息计算目标第一部分数字签名。


8.一种区块链共识方法,其特征在于,所述方法包括:
接收区块链共识请求,所述区块链共识请求中携带待共识区块,所述待共识区块包括区块体信息和区...

【专利技术属性】
技术研发人员:李茂材王宗友时一防廖志勇蓝虎朱耿良
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1