CN111628868A - 数字签名生成方法、装置、计算机设备和存储介质 - Google Patents
数字签名生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111628868A CN111628868A CN202010455968.9A CN202010455968A CN111628868A CN 111628868 A CN111628868 A CN 111628868A CN 202010455968 A CN202010455968 A CN 202010455968A CN 111628868 A CN111628868 A CN 111628868A
- Authority
- CN
- China
- Prior art keywords
- hash value
- digital signature
- information
- splicing
- signature
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种数字签名生成方法、装置、计算机设备和存储介质。所述方法包括:获取待签名消息,计算待签名消息的消息散列值。获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值,使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。即通过使用拼接信息对应的哈希值、待签名消息的消息散列值和签名私钥来生成待签名消息对应的数字签名,能够提高生成的数字签名的安全性,本申请还涉及一种区块链共识方法,能够提高区块链共识过程中的安全性。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种数字签名生成方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的发展,越来越多的互联网用户开始重视互联网安全,目前,互联网开始使用各种加密技术来保证互联网的安全,比如数字签名技术,数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。传统的国密版本的椭圆曲线数字签名(SM2,是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法)技术需要依赖于一个安全的随机数生成器,当随机数的质量不够高时,会导致数字签名的安全性降低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数字签名安全性的数字签名生成方法、装置、计算机设备和存储介质。
一种数字签名方法,所述方法包括:
获取待签名消息,计算待签名消息的消息散列值;
获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;
使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。
一种数字签名生成装置,所述装置包括:
消息获取模块,用于获取待签名消息,计算待签名消息的消息散列值;
计算模块,用于获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;
生成模块,用于使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待签名消息,计算待签名消息的消息散列值;
获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;
使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待签名消息,计算待签名消息的消息散列值;
获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;
使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。
上述数字签名生成方法、装置、计算机设备和存储介质,通过获取待签名消息,计算待签名消息的消息散列值。获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值,使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。即通过拼接信息对应的哈希值作为随机数来生成数字签名,避免了生成质量低的随机数,从而提高了生成的数字签名的安全性。并且,由于将拼接信息对应的哈希值作为随机数,使得同一私钥和同一待签名消息生成的数字签名是相同的,从而能够应用在同一私钥对同一消息进行数字签名得到相同签名结果的场景中,拓展了应用场景。
一种区块链共识方法,所述方法包括:
接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;
计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;
计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;
将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;
当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。
一种区块链共识装置,所述装置包括:
请求接收模块,用于接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;
拼接模块,用于计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;
数字签名生成模块,用于计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;
哈希值计算模块,用于将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;
哈希值验证模块,用于当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;
计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;
计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;
将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;
当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;
计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;
计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;
将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;
当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。
上述区块链共识方法、装置、计算机设备和存储介质,通过接收到区块链共识请求时,计算区块体信息的信息散列值,然后将共享私钥和信息散列值拼接,得到第一拼接结果,计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名。将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值。当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息,能够使每个区块链节点使用共享私钥生成相同的数字签名,然后每个区块链节点使用数字签名和区块体信息计算得到哈希值,从而能够保证当区块体信息完整无误时,每个具有共享私钥的区块链节点计算得到的哈希值与接收到的区块哈希值一致,从而能够保证共识成功,提高了区块链共识的安全性。
附图说明
图1为一个实施例中数字签名生成方法的应用环境图;
图2为一个实施例中数字签名生成方法的流程示意图;
图3为一个实施例中确定数字签名的流程示意图;
图4为一个实施例中验证数字签名的流程示意图;
图5为一个实施例中计算目标第一部分数字签名的流程示意图;
图6为一个具体实施例中数字签名生成方法的流程示意图;
图7为一个实施例中区块链共识方法的应用环境图;
图8为一个实施例中区块链共识方法的流程示意图;
图9为一个实施例待共识区块的区块结构示意图;
图10为一个实施例中验证已写入数字签名的流程示意图;
图11为一个实施例共享密钥的流程示意图;
图12为一个实施例中数字签名生成装置的结构框图;
图13为一个实施例中区块链共识装置的结构框图;
图14为一个实施例中计算机设备的内部结构图;
图15为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数字签名生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102获取待签名消息,计算待签名消息的消息散列值;终端102获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;终端102使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名,终端102可以将生成的数字签名和待签名消息保存在内存中,终端也可以将生成的数字签名和待签名消息发送服务器104,服务器104接收到数字签名和待签名消息可以发送给接收方终端。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数字签名生成方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,获取待签名消息,计算待签名消息的消息散列值。
其中,待签名消息是指需要进行数字签名的消息,该消息是需要发送给接收方终端的数据,比如,各种文件、文档、数字账本和邮件等等。消息散列值是将待签名消息压缩成摘要后得到的,能够使待签名消息数据量变小。
具体地,终端获取到待签名消息,然后可以使用Hash(散列、杂凑,或者哈希)算法计算待签名消息的消息散列值,其中,Hash算法是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。Hash算法包括但不限于MD4(Message Digest 4、消息摘要4)算法、SM3算法(一种密码散列函数标准)。MD5(MessageDigest 5,消息摘要5)算法、SHA(Secure Hash Algorithm,安全散列算法)算法等等。
在一个实施例中,可以获取到终端对应的用户标识,将用户标识和待签名消息进行拼接,计算拼接后的消息散列值。
步骤204,获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值。
其中,签名私钥是指根据非对称加密算法得到的密钥对中的私钥,其中,非对称加密算法包括但不限于RSA算法,DSA(Digital Signature Algorithm,数字签名算法)算法和ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法)算法。拼接是指将两部分数据接成一部分数据,比如,将签名私钥和消息散列值两部分数据连接成一部分数据,可以是签名私钥在前,消息散列值在后,也可以是签名私钥在后,消息散列值在前。拼接信息是将签名私钥和消息散列值拼接后得到的数据。
具体地,终端获取到私钥,该私钥可以是已保密存储到终端内存中的,经用户进行解密后获取到的,也可以是用户通过终端输入的,还可以是第三方提供的,其中,第三方是指用于提供私钥的第三方平台。当获取到私钥时,将签名私钥和消息散列值拼接,得到拼接信息,然后使用哈希算法计算拼接信息对应的哈希值。例如,获取签名私钥为“ABC12”,消息散列值为“567dfghh”,得到的拼接信息为“ABC12567dfghh”,然后使用SHA算法计算拼接信息“ABC12567dfghh”的哈希值。
在一个实施例中,步骤204,获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,包括步骤:
获取签名私钥,将签名私钥按照预设转换规则转换为目标信息,将目标信息与消息散列值拼接,得到拼接信息。
其中,预设转换规则是指预先设置好的将签名私钥进行转换的规则,目标信息是指将签名私钥按照预设转换规则进行转换后得到的信息,该目标信息是一个非公开的信息。
具体地,终端获取到签名私钥将签名私钥按照预设转换规则转换为目标信息,然后使用目标信息与消息散列值进行拼接,得到拼接信息。
在该实施例中,通过将签名私钥按照预设转换规则转换为目标信息,使用目标信息与消息散列值拼接,得到拼接信息,减小了签名私钥泄露的风险,提高了签名私钥的安全性。
在一个实施例中,将签名私钥按照预设转换规则转换为目标信息,包括步骤:
将签名私钥转换为比特串,得到比特串私钥,将比特串私钥逆序排列,得到目标信息。
其中,比特是指是信息量单位,是计算机内部数据储存的最小单位。比特串私钥是指签名私钥按照ANSI编码后转化为二进制存储的私钥信息。逆序排列是指将比特串私钥按照相反的顺序重新进行排列。
具体的,终端可以将签名私钥转换为比特串,得到比特串私钥,将比特串私钥逆序排列,得到目标信息。比如,签名私钥为“9”转换得到的比特串私钥为“00111001”,将“00111001”逆序排列,得到的目标信息为“10011100”
还可以将签名私钥通过编码的方式转换为字节串,得到字节串私钥,将字节串私钥逆序排列,得到目标信息。其中,字节是指计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数。比如,将签名私钥通过ASCII(AmericanStandard Code for Information Interchange,美国信息交换标准代码)进行编码得到的字节串私钥。
在该实施例中,通过将签名私钥转换为比特串,并将比特串私钥逆序排列,得到目标信息,使得到的目标信息更加的安全。
在一个实施例中,将签名私钥按照预设转换规则转换为目标信息,包括步骤:
获取预设映射关系,根据预设映射关系获取签名私钥对应的转换信息,将转换信息作为目标信息。
其中,预设映射关系用于反映出签名私钥和目标信息之间的映射关系,是预先将签名私钥和目标信息进行关联后得到的。转换信息是指根据映射关系得到签名私钥对应的信息。
具体地,终端获取到预先设置好的映射关系,根据预先设置好的映射关系查找到签名私钥对应的转换信息。
在该实施例中,根据预设映射关系获取签名私钥对应的转换信息,将转换信息作为目标信息,从而使用目标信息进行后续处理,减少了签名私钥的安全风险,提高了破解难度。
步骤206,使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。
具体地,终端使用拼接信息对应的哈希值和消息散列值计算第一部分数字签名,并使用第一部分数字签名、拼接信息对应的哈希值和签名私钥计算第二部分数字签名,根据第一部分数字签名和第二部分数字签名得到待签名消息对应的数字签名,然后可以将数字签名和待签名消息一起发送给接收方终端,接收方终端接收到数字签名和待签名消息,对数字签名进行验证,验证通过时,说明得到的待签名消息是未被篡改且由发送方发送的消息。
上述数字签名生成方法、装置、计算机设备和存储介质,通过获取待签名消息,计算待签名消息的消息散列值。获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值,使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。即通过拼接信息对应的哈希值作为随机数来生成数字签名,避免了生成质量低的随机数,从而提高了生成的数字签名的安全性。并且,由于将拼接信息对应的哈希值作为随机数,使得同一私钥和同一待签名消息生成的数字签名是相同的,从而能够应用在同一私钥对同一消息进行数字签名得到相同签名结果的场景中,比如,进行重复性签名的检测,拓展了应用场景。
在一个实施例中,如图3所示,步骤206,即使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名,包括步骤:
步骤302,获取椭圆曲线基点,使用拼接信息对应的哈希值和椭圆曲线基点计算得到椭圆曲线点坐标。
其中,椭圆曲线基点是指椭圆曲线的一个基点坐标,其阶为素数。其中,椭圆曲线是预先选取到的,可以使用复乘或者随机选取方法。椭圆曲线点坐标用于计算数字签名,是使用拼接信息对应的哈希值和椭圆曲线基点计算得到的。
具体地,服务器获取到椭圆曲线基点,计算椭圆曲线基点与拼接信息对应哈希值的乘积,得到椭圆曲线点坐标。可以将拼接信息对应的哈希值转换为正整数,计算该正整数个椭圆曲线基点的和,得到椭圆曲线点坐标。
步骤304,根据椭圆曲线基点确定对应的阶信息,使用消息散列值、椭圆曲线点坐标和阶信息计算得到第一部分数字签名。
其中,阶信息是指椭圆曲线基点对应的阶的值,该值为素数。第一部分数字签名是指数字签名中的第一部分值,该第一部分值是根据消息散列值、椭圆曲线点坐标和阶信息计算得到。
具体地,终端根据椭圆曲线基点确定对应的阶信息,计算消息散列值和椭圆曲线点坐标中横坐标的和,计算消息散列值和椭圆曲线点坐标中横坐标的和与阶信息的取模运算,得到的运算结果,将运算结果作为第一部分数字签名。
步骤306,当第一部分数字签名符合预设第一条件时,使用第一部分数字签名、拼接信息对应的哈希值、签名私钥和阶信息计算得到第二部分数字签名。
其中,预设第一条件是指预先设置好的第一部分数字签名计算正确的条件,可以是第一部分数字签名不为零或者第一部分数字签名不为拼接信息对应的哈希值。第二部分数字签名是指数字签名中的第二部分值,该第二部分值是根据第一部分数字签名、拼接信息对应的哈希值、签名私钥和阶信息计算得到的。
具体地,终端判断第一部分数字签名是否符合预设第一条件,当未符合预设第一条件时,说明第一部分数字签名计算有误,需要重新计算,此时返回将签名私钥和消息散列值拼接,得到拼接信息的步骤,获取预先设置好的签名有误时处理的规则,对拼接信息进行处理,得到处理后的拼接信息,然后使用处理后的拼接信息计算处理后的拼接信息对应的哈希值,使用处理后的拼接信息的哈希值计算得到第一部分数字签名,然后在判断第一部分数字签名是否符合预设第一条件,其中,预先设置好的签名有误时处理的规则可以是获取到预先设置好的特殊符号,比如“$”、“#”、“@”和“&”等,将特殊符号与拼接信息再次进行拼接,得到处理后的拼接信息。预先设置好的签名有误时处理的规则还可以是将签名私钥和消息散列值的拼接信息的进行逆序排列,得到处理后的拼接信息等等。
当符合预设第一条件时,直接使用第一部分数字签名、拼接信息对应的哈希值、签名私钥和阶信息计算第二部分数字签名。
步骤308,当第二部分数字签名符合预设第二条件时,根据第一部分数字签名和第二部分数字签名确定数字签名。
其中,预设第二条件是指预先设置好的第二部分数字签名计算正确的条件,可以是第二部分数字签名不为零。
具体地,判断计算得到的第二部分数字签名是否符合预设第二条件,当未符合预设第二条件时,返回将签名私钥和消息散列值拼接,得到拼接信息,获取预先设置好的签名有误时处理的规则,得到处理后的拼接信息,然后使用处理后的拼接信息计算处理后的拼接信息对应的哈希值,使用处理后的拼接信息的哈希值计算得到第二部分数字签名,然后再判断第二部分数字签名是否符合预设第二条件。其中,预先设置好的签名有误时处理的规则可以是获取到预先设置好的特殊符号,比如“$”、“#”、“@”和“&”等,将特殊符号与签名私钥和消息散列值一起拼接,得到处理后的拼接信息。预先设置好的签名有误时处理的规则还可以是将签名私钥和消息散列值的拼接信息的进行逆序排列,得到处理后的拼接信息等等。
当符合预设第二条件时,根据第一部分数字签名和第二部分数字签名确定待消息信息对应的数字签名。
在上述实施例中,通过使用椭圆曲线基点计算得到椭圆曲线点坐标,使用消息散列值、椭圆曲线点坐标和阶信息计算第一部分数字签名。然后可以使用第一部分数字签名、拼接信息对应的哈希值、签名私钥和阶信息计算第二部分数字签名,最后根据第一部分数字签名和第二部分数字签名确定待消息信息对应的数字签名,提高了得到的数字签名的安全性。
在一个实施例中,如图4所示,将所述待签名消息对应的数字签名作为待验证数字签名,在所述使用所述拼接信息对应的哈希值、所述消息散列值和所述签名私钥生成所述待签名消息对应的数字签名之后,还包括步骤:
步骤402,获取待验证数字签名,当待验证数字签名符合预设签名规则时,计算待验证数字签名的待验证散列值。
其中,待验证数字签名是待签名消息对应的数字签名,是需要进行验证的数字签名。预设签名规则是指预先设置好的验证数字签名的规则,该预设签名规则可以是待验证数字签名是在预设数值范围内。例如,计算椭圆曲线基点的阶信息(n)减去一的值,得到最大值,将1作为最小值,得到预设数值范围[1,n-1]。
具体地,终端获取待验证数字签名,判断待验证数字签名中第一部分数字签名是否符合预设签名规则,当未小于符合预设签名规则时,数字签名验证未通过,当符合预设签名规则时,判断待验证数字签名中第二部分数字签名是否符合预设签名规则,当未符合预设签名规则时,数字签名验证未通过,当符合预设签名规则时,使用哈希值算法计算待验证数字签名的待验证散列值。在一个实施例中,可以获取到发送方的用户标识,将待验证数字签名与发送方的用户标识拼接,使用哈希值算法计算拼接后的待验证散列值。
步骤404,获取待验证数字签名对应的验证公钥,基于待验证数字签名、验证公钥和待验证散列值计算目标第一部分数字签名。
其中,验证公钥是生成待验证数字签名时使用的签名私钥对应的公钥,用于进行数字签名的验证。目标第一部分数字签名是指终端使用验证公钥计算得到的第一部分数字签名。
具体地,终端获取到获取待验证数字签名对应的验证公钥,基于待验证数字签名、验证公钥和待验证散列值计算目标第一部分数字签名。
步骤406,当目标第一部分数字签名与待验证数字签名中的第一部分数字签名一致时,得到数字签名验证通过结果。
具体地,终端判断目标第一部分数字签名是否与待验证数字签名中的第一部分数字签名一致,当目标第一部分数字签名与待验证数字签名中的第一部分数字签名一致时,得到数字签名验证通过结果。当目标第一部分数字签名与待验证数字签名中的第一部分数字签名未一致时,得到数字签名验证未通过结果。
在上述实施例中,通过使用待验证数字签名、验证公钥和待验证散列值计算目标第一部分数字签名,判断目标第一部分数字签名与待验证数字签名中的第一部分数字签名是否一致,从而能够得到待验证数字签名对应的验证结果。
在一个实施例中,如图5所示,步骤404,获取待验证数字签名对应的验证公钥,基于待验证数字签名、验证公钥和待验证散列值计算目标第一部分数字签名,包括步骤:
步骤502,获取椭圆曲线基点,根据待验证数字签名和所述椭圆曲线基点对应的阶信息计算目标值,当目标值符合预设目标条件时,使用待验证数字签名中的第二部分数字签名、椭圆曲线基点、目标值和验证公钥计算待验证椭圆曲线点。
其中,目标值是指将待验证数字签名取模运算后得到的值,预设目标条件是指预先设置好的目标值计算正确的条件,可以是目标值不为零。
具体地,终端获取到椭圆曲线基点,得到椭圆曲线基点对应的阶信息,计算待验证数字签名中第一部分数字签名和第二部分数字签名的和,计算该待验证数字签名中第一部分数字签名和第二部分数字签名的和与椭圆曲线基点的阶信息的取模运算,得到取模结果,将取模结果作为目标值。然后判断目标值是否符合预设目标条件,当未符合预设目标条件时,得到数字签名未通过结果。当符合预设目标条件时,计算待验证数字签名中的第二部分数字签名与椭圆曲线基点之间的乘积,计算目标值与验证公钥之间的乘积,再计算两个乘积之后得到待验证椭圆曲线点。
步骤502,根据待验证椭圆曲线点、待验证散列值和椭圆曲线基点对应的阶信息计算目标第一部分数字签名。
其中,目标第一部分数字签名是根据接收到待验证消息计算得到的第一部分数字签名。
具体地,计算待验证散列值与待验证椭圆曲线点中横坐标的和,计算该待验证散列值与待验证椭圆曲线点中横坐标的和值,获取椭圆曲线基点的阶信息,计算该和值与阶信息的取模运算,即将和值模阶信息运算,将取模结果作为目标第一部分数字签名。
在上述实施例中,通过对待验证数字签名进行验证,能够保证终端接收到的待验证签名对应的消息不被篡改。
在一个具体的实施例中,用户终端A中存储有原始数据,即s椭圆曲线系统参数用户标识ZA、待签名消息M、验证公钥pA和签名私钥dA。如图6所示,数字签名生成方法,包括以下步骤:
第三步:计算k=Hv(dA||e),即将签名私钥dA和消息散列值e拼接,然后使用密码杂凑算法计算拼接结果的值k。
第四步:计算椭圆曲线点(x1,y1)=[k]G,其中,[k]G椭圆曲线上点G的k倍点。即获取到椭圆曲线基点G,计算k个椭圆曲线基点G的和,得到椭圆曲线点(x1,y1)。
第五步:计算r=(e+x1)modn,即计算消息散列值e和椭圆曲线点中横坐标x1的和,并根据椭圆曲线基点G得到对应的阶n,将消息散列值e和椭圆曲线点中横坐标x1的和进行模阶n运算,得到运算结果为第一部分数字签名r。此时,判断r是否为零即是否r=0,或者第一部分数字签名r与k的和是否等于阶n,即是否(r+k)=n,当r=0或者(r+k)=n时,返回第三步重新计算k,当r不等于零且第一部分数字签名r与k的和不等于阶n时,执行第六步。
第六步:计算s=((1-dA)-1·(k-r·dA))modn,计算一减去签名私钥dA的第一值,计算k减去第一部分数字签名r与签名私钥dA乘积的第二值。计算第一值的逆元与第二值的模阶n乘积,得到运算结果为第二部分数字签名s.
第7步:确定数字签名(r,s)。
然后,输出数字签名(r,s)和待签名消息M。
在该实施例中,通过使用将签名私钥dA和消息散列值e拼接,然后使用密码杂凑算法计算拼接结果的值k,然后使用值k去计算得到数字签名,移除了对安全的随机数生成器的依赖,从而提高了使用SM2算法生成的数字签名的安全性。
同时,使同一个消息和同一个私钥计算得到的数字签名(r,s)相同,由于私钥未公开,从而使得到的k也是未公开的,且由于不同消息的消息散列值e不同,所以不同消息生成的k也是不同的,不同私钥生成的k也是不同的,从而能够保证数字签名的安全性的前提下,使同一个消息和同一个私钥计算得到的数字签名相同。即可以应用在要求同一私钥对同一消息进行签名结果一致的场景中,扩宽了应用场景。比如,在检测数字签名重复性的场景中,当多次对同一消息使用同一私钥进行数字签名,得到多个数字签名时,若签名结果一致,便于对数字签名重复性进行检查,避免重复性难以检测。
在一个实施例中,在步骤206之后,在使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名的步骤之后,可以将数字签名和待签名消息进行拼接,计算拼接结果的拼接哈希值,将待签名消息和拼接哈希值发送给发送方终端。发送方终端接收到待验证消息和拼接哈希值时,计算待验证消息的消息散列值,并获取签名私钥,将签名私钥和待验证消息的消息散列值拼接;计算拼接结果的哈希值,根据拼接结果的哈希值、消息散列值和共享私钥生成数字签名;将数字签名与待验证消息拼接,得到拼接结果,计算拼接结果的待验证哈希值;当待验证哈希值与拼接哈希值一致时,数字签名验证通过,进一步提高数字签名安全性。
本申请提供的区块链共识方法,可以应用于如图7所示的应用环境中。其中,包括各个区块链节点101。区块链节点101接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;区块链节点101将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;区块链节点101当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息到其他区块链节点中。其中,区块链节点可以是接入区块链中的任意形式的计算设备,如服务器、用户终端等等。
在一个实施例中,如图8所示,提供了一种区块链共识方法,以该方法应用于图7中的区块链节点为例进行说明,包括以下步骤:
S802,接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值。
其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括公有链、联盟链和私有链。待共识区块是指区块链中新生成的区块,需要进行共识,共识通过后才能写入区块链,如图9所示,待共识区块的区块结构(Block Structure)一个可选的示意图。该待共识区块中包括了区块体信息、区块哈希值和前一区块的哈希值。区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块体信息是指该待共识区块的区块体中存储的信息,该信息是能够写入区块链的数据,该数据可以是文字、图片、视频等等,例如可以是交易数据、账本数据、智能合约数据等等。区块哈希值是使用区块体信息和区块体信息对应的数字签名计算得到的哈希值。该区块体信息对应的数字签名是使用上述实施例中的数字签名生成方法生成的。
具体地,各个区块链节点接收到区块链共识请求,该区块链共识请求可以是区块链中的主节点发送的,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值。
S804,计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果。
其中,共享私钥是指区块链中所有具有共识投票权限的区块链节点拥有的私钥,该共享私钥是根据非对称加密算法生成的密钥对中的私钥,是预先共享到各个具有共识投票权限的区块链节点中的,具有共识投票权限的区块链节点将共享私钥保存。第一拼接结果是指共享私钥和信息散列值的拼接结果,
具体地,当区块链节点中未存储有共享私钥时,就没有权限进行共识。当区块链节点中存储有共享私钥时,计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果。
S806,计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名。
具体地,区块链节点计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名。在一个实施例中,可以获取椭圆曲线基点,使用第一拼接结果的哈希值和椭圆曲线基点计算椭圆曲线点坐标;根据椭圆曲线基点确定对应的阶,使用区块体信息的信息散列值、椭圆曲线点坐标和椭圆曲线基点的阶计算第一部分数字签名,当第一部分数字签名符合预设第一条件时,使用第一部分数字签名、第一拼接结果的哈希值、共享私钥和椭圆曲线基点的阶计算第二部分数字签名;当第二部分数字签名符合预设第二条件时,根据第一部分数字签名和第二部分数字签名确定数字签名。
S808,将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值。
S810,当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。
其中,第二拼接结果是区块体信息和区块体信息对应的数字签名连接得到的。共识通过信息用于表示区块链节点共识验证通过。
具体地,区块链节点当判断第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息到区块链中。
在上述区块链共识方法中,通过区块链节点接收到待共识区块时,计算待共识区块中区块体信息的数字签名,然后将数字签名和区块体信息进行拼接,从而能够计算出拼接结果的哈希值,将拼接结果的哈希值与待共识区块中区块体哈希值进行对比,当一致时,共识验证通过,能够使每个区块链节点使用共享私钥生成相同的数字签名,然后每个区块链节点使用数字签名和区块体信息计算得到哈希值,从而能够保证当区块体信息完整无误时,每个具有共享私钥的区块链节点计算得到的哈希值与接收到的区块哈希值一致,从而能够保证共识成功,提高了区块链共识的安全性。
在一个实施例中,在步骤810之后,即当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息之后,包括步骤:
当共识完成时,将待共识区块和数字签名写入区块链中。
具体地,共识完成是指当超过预设数量的具有共享私钥的区块链节点共识验证通过。比如,超过51%的具有共享私钥的区块链节点共识验证通过,此时,将待共识区块和待共识区块中区块体信息的数字签名一起写入区块链中。从而能够使不同的区块链节点使用共享私钥生成同一待共识区块的数字签名并计算出同一待共识区块的数字签名和区块体信息拼接结果对应的哈希值,并和接收到的区块哈希值进行对比,从而能够使具有共享私钥的区块链节点完成共识,提高了区块链的共识安全性。
在一个实施例中,如图10所示,在当共识完成时,将待共识区块和数字签名写入区块链中之后,还包括步骤:
步骤1002,接收区块写入身份验证指令,根据区块写入身份验证指令获取已写入数字签名,当已写入数字签名符合预设规则时,计算已写入数字签名的待验证散列值。
其中,区块写入身份验证是指验证写入区块中的数字签名是否与使用共享私钥计算出的数字签名一致,用于表明是具有共享私钥的区块链节点写入的数字签名。已写入数字签名是指已经存储在区块链中的数字签名。预设规则是指预先设置好的校验数字签名是否成立的规则。该预设规则可以是已写入数字签名是在预设数值范围内。例如,计算椭圆曲线基点的阶信息(n)减去一的值,得到最大值,将1作为最小值,得到预设数值范围[1,n-1]。
具体地,区块链节点接收区块写入身份验证指令,根据区块写入身份验证指令从区块链中获取到已写入数字签名,判断已写入数字签名是否符合预设规则,当未符合预设规则时,得到已写入数字签名验证未通过,则说明书该数字签名不是具有共享私钥的区块链节点写入的。当已写入数字签名符合预设规则时,使用哈希算法计算已写入数字签名的待验证散列值。
步骤1004,获取共享私钥对应的共享公钥,根据共享公钥和待验证散列值计算身份验证第一部分数字签名。
其中,共享公钥和共享私钥是一对使非对称加密算法生成的密钥对,身份验证第一部分数字签名是指使用共享公钥和待验证散列值计算得到的第一部分数字签名,用于与已写入数字签名中的第一部分数字签名进行对比。
具体地,区块链节点获取共享私钥对应的共享公钥,根据共享公钥和待验证散列值计算身份验证第一部分数字签名,其中,共享公钥可以使用共享私钥计算得到,比如,使用椭圆曲线加密算法生成的共享私钥,可以使用椭圆曲线基点和共享私钥计算得到共享公钥。在一个实施中,获取椭圆曲线基点,使用已写入数字签名和椭圆曲线基点对应的阶信息计算目标值,当目标值符合预设目标条件时,使用已写入数字签名中的第二部分数字签名、椭圆曲线基点、目标值和共享公钥计算待验证椭圆曲线点,根据待验证椭圆曲线点、待验证散列值和椭圆曲线基点计算身份验证第一部分数字签名。
步骤1006,当身份验证第一部分数字签名与已写入数字签名中的第一部分数字签名一致时,得到区块写入身份验证通过结果。
具体地,终端判断身份验证第一部分目标第一部分数字签名与已写入数字签名中的第一部分数字签名是否一致,当未一致时,得到身份验证未通过结果,当一致时,得到身份验证通过结果。
在上述实施例中,区块链节点可以对写入区块链中的数字签名进行验证,当验证通过时,说明该数字签名是具有共享私钥的区块链节点写入的数字签名,方便用户后续的验证。
在一个实施例中,如图11所示,在步骤802之前,即在接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值之前,还包括步骤:
步骤1102,获取到主节点发送的密钥共享请求,密钥共享请求携带有加密的共享密钥信息和主节点数字证书。
其中,主节点是区块链中一个加密完整节点,通过存储有整个区块链副本来支持区块链网络。共享密钥信息是指共享的进行数字签名的密钥对,包括共享私钥和共享公钥。数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。主节点数字证书用于验证该加密的共享密钥信息是否是主节点发送的。
具体地,区块链节点想要加入区块链中,需要从主节点获取到共享私钥,此时,该区块链节点可以获取到主节点发送的密钥共享请求,密钥共享请求携带有加密的共享密钥信息和主节点数字证书。
步骤1104,当验证主节点数字证书通过时,获取节点私钥,使用节点私钥对加密的共享密钥信息进行解密,得到共享密钥信息,共享密钥信息包括共享私钥和对应的共享公钥。
其中,节点私钥是区块链节点在加入到区块链时分配的密钥对中的私钥。该节点私钥和共享私钥是不同的,是区块链节点独有的,每个区块链节点都有对应的节点私钥。
具体地,区块链节点验证主节点数字证书通过时,获取到存储的节点私钥使用节点私钥对加密的共享密钥信息进行解密,得到共享密钥信息,然后将共享密钥信息进行保存。该共享密钥信息中包括共享私钥和对应的共享公钥。在一个实施例中,当验证主节点数字证书通过时,可以直接将加密的共享密钥信息进行保存,在需要使用共享私钥或者共享公钥时,使用节点私钥解密加密的共享密钥信息,得到共享私钥或者共享公钥。
在上述实施例中,通过主节点将共享私钥发送到授权的区块链节点中,使授权的区块链节点存储有共享私钥,能够保证主节点授权的区块链节点具有共享私钥,从而使得到授权的区块链节点能够进行区块链共识验证,提高了区块链的安全性。
本申请还提供一种应用场景,该应用场景应用上述的区块链共识方法。具体地,该区块链共识方法在该应用场景的应用如下:
在电子发票联盟区块链中,通过主节点将共享私钥分配到授权的区块链节点中,区块链节点存储共享私钥。
当电子发票联盟区块链中需要写入新的区块时,区块链节点获取到新的区块中的区块体信息,该区块体信息包括多张需要写入区块链的电子发票信息。
区块链节点计算区块体信息中所有电子发票信息对应的消息散列值,并获取到共享私钥。将消息散列值和共享私钥拼接,得到拼接信息,计算该拼接信息的哈希值。使用拼接信息对应的哈希值、消息散列值和共享私钥生成数字签名。
将数字签名和区块体信息中所有电子发票信息进行拼接,并计算拼接结果的哈希值,即得到该需要写入的区块的哈希值,并从电子发票联盟区块链中获取到上一区块的哈希值,生成新的区块。
广播新的区块共识请求,使电子发票联盟区块链中的各个区块链节点根据该新的区块共识请求获取到新的区块,从而得到待共识区块。
拥有共享私钥的区块链节点计算待共识区块中区块体信息的信息散列值,并获取共享私钥。将共享私钥和信息散列值拼接,计算拼接结果的哈希值。根据拼接结果的哈希值、信息散列值和共享私钥生成数字签名。
将数字签名与区块体信息拼接,计算拼接结果的哈希值。当拼接结果的哈希值与待共识区块中的区块哈希值一致时,广播共识通过信息。当共识完成时,将该新的区块写入到电子发票联盟区块链中进行存储。
应该理解的是,虽然图2-6、8、10、11的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6、8、10、11中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图12所示,提供了一种数字签名生成装置1200,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:消息获取模块1202、计算模块1204和生成模块1206,其中:
消息获取模块1202,用于获取待签名消息,计算待签名消息的消息散列值;
计算模块1204,用于获取签名私钥,将签名私钥和消息散列值拼接,得到拼接信息,计算拼接信息对应的哈希值;
生成模块1206,用于使用拼接信息对应的哈希值、消息散列值和签名私钥生成待签名消息对应的数字签名。
在一个实施例中,计算模块1204,包括:
转换单元,用于获取签名私钥,将签名私钥按照预设转换规则转换为目标信息;
拼接单元,用于将目标信息与消息散列值拼接,得到拼接信息。
在一个实施例中,转换单元,还用于将签名私钥转换为比特串,得到比特串私钥;将比特串私钥逆序排列,得到目标信息。
在一个实施例中,转换单元,还用于:获取预设映射关系,根据预设映射关系获取签名私钥对应的转换信息,将转换信息作为目标信息。
在一个实施例中,生成模块1206,包括:
坐标计算单元,用于获取椭圆曲线基点,使用拼接信息对应的哈希值和椭圆曲线基点计算椭圆曲线点坐标;
第一签名计算单元,用于根据椭圆曲线基点确定对应的阶信息,使用消息散列值、椭圆曲线点坐标和阶信息计算第一部分数字签名;
第二签名计算单元,用于当第一部分数字签名符合预设第一条件时,使用第一部分数字签名、拼接信息对应的哈希值、签名私钥和阶信息计算第二部分数字签名;
签名确定单元,用于当第二部分数字签名符合预设第二条件时,根据第一部分数字签名和第二部分数字签名确定数字签名。
在一个实施例中,数字签名生成装置1200,还包括:
验证计算模块,用于获取待验证数字签名,当待验证数字签名符合预设签名规则时,计算待验证数字签名的待验证散列值;
目标签名计算模块,用于获取待验证数字签名对应的验证公钥,基于待验证数字签名、验证公钥和待验证散列值计算目标第一部分数字签名;
验证模块,用于当目标第一部分数字签名与待验证数字签名中的第一部分数字签名一致时,得到数字签名验证通过结果。
在一个实施例中,目标签名计算模块还用于获取椭圆曲线基点,根据待验证数字签名和椭圆曲线基点对应的阶信息计算目标值,当目标值符合预设目标条件时,获取椭圆曲线基点,使用待验证数字签名中的第二部分数字签名、椭圆曲线基点、目标值和验证公钥计算待验证椭圆曲线点;根据待验证椭圆曲线点、待验证散列值和椭圆曲线基点对应的阶信息计算目标第一部分数字签名。
关于数字签名生成装置的具体限定可以参见上文中对于数字签名生成方法的限定,在此不再赘述。上述数字签名生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图13所示,提供了一种区块链共识装置1300,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:请求接收模块1302、拼接模块1304、数字签名生成模块1306、哈希值计算模块1308和哈希值验证模块1310,其中:
请求接收模块1302,用于接收区块链共识请求,区块链共识请求中携带待共识区块,待共识区块包括区块体信息和区块哈希值;
拼接模块1304,用于计算区块体信息的信息散列值,并获取共享私钥,将共享私钥和信息散列值拼接,得到第一拼接结果;
数字签名生成模块1306,用于计算第一拼接结果的哈希值,根据第一拼接结果的哈希值、信息散列值和共享私钥生成数字签名;
哈希值计算模块1308,用于将数字签名与区块体信息拼接,得到第二拼接结果,计算第二拼接结果的哈希值;
哈希值验证模块1310,用于当第二拼接结果的哈希值与区块哈希值一致时,广播共识通过信息。
在一个实施例中,区块链共识装置1300,还包括:
写入模块,用于当共识完成时,将待共识区块和数字签名写入区块链中。
在一个实施例中,区块链共识装置1300,还包括:
指令接收模块,用于接收区块写入身份验证指令,根据区块写入身份验证指令获取已写入数字签名,当已写入数字签名符合预设规则时,计算已写入数字签名的待验证散列值;
验证签名计算模块,用于获取共享私钥对应的共享公钥,根据共享公钥和待验证散列值计算身份验证第一部分数字签名;
验证模块,用于当身份验证第一部分数字签名与已写入数字签名中的第一部分数字签名一致时,得到区块写入身份验证通过结果。
在一个实施例中,区块链共识装置1300,还包括:
密钥共享模块,用于获取到主节点发送的密钥共享请求,密钥共享请求携带有加密的共享密钥信息和主节点数字证书;
解密模块,用于当验证主节点数字证书通过时,获取节点私钥,使用节点私钥对加密的共享密钥信息进行解密,得到共享密钥信息,共享密钥信息包括共享私钥和对应的共享公钥。
关于区块链共识装置的具体限定可以参见上文中对于区块链共识方法的限定,在此不再赘述。上述区块链共识装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储签名私钥或者存储区块链数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数字签名生成或者区块链共识方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数字签名生成或者区块链共识方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图15或者图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种数字签名方法,其特征在于,所述方法包括:
获取待签名消息,计算待签名消息的消息散列值;
获取签名私钥,将所述签名私钥和所述消息散列值拼接,得到拼接信息,计算所述拼接信息对应的哈希值;
使用所述拼接信息对应的哈希值、所述消息散列值和所述签名私钥生成所述待签名消息对应的数字签名。
2.根据权利要求1所述的方法,其特征在于,所述获取签名私钥,将所述签名私钥和所述消息散列值拼接,得到拼接信息,包括:
获取签名私钥,将所述签名私钥按照预设转换规则转换为目标信息;
将所述目标信息与所述消息散列值拼接,得到所述拼接信息。
3.根据权利要求2所述的方法,其特征在于,所述将所述签名私钥按照预设转换规则转换为目标信息,包括:
将所述签名私钥转换为比特串,得到比特串私钥;
将所述比特串私钥逆序排列,得到所述目标信息。
4.根据权利要求2所述的方法,其特征在于,所述将所述签名私钥按照预设转换规则转换为目标信息,包括:
获取预设映射关系,根据所述预设映射关系获取所述签名私钥对应的转换信息,将所述转换信息作为所述目标信息。
5.根据权利要求1所述的方法,其特征在于,所述使用所述拼接信息对应的哈希值、所述消息散列值和所述签名私钥生成所述待签名消息对应的数字签名,包括:
获取椭圆曲线基点,使用所述拼接信息对应的哈希值和所述椭圆曲线基点计算得到椭圆曲线点坐标;
根据所述椭圆曲线基点确定对应的阶信息,使用所述消息散列值、所述椭圆曲线点坐标和所述阶信息计算得到第一部分数字签名;
当所述第一部分数字签名符合预设第一条件时,使用所述第一部分数字签名、所述拼接信息对应的哈希值、所述签名私钥和所述阶信息计算得到第二部分数字签名;
当所述第二部分数字签名符合预设第二条件时,根据所述第一部分数字签名和第二部分数字签名确定所述数字签名。
6.根据权利要求1所述的方法,其特征在于,将所述待签名消息对应的数字签名作为待验证数字签名,在所述使用所述拼接信息对应的哈希值、所述消息散列值和所述签名私钥生成所述待签名消息对应的数字签名之后,还包括:
获取待验证数字签名,当所述待验证数字签名符合预设签名规则时,计算所述待验证数字签名的待验证散列值;
获取所述待验证数字签名对应的验证公钥,基于所述待验证数字签名、所述验证公钥和所述待验证散列值计算目标第一部分数字签名;
当所述目标第一部分数字签名与所述待验证数字签名中的第一部分数字签名一致时,得到数字签名验证通过结果。
7.根据权利要求6所述的方法,其特征在于,所述获取所述待验证数字签名对应的验证公钥,基于所述待验证数字签名、所述验证公钥和所述待验证散列值计算目标第一部分数字签名,包括:
获取椭圆曲线基点,根据所述待验证数字签名和所述椭圆曲线基点对应的阶信息计算目标值,当所述目标值符合预设目标条件时,获取椭圆曲线基点,使用所述待验证数字签名中的第二部分数字签名、所述椭圆曲线基点、所述目标值和所述验证公钥计算待验证椭圆曲线点;
根据所述待验证椭圆曲线点、所述待验证散列值和所述椭圆曲线基点对应的阶信息计算目标第一部分数字签名。
8.一种区块链共识方法,其特征在于,所述方法包括:
接收区块链共识请求,所述区块链共识请求中携带待共识区块,所述待共识区块包括区块体信息和区块哈希值;
计算所述区块体信息的信息散列值,并获取共享私钥,将所述共享私钥和所述信息散列值拼接,得到第一拼接结果;
计算所述第一拼接结果的哈希值,根据所述第一拼接结果的哈希值、所述信息散列值和所述共享私钥生成数字签名;
将所述数字签名与所述区块体信息拼接,得到第二拼接结果,计算所述第二拼接结果的哈希值;
当所述第二拼接结果的哈希值与所述区块哈希值一致时,广播共识通过信息。
9.根据权利要求8所述的方法,其特征在于,所述当所述第二拼接结果的哈希值与所述区块哈希值一致时,广播共识通过信息之后,包括:
当共识完成时,将所述待共识区块和所述数字签名写入区块链中。
10.根据权利要求9所述的方法,其特征在于,在所述当共识完成时,将所述待共识区块和所述数字签名写入区块链中之后,还包括:
接收区块写入身份验证指令,根据所述区块写入身份验证指令获取已写入数字签名,当所述已写入数字签名符合预设规则时,计算所述已写入数字签名的待验证散列值;
获取所述共享私钥对应的共享公钥,根据所述共享公钥和所述待验证散列值计算身份验证第一部分数字签名;
当所述身份验证第一部分数字签名与所述已写入数字签名中的第一部分数字签名一致时,得到区块写入身份验证通过结果。
11.根据权利要求8所述的方法,其特征在于,在所述接收区块链共识请求,所述区块链共识请求中携带待共识区块,所述待共识区块包括区块体信息和区块哈希值之前,还包括:
接收主节点发送的密钥共享请求,所述密钥共享请求携带有加密的共享密钥信息和主节点数字证书;
当验证所述主节点数字证书通过时,获取节点私钥,使用所述节点私钥对所述加密的共享密钥信息进行解密,得到共享密钥信息,所述共享密钥信息包括共享私钥和对应的共享公钥。
12.一种数字签名生成装置,其特征在于,所述装置包括:
消息获取模块,用于获取待签名消息,计算待签名消息的消息散列值;
计算模块,用于获取签名私钥,将所述签名私钥和所述消息散列值拼接,得到拼接信息,计算所述拼接信息对应的哈希值;
生成模块,用于使用所述拼接信息对应的哈希值、所述消息散列值和所述签名私钥生成所述待签名消息对应的数字签名。
13.一种区块链共识装置,其特征在于,所述装置包括:
请求接收模块,用于接收区块链共识请求,所述区块链共识请求中携带待共识区块,所述待共识区块包括区块体信息和区块哈希值;
拼接模块,用于计算所述区块体信息的信息散列值,并获取共享私钥,将所述共享私钥和所述信息散列值拼接,得到第一拼接结果;
数字签名生成模块,用于计算所述第一拼接结果的哈希值,根据所述第一拼接结果的哈希值、所述信息散列值和所述共享私钥生成数字签名;
哈希值计算模块,用于将所述数字签名与所述区块体信息拼接,得到第二拼接结果,计算所述第二拼接结果的哈希值;
哈希值验证模块,用于当所述第二拼接结果的哈希值与所述区块哈希值一致时,广播共识通过信息。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010455968.9A CN111628868B (zh) | 2020-05-26 | 2020-05-26 | 数字签名生成方法、装置、计算机设备和存储介质 |
PCT/CN2021/089142 WO2021238527A1 (zh) | 2020-05-26 | 2021-04-23 | 数字签名生成方法、装置、计算机设备和存储介质 |
US17/722,189 US20220247573A1 (en) | 2020-05-26 | 2022-04-15 | Digital signature generation method and apparatus, computer device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010455968.9A CN111628868B (zh) | 2020-05-26 | 2020-05-26 | 数字签名生成方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111628868A true CN111628868A (zh) | 2020-09-04 |
CN111628868B CN111628868B (zh) | 2021-08-13 |
Family
ID=72260005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010455968.9A Active CN111628868B (zh) | 2020-05-26 | 2020-05-26 | 数字签名生成方法、装置、计算机设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220247573A1 (zh) |
CN (1) | CN111628868B (zh) |
WO (1) | WO2021238527A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112184440A (zh) * | 2020-09-29 | 2021-01-05 | 平安科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN112686672A (zh) * | 2021-01-08 | 2021-04-20 | 新晨科技股份有限公司 | 区块链上背书签名压缩方法、电子设备及存储介质 |
CN112737778A (zh) * | 2020-12-30 | 2021-04-30 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 数字签名生成、验证方法及装置、电子设备及存储介质 |
CN112989398A (zh) * | 2021-05-18 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN113055188A (zh) * | 2021-03-02 | 2021-06-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
US20210377046A1 (en) * | 2020-05-29 | 2021-12-02 | Steffen Fries | Method, system, transmitter, and receiver for authenticating a transmitter |
WO2021238527A1 (zh) * | 2020-05-26 | 2021-12-02 | 腾讯科技(深圳)有限公司 | 数字签名生成方法、装置、计算机设备和存储介质 |
CN113904854A (zh) * | 2021-10-13 | 2022-01-07 | 筹远(上海)信息科技有限公司 | 一种基于商密算法的区块链数据加密方法及装置 |
CN114187000A (zh) * | 2021-12-10 | 2022-03-15 | 建信金融科技有限责任公司 | 用于分散私钥的签名方法、设备、存储介质及处理器 |
CN114614992A (zh) * | 2022-03-11 | 2022-06-10 | 深圳市名竹科技有限公司 | 签名值输出及验证方法、装置、计算机设备、存储介质 |
WO2022183998A1 (zh) * | 2021-03-02 | 2022-09-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN115242402A (zh) * | 2022-07-12 | 2022-10-25 | 长春吉大正元信息技术股份有限公司 | 签名方法、验签方法及电子设备 |
WO2023070830A1 (zh) * | 2021-10-28 | 2023-05-04 | 深圳前海微众银行股份有限公司 | 一种区块链下基于sm2的交易签名方法及装置 |
CN116074012A (zh) * | 2022-11-09 | 2023-05-05 | 深圳市普森斯科技有限公司 | 一种消息摘要生成方法、装置、计算机设备及存储介质 |
CN116910792A (zh) * | 2023-09-12 | 2023-10-20 | 武汉汉王数据技术有限公司 | 一种人工智能生成内容处理方法、系统、设备及存储介质 |
CN117240477A (zh) * | 2023-11-13 | 2023-12-15 | 泉州信息工程学院 | 一种基于rsa算法的数字签名方法、系统及存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220141014A1 (en) * | 2020-11-05 | 2022-05-05 | PolySign, Inc. | Storing secret data on a blockchain |
US11902451B2 (en) * | 2021-07-01 | 2024-02-13 | Fujitsu Limited | Cross-blockchain identity and key management |
EP4409838A1 (en) * | 2021-10-01 | 2024-08-07 | Mastercard International Incorporated | Method and system for blockchain-based transactions for the atomic exchange of assets |
CN114049123B (zh) * | 2022-01-12 | 2022-10-04 | 杭州趣链科技有限公司 | 区块链的共识方法、装置、计算机设备和存储介质 |
CN114338047A (zh) * | 2022-03-08 | 2022-04-12 | 科大天工智能装备技术(天津)有限公司 | 基于国密的区块链工业数据加密方法、装置及存储介质 |
CN114584326B (zh) * | 2022-05-07 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、电子设备及存储介质 |
CN115208615B (zh) * | 2022-05-20 | 2023-12-19 | 北京科技大学 | 一种数控系统数据加密传输方法 |
CN114792270B (zh) * | 2022-06-27 | 2022-09-23 | 浙江数秦科技有限公司 | 基于区块链的贷款合同在线签署系统 |
CN116961925B (zh) * | 2023-09-18 | 2023-12-19 | 北京信安世纪科技股份有限公司 | 签名方法、系统、电子设备及存储介质 |
CN117574448B (zh) * | 2024-01-16 | 2024-04-09 | 确信信息股份有限公司 | 基于事件的电子签名方法、系统、介质及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425898A (zh) * | 2007-10-31 | 2009-05-06 | 上海交通大学 | 数字签名和验证数字签名的方法、系统、设备和生成器 |
US20140372765A1 (en) * | 2012-04-27 | 2014-12-18 | Certicom Corp. | Hashing Prefix-Free Values in a Signature Scheme |
CN108600262A (zh) * | 2018-05-09 | 2018-09-28 | 合肥达朴汇联科技有限公司 | 一种包括作为接收方的区块链节点的装置 |
CN109831458A (zh) * | 2019-03-21 | 2019-05-31 | 浙江工商大学 | 一种iot电子行为记录管理系统 |
US20190260592A1 (en) * | 2018-02-22 | 2019-08-22 | Idlogiq Inc. | Methods for secure serialization of supply chain product units |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011719A (zh) * | 2017-11-16 | 2018-05-08 | 深圳市文鼎创数据科技有限公司 | 一种签名方法、装置及数字签名系统 |
CN111628868B (zh) * | 2020-05-26 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 数字签名生成方法、装置、计算机设备和存储介质 |
-
2020
- 2020-05-26 CN CN202010455968.9A patent/CN111628868B/zh active Active
-
2021
- 2021-04-23 WO PCT/CN2021/089142 patent/WO2021238527A1/zh active Application Filing
-
2022
- 2022-04-15 US US17/722,189 patent/US20220247573A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425898A (zh) * | 2007-10-31 | 2009-05-06 | 上海交通大学 | 数字签名和验证数字签名的方法、系统、设备和生成器 |
US20140372765A1 (en) * | 2012-04-27 | 2014-12-18 | Certicom Corp. | Hashing Prefix-Free Values in a Signature Scheme |
US20190260592A1 (en) * | 2018-02-22 | 2019-08-22 | Idlogiq Inc. | Methods for secure serialization of supply chain product units |
CN108600262A (zh) * | 2018-05-09 | 2018-09-28 | 合肥达朴汇联科技有限公司 | 一种包括作为接收方的区块链节点的装置 |
CN109831458A (zh) * | 2019-03-21 | 2019-05-31 | 浙江工商大学 | 一种iot电子行为记录管理系统 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021238527A1 (zh) * | 2020-05-26 | 2021-12-02 | 腾讯科技(深圳)有限公司 | 数字签名生成方法、装置、计算机设备和存储介质 |
US11736301B2 (en) * | 2020-05-29 | 2023-08-22 | Siemens Aktiengesellschaft | Method, system, transmitter, and receiver for authenticating a transmitter |
US20210377046A1 (en) * | 2020-05-29 | 2021-12-02 | Steffen Fries | Method, system, transmitter, and receiver for authenticating a transmitter |
CN112184440A (zh) * | 2020-09-29 | 2021-01-05 | 平安科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN112737778A (zh) * | 2020-12-30 | 2021-04-30 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 数字签名生成、验证方法及装置、电子设备及存储介质 |
CN112737778B (zh) * | 2020-12-30 | 2022-08-12 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 数字签名生成、验证方法及装置、电子设备及存储介质 |
CN112686672A (zh) * | 2021-01-08 | 2021-04-20 | 新晨科技股份有限公司 | 区块链上背书签名压缩方法、电子设备及存储介质 |
CN113055188A (zh) * | 2021-03-02 | 2021-06-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113055188B (zh) * | 2021-03-02 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
WO2022183998A1 (zh) * | 2021-03-02 | 2022-09-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112989398A (zh) * | 2021-05-18 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN112989398B (zh) * | 2021-05-18 | 2021-07-30 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN113904854B (zh) * | 2021-10-13 | 2024-01-02 | 筹远(上海)信息科技有限公司 | 一种基于商密算法的区块链数据加密方法及装置 |
CN113904854A (zh) * | 2021-10-13 | 2022-01-07 | 筹远(上海)信息科技有限公司 | 一种基于商密算法的区块链数据加密方法及装置 |
WO2023070830A1 (zh) * | 2021-10-28 | 2023-05-04 | 深圳前海微众银行股份有限公司 | 一种区块链下基于sm2的交易签名方法及装置 |
CN114187000B (zh) * | 2021-12-10 | 2024-08-23 | 建信金融科技有限责任公司 | 用于分散私钥的签名方法、设备、存储介质及处理器 |
CN114187000A (zh) * | 2021-12-10 | 2022-03-15 | 建信金融科技有限责任公司 | 用于分散私钥的签名方法、设备、存储介质及处理器 |
CN114614992B (zh) * | 2022-03-11 | 2023-10-13 | 深圳市名竹科技有限公司 | 签名值输出及验证方法、装置、计算机设备、存储介质 |
CN114614992A (zh) * | 2022-03-11 | 2022-06-10 | 深圳市名竹科技有限公司 | 签名值输出及验证方法、装置、计算机设备、存储介质 |
CN115242402A (zh) * | 2022-07-12 | 2022-10-25 | 长春吉大正元信息技术股份有限公司 | 签名方法、验签方法及电子设备 |
CN115242402B (zh) * | 2022-07-12 | 2023-05-30 | 长春吉大正元信息技术股份有限公司 | 签名方法、验签方法及电子设备 |
CN116074012A (zh) * | 2022-11-09 | 2023-05-05 | 深圳市普森斯科技有限公司 | 一种消息摘要生成方法、装置、计算机设备及存储介质 |
CN116910792A (zh) * | 2023-09-12 | 2023-10-20 | 武汉汉王数据技术有限公司 | 一种人工智能生成内容处理方法、系统、设备及存储介质 |
CN117240477A (zh) * | 2023-11-13 | 2023-12-15 | 泉州信息工程学院 | 一种基于rsa算法的数字签名方法、系统及存储介质 |
CN117240477B (zh) * | 2023-11-13 | 2024-02-23 | 泉州信息工程学院 | 一种基于rsa算法的数字签名方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220247573A1 (en) | 2022-08-04 |
WO2021238527A1 (zh) | 2021-12-02 |
CN111628868B (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111628868B (zh) | 数字签名生成方法、装置、计算机设备和存储介质 | |
CN111079128B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
EP3779792B1 (en) | Two-dimensional code generation method, data processing method, apparatus, and server | |
US10103888B2 (en) | Method of performing keyed-hash message authentication code (HMAC) using multi-party computation without Boolean gates | |
US9531540B2 (en) | Secure token-based signature schemes using look-up tables | |
CN109818730B (zh) | 盲签名的获取方法、装置和服务器 | |
US9219602B2 (en) | Method and system for securely computing a base point in direct anonymous attestation | |
US20150288527A1 (en) | Verifiable Implicit Certificates | |
CN111147245A (zh) | 一种区块链中使用国家密码进行加密的算法 | |
CN109978543B (zh) | 一种合同签署的方法、装置、电子设备及存储介质 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
CN113610526A (zh) | 一种数据信任方法、装置、电子设备及存储介质 | |
CN113836506A (zh) | 身份认证方法、装置、系统、电子设备、存储介质 | |
CN107104788B (zh) | 终端及其不可抵赖的加密签名方法和装置 | |
KR20120091618A (ko) | 연쇄 해시에 의한 전자서명 시스템 및 방법 | |
CN111949996B (zh) | 安全私钥的生成方法、加密方法、系统、设备及介质 | |
CN111628985A (zh) | 安全访问控制方法、装置、计算机设备和存储介质 | |
CN117795901A (zh) | 生成数字签名份额 | |
CN118160273A (zh) | 生成共享密钥 | |
CN107947938A (zh) | 针对pdf使用sm3算法和sm2算法数字签名的验证方法和系统 | |
CN113872769A (zh) | 基于puf的设备认证方法、装置、计算机设备及存储介质 | |
CN114239004A (zh) | 电子签章生成方法、装置、计算机设备和存储介质 | |
CN117040760B (zh) | 一种支持双算法的版式文件签章方法 | |
CN112784314B (zh) | 一种数据完整性检测方法、装置、电子设备及存储介质 | |
CN115694818A (zh) | 数据一致性校验方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028470 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |