CN106878022B - 在区块链上签名、验证的方法及装置 - Google Patents

在区块链上签名、验证的方法及装置 Download PDF

Info

Publication number
CN106878022B
CN106878022B CN201710082714.5A CN201710082714A CN106878022B CN 106878022 B CN106878022 B CN 106878022B CN 201710082714 A CN201710082714 A CN 201710082714A CN 106878022 B CN106878022 B CN 106878022B
Authority
CN
China
Prior art keywords
message
point
verified
elliptic curve
public key
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.)
Active
Application number
CN201710082714.5A
Other languages
English (en)
Other versions
CN106878022A (zh
Inventor
张一锋
徐忠
姚前
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bill Exchange Co.,Ltd.
ZHONGCHAO CREDITCARD INDUSTRY DEVELOPMENT CO., LTD. HANGZHOU BLOCKCHAIN TECHNOLOGY Research Institute
Original Assignee
Zhongchao Credit Card Industry Development Co Ltd Hangzhou Blockchain Technology Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongchao Credit Card Industry Development Co Ltd Hangzhou Blockchain Technology Research Institute filed Critical Zhongchao Credit Card Industry Development Co Ltd Hangzhou Blockchain Technology Research Institute
Priority to CN201710082714.5A priority Critical patent/CN106878022B/zh
Publication of CN106878022A publication Critical patent/CN106878022A/zh
Application granted granted Critical
Publication of CN106878022B publication Critical patent/CN106878022B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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/3252Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种在区块链上签名、验证的方法及装置。其中,该在区块链上进行签名的方法包括:基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,判断标识v用于标识所述y1的奇偶性;基于获得的椭圆曲线点R的坐标(x1,y1)、待签名消息发送方的私钥和判断标识v,计算待签名消息的数字签名,数字签名包含判断标识v。该区块链上签名、验证的方法及装置能够减少签名的数据量以提升吞吐量。

Description

在区块链上签名、验证的方法及装置
技术领域
本发明属于区块链技术领域,尤其涉及一种在区块链上签名、验证的方法及装置。
背景技术
在区块链上交易验证以及区块生成需要进行大量的签名验签运算,因此需要减少签名的数据量以提升吞吐量。
采用现有的国密SM2算法签名,签名后需要传送的数据包括:待签名消息、签名结果和公钥。使得在签名数据传输中增加了64字节的公钥数据。另外由于公钥是需要参与签名的验证,所以也无法采用现在区块链上普遍采用的外部账户地址(address)的机制进行数字签名的验证。
发明内容
本发明实施例提供了一种在区块链上签名、验证的方法及装置,能够减少签名的数据量以提升吞吐量。
第一方面,提供了一种基于SM2椭圆曲线算法在区块链上进行签名的方法,包括:基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,判断标识v用于标识所述y1的奇偶性;基于获得的椭圆曲线点R的坐标(x1,y1)、待签名消息发送方的私钥和判断标识v,计算待签名消息的数字签名,数字签名包含判断标识v。
第二方面,提供了一种基于SM2椭圆曲线算法在区块链上进行验证的方法,包括:接收待验证消息和待验证消息的数字签名,其中,待验证消息的数字签名包含判断标识v′;基于待验证消息和判断标识v′获得用于生成待验证消息的数字签名的椭圆曲线点R′的坐标(x1′,y1′),其中,判断标识v′用于判断y1′的奇偶性;根据点R′的坐标(x1′,y1′)计算待验证消息的发送方的公钥P′点的坐标,基于计算得到的待验证消息的发送方的公钥P′点的坐标与预存公钥信息,对待验证消息的数字签名进行验证。
第三方面,提供了一种基于SM2椭圆曲线算法在区块链上进行签名的装置,包括:处理单元和第一签名单元。该处理单元被配置为基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,判断标识v用于标识所述y1的奇偶性。该第一签名单元被配置为基于获得的椭圆曲线点R的坐标(x1,y1)、待签名消息发送方的私钥和判断标识v,计算待签名消息的数字签名,数字签名包含判断标识v。
第四方面,提供了一种基于SM2椭圆曲线算法在区块链上进行验证的装置,包括:接收单元、计算单元和验证单元。该接收单元被配置为接收待验证消息和待验证消息的数字签名,其中,待验证消息的数字签名包含判断标识v′;该计算单元被配置为基于待验证消息和判断标识v′获得用于生成待验证消息的数字签名的椭圆曲线点R′的坐标(x1′,y1′),其中,判断标识v′用于判断y1′的奇偶性;该验证单元被配置为根据点R′的坐标(x1′,y1′)计算待验证消息的发送方的公钥P′点的坐标,基于计算得到的待验证消息的发送方的公钥P′点的坐标与预存公钥信息,对待验证消息的数字签名进行验证。
根据本发明实施例提供的基于SM2椭圆曲线算法的在区块链上签名、验证的方法及装置,通过在签名过程中设置一个能够判断椭圆曲线点R的坐标(x1,y1)中y1奇偶性的判断标识v,使得在验证过程中,在接收待验证消息和包含判断标识v′待验证消息的数字签名后可以计算恢复出数字签名发送方的公钥,从而实现交易发送的签名数据中只增加一个1字节代替了公钥的64字节的传输,减少了签名数据量以提高吞吐量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种实施例的在区块链网络的示意性网络结构图;
图2是本发明一种实施例的在区块链上签名、验证的方法的应用场景示意图;
图3是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行签名的方法的示意性流程图;
图4是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行验证的方法的示意性流程图;
图5是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行签名、验证的方法的示意性流程图;
图6是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行签名的装置的示意性框图;
图7是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行验证的装置的示意性框图;
图8是本发明另一种实施例的基于SM2椭圆曲线算法在区块链上进行验证的装置的示意性框图;
图9是本发明一种实施例的实施例的基于SM2椭圆曲线算法在区块链上进行验证的装置的计算设备实现的示意性框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1是本发明一种实施例的在区块链网络的示意性网络结构图。如图1所示,该场景的区块链网络系统可以包括由多个网络节点组成的对等计算机网络(P2P)。该区块链网络系统可以是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。“Peer”在英语里有“对等者、伙伴、对端”的意义。该系统也可以定义为:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者(Server),又是资源、服务和内容的获取者(Client)。
在P2P网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如CPU计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等;在一个示例中,在是上述网络节点生成交易信息并发送给其他网络节点时需要进行数字签名,数字签名的主要目标是用来确认信息的发送者认可了自己的行为。类似传统的签名一样,一旦某个网络节点用户签署了某份文件,则表示其认可所签署文件的真实性,并能证明为自己所签署。数字签名也一样,用来证明某网络节点用户签署了某份文件。采用现有的国密SM2算法签名结果需要传送的数据包括:待签名信息、签名结果和公钥。使得在签名数据传输中增加了64字节的公钥数据。另外由于公钥是需要参与签名的验证,所以也无法采用现在区块链上普遍采用的外部账户地址(address)的机制进行数字签名的验证。
图2是本发明一种实施例的在区块链上签名、验证的方法的应用场景示意图。如图2所示,包括在区块链网络中的信息发送者也就是数字签名发送发和信息接收者也就是数字签名的接收方。数字签名的发送发对待签名消息进行签名,并将待签名消息、数字签名和自身的公钥发送给信息接收者,导致增加了数据量以降低了吞吐量。
为解决上述技术问题,本发明实施例提出一种基于SM2椭圆曲线算法在区块链上进行签名的方法和验证方法。下面结合附图3对该基于SM2椭圆曲线算法在区块链上进行签名的方法进行详细说明。
图3是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行签名的方法的示意性流程图。如图3所示,该基于SM2椭圆曲线算法在区块链上进行签名的方法S300,包括:S310,基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,判断标识v用于标识所述y1的奇偶性;S320,基于获得的椭圆曲线点R的坐标(x1,y1)、待签名消息发送方的私钥和判断标识v,计算待签名消息的数字签名,数字签名包含判断标识v。该方法可用于数字签名发送方节点通过签名过程中设置一个能够判断椭圆曲线点R的坐标(x1,y1)中y1奇偶性的判断标识v使得在在发送数字签名时给数字签名接收方进行验证时,只需发送包含数字签名、待签名消息和一个字节的判断标识V,从而实现交易发送的签名数据中只增加一个1字节代替了公钥的64字节的传输,减少了签名数据量以提高吞吐量。
图4是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行验证的方法的示意性流程图。该基于SM2椭圆曲线算法在区块链上进行验证的方法S400,包括:S410,接收待验证消息和待验证消息的数字签名,其中,待验证消息的数字签名包含判断标识v′;S420,基于待验证消息和判断标识v′获得用于生成待验证消息的数字签名的椭圆曲线点R′的坐标(x1′,y1′),其中,判断标识v′用于判断y1′的奇偶性;S430,根据点R′的坐标(x1′,y1′)计算待验证消息的发送方的公钥P′点的坐标,基于计算得到的待验证消息的发送方的公钥P′点的坐标与预存公钥信息,对待验证消息的数字签名进行验证。该方法可用于数字签名接收方节点,该方法通过签名过程中设置一个能够判断椭圆曲线点R的坐标(x1,y1)中y1奇偶性的判断标识v使得在验证过程中,在接收待验证消息和包含判断标识v′待验证消息的数字签名后可以计算恢复出数字签名发送方的公钥,从而实现交易发送的签名数据中只增加一个1字节代替了公钥的64字节的传输,减少了签名数据量以提高吞吐量。
在一些实施例中,由于数字签名接收者节点也能作为其他数字签名接收方节点的数字签名发送方节点,所以该基于SM2椭圆曲线算法在区块链上进行验证的方法还可以包括:基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,判断标识v用于标识所述y1的奇偶性;基于获得的椭圆曲线点R的坐标(x1,y1)、待签名消息发送方的私钥和判断标识v,计算待签名消息的数字签名,数字签名包含判断标识v。
在一些实施例中,在恢复出公钥点P后可以通过多种方式对数字签名进行验证,在一些示例中,该基于SM2椭圆曲线算法在区块链上进行验证的方法还可以包括接收待验证消息的发送方的公钥P点的坐标或公钥P点的坐标在区块链上的地址,其中,预存公钥信息包括接收的公钥P点的坐标或公钥P点的坐标在区块链上的地址。在一些示例中,该基于SM2椭圆曲线算法在区块链上进行验证的方法还可以包括:基于公钥P点的坐标或公钥P点的坐标在区块链上的地址对计算获得的待验证消息的发送方的公钥P′点的坐标进行校验,以对待验证消息的数字签名进行验证。
在一些示例中,该基于SM2椭圆曲线算法在区块链上进行验证的方法可以包括基于判断标识v′确定椭圆曲线点R′的坐标(x1′,y1′)中的y1′。
根据一些实施例,该基于SM2椭圆曲线算法在区块链上进行验证的方法可以包括基于计算生成的待签名消息的数字签名和待签名消息,计算自身公钥P点的坐标的存储地址并保存在区块链上。在一些示例中,也可以基于接收的待验证消息和待验证消息的数字签名计算待签验证消息的发送方的公钥P点的坐标的存储地址并保存在区块链上。例如,P点的坐标可以通过Hash等方式变化成字节更少的外部账户地址(address)保存在区块链上,从而能够减少区块链上保存的数据量。
下面结合图5对区块链网络中的两个网络节点进行签名和验证的过程进行详细描述,图5是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行签名、验证的方法的示意性流程图。如图5所示,在信息发送者节点中执行S310和S320已进行待签名消息的签名,并将签名后的信息发送给信息接收者节点,例如,信息发送者节点为了获取消息M的数字签名(r,s,v)可执行如下步骤:
●A1:计算e=Hv(M1);其中,M1待签名消息,Hv()为消息摘要长度为v比特的密码杂凑函数,e:密码杂凑函数作用于消息M的输出值。这一步是对待签名消息进行摘要运算得到e,
●A2:随机产生k∈[1,n-1];其中,k为1到n-1之间的大整数。
●A3:计算R(x1,y1)=kG;其中,G:椭圆曲线的一个基点,其阶为素数。
●A4:计算v:如果y1奇数,v为1;如果y1为偶数,v为0;
●A5:计算r=(e+x1)modn,若r=0或r+k=n则返回A3;其中,modn为模n运算。例如,23mod7=2
●A6:计算s=((1+dA)-1(k--rdA))mod n,若s=0则返回A3;其中,dA:用户A的私钥。
●A7:消息M的签名为(r,s,v)。
信息接收者节点在接收到信息发送者发送来的数据包之后,对数据包中的数字签名进行验证,具体执行S410、S420和S430描述的基于SM2椭圆曲线算法在区块链上进行验证的方法。例如,信息接收者节点接收到的数字签名(r′,s′,v),待验证消息M′和信息发送者节点的公钥在区块链上的地址Address。信息接收者节点为了对数字签名(r′,s′,v)进行验证可执行如下步骤:
●B1:检验r′∈[1,n-1],否则不通过;其中,r′为1到n-1之间的大整数。
●B2:检验s′∈[1,n-1],否则不通过;其中,s′为1到n-1之间的大整数。
●B3:计算e′=Hv(M1′);对待签消息进行摘要运算得到e′。
●B4:计算Xr=(r-e)mod n;恢复R点的x坐标
●B5:通过Xr和v计算出Yr,并恢复出R点(Xr,Yr);
●B6:计算s=(r′+s′)-1mod n;
●B7:计算t=s′(r′+s′)-1mod n
●B8:计算公钥P(x,y)=sR-tG;恢复出公钥P点。
●B9:计算address′=H(x||y),检验address′=Address,相等通过,不相等不通过。其中,x||y:x与y的拼接,其中x、y可以是比特串或字节串。H(x||y)对x与y的拼接做哈希运算。
通过签名过程中设置一个能够判断椭圆曲线点R的坐标(x1,y1)中y1奇偶性的判断标识v使得在验证过程中,在接收待验证消息和包含判断标识v′待验证消息的数字签名后可以计算恢复出数字签名发送方的公钥,从而实现交易发送的签名数据中只增加一个1字节代替了公钥的64字节的传输,减少了签名数据量以提高吞吐量。
上文中结合图3至图5,详细描述了根据本发明实施例的在区块链上签名、验证的方法,下面将结合图6至图9,详细描述根据本发明实施例的在区块链上签名、验证的装置。
图6是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行签名的装置的示意性框图。该基于SM2椭圆曲线算法在区块链上进行签名的装置900,包括:处理单元610和第一签名单元620。该处理单元610被配置为基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,判断标识v用于标识所述y1的奇偶性。该第一签名单元620被配置为基于获得的椭圆曲线点R的坐标(x1,y1)、待签名消息发送方的私钥和判断标识v,计算待签名消息的数字签名,数字签名包含判断标识v。根据本发明实施例的基于SM2椭圆曲线算法在区块链上进行签名的装置900可对应于根据本发明实施例的基于SM2椭圆曲线算法在区块链上进行签名的方法S300中的执行主体,并且基于SM2椭圆曲线算法在区块链上进行签名的装置900中的各个单元的上述和其它操作和/或功能分别为了实现图3中的各个方法的相应流程,为了简洁,在此不再赘述。该装置900可用于数字签名发送方节点通过签名过程中设置一个能够判断椭圆曲线点R的坐标(x1,y1)中y1奇偶性的判断标识v使得在在发送数字签名时给数字签名接收方进行验证时,只需发送包含数字签名、待签名消息和一个字节的判断标识V,从而实现交易发送的签名数据中只增加一个1字节代替了公钥的64字节的传输,减少了签名数据量以提高吞吐量。
图7是本发明一种实施例的基于SM2椭圆曲线算法在区块链上进行验证的装置的示意性框图。如图7所示,该基于SM2椭圆曲线算法在区块链上进行验证的装置700,包括:接收单元710、计算单元720和验证单元730。该接收单元710被配置为接收待验证消息和待验证消息的数字签名,其中,待验证消息的数字签名包含判断标识v′;该计算单元720被配置为基于待验证消息和判断标识v′获得用于生成待验证消息的数字签名的椭圆曲线点R′的坐标(x1′,y1′),其中,判断标识v′用于判断y1′的奇偶性;该验证单元730被配置为根据点R′的坐标(x1′,y1′)计算待验证消息的发送方的公钥P′点的坐标,基于计算得到的待验证消息的发送方的公钥P′点的坐标与预存公钥信息,对待验证消息的数字签名进行验证。该装置700通过签名过程中设置一个能够判断椭圆曲线点R的坐标(x1,y1)中y1奇偶性的判断标识v使得在验证过程中,在接收待验证消息和包含判断标识v′待验证消息的数字签名后可以计算恢复出数字签名发送方的公钥,从而实现交易发送的签名数据中只增加一个1字节代替了公钥的64字节的传输,减少了签名数据量以提高吞吐量。
图8是本发明另一种实施例的基于SM2椭圆曲线算法在区块链上进行验证的装置的示意性框图。如图8所示,由于数字签名接收者节点也能作为其他数字签名接收方节点的数字签名发送方节点,所以该基于SM2椭圆曲线算法在区块链上进行验证的装置除了包括接收单元810、计算单元820和验证单元830,还可以包括:第二签名单元840,被配置为:基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,判断标识v用于标识y1的奇偶性;基于获得的椭圆曲线点R的坐标(x1,y1)、待签名消息发送方的私钥和判断标识v,计算待签名消息的数字签名,数字签名包含所述判断标识v。
根据一些实施例,接收单元810还被配置为:接收待验证消息的发送方的公钥P点的坐标或公钥P点的坐标在区块链上的地址,其中,预存公钥信息包括接收的公钥P点的坐标或公钥P点的坐标在区块链上的地址。在一些示例中,该计算单元820还可以被配置为:基于公钥P点的坐标或公钥P点的坐标在区块链上的地址对计算获得的待验证消息的发送方的公钥P′点的坐标进行校验,以对待验证消息的数字签名进行验证。
根据一些实施例,该验证单元830还可以被配置为:基于判断标识v′确定所述椭圆曲线点R′的坐标(x1′,y1′)中的y1
根据一些实施例,该装置800还可以包括存储单元,被配置为:基于计算生成的待签名消息的数字签名和待签名消息,计算自身公钥P点的坐标的存储地址并保存在区块链上。在一些示例中,该存储单元还可以被配置为:基于接收的待验证消息和待验证消息的数字签名计算待签验证消息的发送方的公钥P点的坐标的存储地址并保存在区块链上。
图9是本发明一种实施例的实施例的基于SM2椭圆曲线算法在区块链上进行验证的装置的计算设备实现的示意性框图。如图9所示结合上述的基于SM2椭圆曲线算法在区块链上进行验证方法和基于SM2椭圆曲线算法在区块链上进行验证装置的至少一部分可以由计算设备900包括输入设备901、输入端口902、处理器903、存储器904、输出端口905、以及输出设备906。其中,输入端口902、处理器903、存储器904、以及输出端口905通过总线910相互连接,输入设备901和输出设备906分别通过输入端口902和输出端口905与总线910连接,进而与计算设备900的其他组件连接。需要说明的是,这里的输出接口和输入接口也可以用I/O接口表示。具体地,输入设备901接收来自外部的输入信息,并通过输入端口902将输入信息传送到处理器903;处理器903基于存储器904中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器904中,然后通过输出端口905将输出信息传送到输出设备906;输出设备906将输出信息输出到计算设备900的外部。
上述存储器904包括用于数据或指令的大容量存储器。举例来说而非限制,存储器904可包括HDD、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器904可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器904可在计算设备900的内部或外部。在特定实施例中,存储器904是非易失性固态存储器。在特定实施例中,存储器904包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
总线910包括硬件、软件或两者,将计算设备900的部件彼此耦接在一起。举例来说而非限制,总线910可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线910可包括一个或多个总线910。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
当通过图9所示的计算设备900实现结合图7描述的基于SM2椭圆曲线算法在区块链上进行验证装置时,输入设备901接收待验证消息和待验证消息的数字签名,在特定实施例中,与输出设备相连的I/O接口可以包括硬件、软件或两者,提供用于在计算设备900与一个或多个I/O设备之间的通信的一个或多个接口。在合适的情况下,计算设备900可包括一个或多个这些I/O设备。一个或多个这些I/O设备可允许人和计算机系统900之间的通信。举例来说而非限制,I/O设备可包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态照相机、触针、手写板、触摸屏、轨迹球、视频摄像机、另一合适的I/O设备或者两个或更多个以上这些的组合。I/O设备可包括一个或多个传感器。本发明实施例考虑用于它们的任何合适的I/O设备和任何合适的I/O接口。在合适的情况下,I/O接口可包括一个或多个装置或能够允许处理器903驱动一个或多个这些I/O设备的软件驱动器。在合适的情况下,I/O接口可包括一个或多个I/O接口。尽管本发明实施例描述和示出了特定的I/O接口,但本发明实施例考虑任何合适的I/O接口。该处理器903基于存储器904中存储的计算机可执行指令,基于待验证消息和判断标识v′获得用于生成待验证消息的数字签名的椭圆曲线点R′的坐标(x1′,y1′),其中,判断标识v′用于判断y1′的奇偶性;根据点R′的坐标(x1′,y1′)计算待验证消息的发送方的公钥P′点的坐标,基于计算得到的待验证消息的发送方的公钥P′点的坐标与预存公钥信息,对待验证消息的数字签名进行验证。随后在需要时经由输出端口905和输出设备906将上述验证结果输出。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种基于SM2椭圆曲线算法在区块链上进行签名的方法,其特征在于,包括:
基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,所述判断标识v用于标识所述y1的奇偶性,还用于,接收方计算获得的待验证消息的发送方的公钥P;
基于获得的椭圆曲线点R的坐标(x1,y1)、所述待签名消息发送方的私钥和所述判断标识v,计算所述待签名消息的数字签名,所述数字签名包含所述判断标识v。
2.一种基于SM2椭圆曲线算法在区块链上进行验证的方法,其特征在于,包括:
接收待验证消息和所述待验证消息的数字签名,其中,所述待验证消息的数字签名包含判断标识v′;
基于所述待验证消息和所述判断标识v′获得用于生成所述待验证消息的数字签名的椭圆曲线点R′的坐标(x1′,y1′),其中,所述判断标识v′用于判断所述y1′的奇偶性;
根据所述点R′的坐标(x1′,y1′)计算所述待验证消息的发送方的公钥P′点的坐标,基于计算得到的所述待验证消息的发送方的公钥P′点的坐标与预存公钥信息,对所述待验证消息的数字签名进行验证。
3.根据权利要求2所述的基于SM2椭圆曲线算法在区块链上进行验证的方法,其特征在于,还包括:
基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,所述判断标识v用于标识所述y1的奇偶性;
基于获得的椭圆曲线点R的坐标(x1,y1)、所述待签名消息发送方的私钥和所述判断标识v,计算所述待签名消息的数字签名,所述数字签名包含所述判断标识v。
4.根据权利要求2所述的基于SM2椭圆曲线算法在区块链上验证的方法,其特征在于,还包括:接收所述待验证消息的发送方的公钥P点的坐标或所述公钥P点的坐标在区块链上的地址,其中,所述预存公钥信息包括接收的所述公钥P点的坐标或所述公钥P点的坐标在区块链上的地址。
5.根据权利要求4所述的基于SM2椭圆曲线算法在区块链上进行验证的方法,其特征在于,还包括:基于所述公钥P点的坐标或所述公钥P点的坐标在区块链上的地址对计算获得的所述待验证消息的发送方的公钥P′点的坐标进行校验,以对所述待验证消息的数字签名进行验证。
6.根据权利要求2至5中任一项所述的基于SM2椭圆曲线算法在区块链上进行验证的方法,其特征在于,所述基于所述待验证消息和所述判断标识v′获得用于生成所述待验证消息的数字签名的椭圆曲线点R′的坐标(x1′,y1′),其中,所述判断标识v′用于判断所述y1′的奇偶性的步骤包括:
基于所述判断标识v′确定所述椭圆曲线点R′的坐标(x1′,y1′)中的y1′。
7.一种基于SM2椭圆曲线算法在区块链上进行签名的装置,其特征在于,包括:
处理单元,被配置为基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,所述判断标识v用于标识所述y1的奇偶性,还用于,接收方计算获得的待验证消息的发送方的公钥P;
第一签名单元,被配置为基于获得的椭圆曲线点R的坐标(x1,y1)、所述待签名消息发送方的私钥和所述判断标识v,计算所述待签名消息的数字签名,所述数字签名包含所述判断标识v。
8.一种基于SM2椭圆曲线算法在区块链上进行验证的装置,其特征在于,包括:
接收单元,被配置为接收待验证消息和所述待验证消息的数字签名,其中,所述待验证消息的数字签名包含判断标识v′;
计算单元,基于所述待验证消息和所述判断标识v′获得用于生成所述待验证消息的数字签名的椭圆曲线点R′的坐标(x1′,y1′),其中,所述判断标识v′用于判断所述y1′的奇偶性;
验证单元,被配置为根据所述点R′的坐标(x1′,y1′)计算所述待验证消息的发送方的公钥P′点的坐标,基于计算得到的所述待验证消息的发送方的公钥P′点的坐标与预存公钥信息,对所述待验证消息的数字签名进行验证。
9.根据权利要求8所述的基于SM2椭圆曲线算法在区块链上进行验证的装置,其特征在于,还包括第二签名单元,被配置为:
基于待签名消息和随机生成的大整数k,获得椭圆曲线点R的坐标(x1,y1)和判断标识v,其中,所述判断标识v用于标识所述y1的奇偶性;
基于获得的椭圆曲线点R的坐标(x1,y1)、所述待签名消息发送方的私钥和所述判断标识v,计算所述待签名消息的数字签名,所述数字签名包含所述判断标识v。
10.根据权利要求8所述的基于SM2椭圆曲线算法在区块链上进行验证的装置,其特征在于,所述接收单元还被配置为:接收所述待验证消息的发送方的公钥P点的坐标或所述公钥P点的坐标在区块链上的地址,其中,所述预存公钥信息包括接收的所述公钥P点的坐标或所述公钥P点的坐标在区块链上的地址。
11.根据权利要求10所述的基于SM2椭圆曲线算法在区块链上进行验证的装置,其特征在于,所述验证单元还被配置为:基于所述公钥P点的坐标或所述公钥P点的坐标在区块链上的地址对计算获得的所述待验证消息的发送方的公钥P′点的坐标进行校验,以对所述待验证消息的数字签名进行验证。
12.根据权利要求8至11中任一项所述的基于SM2椭圆曲线算法在区块链上进行验证的装置,其特征在于,所述计算单元还被配置为:
基于所述判断标识v′确定所述椭圆曲线点R′的坐标(x1′,y1′)中的y1′。
CN201710082714.5A 2017-02-15 2017-02-15 在区块链上签名、验证的方法及装置 Active CN106878022B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710082714.5A CN106878022B (zh) 2017-02-15 2017-02-15 在区块链上签名、验证的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710082714.5A CN106878022B (zh) 2017-02-15 2017-02-15 在区块链上签名、验证的方法及装置

Publications (2)

Publication Number Publication Date
CN106878022A CN106878022A (zh) 2017-06-20
CN106878022B true CN106878022B (zh) 2019-12-24

Family

ID=59166283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710082714.5A Active CN106878022B (zh) 2017-02-15 2017-02-15 在区块链上签名、验证的方法及装置

Country Status (1)

Country Link
CN (1) CN106878022B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108111312B (zh) * 2017-12-28 2019-09-27 电子科技大学 一种基于区块链的智能终端安全通信方法
US11995648B2 (en) * 2018-03-23 2024-05-28 Nchain Licensing Ag Computer-implemented system and method for enabling zero-knowledge proof
CN108768607B (zh) * 2018-05-14 2021-10-08 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种基于区块链的投票方法、装置、设备及介质
CN109040341B (zh) * 2018-08-27 2021-05-04 深圳前海益链网络科技有限公司 智能合约地址的生成方法、装置、计算机设备及可读存储介质
CN109005191B (zh) * 2018-08-31 2021-05-11 中国联合网络通信集团有限公司 一种验证方法和系统、仲裁节点、存储介质
CN110351089B (zh) * 2019-05-23 2022-01-04 西安电子科技大学 一种数据签名认证方法及装置
CN111066285B (zh) 2019-05-31 2023-06-30 创新先进技术有限公司 基于sm2签名恢复公钥的方法
CN112543103B (zh) * 2019-09-23 2024-06-25 百度在线网络技术(北京)有限公司 账户地址的生成方法和校验方法、装置、设备和介质
CN111339547B (zh) * 2020-03-27 2024-03-19 苏州链原信息科技有限公司 用于生成数据标签的方法、电子设备及计算机存储介质
CN112152814A (zh) * 2020-09-21 2020-12-29 中国电子科技网络信息安全有限公司 一种区块链中基于sm2签名恢复公钥及地址的方法
CN113487201B (zh) * 2021-07-14 2022-11-11 海南马良师傅网络科技有限公司 仪器搬迁任务分配系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"椭圆曲线公钥密码中平方根算法研究";陈逢林等;《安庆师范学院学报(自然科学版)》;20100831;第16卷(第3期);第45页 *

Also Published As

Publication number Publication date
CN106878022A (zh) 2017-06-20

Similar Documents

Publication Publication Date Title
CN106878022B (zh) 在区块链上签名、验证的方法及装置
JP7544357B2 (ja) セキュア・ダイナミック閾値署名スキームのための方法、記憶媒体及び電子デバイス
WO2021238527A1 (zh) 数字签名生成方法、装置、计算机设备和存储介质
JP6865850B2 (ja) 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること
CN110351096B (zh) 多重签名方法、签名中心、程序介质及电子设备
CN111066285B (zh) 基于sm2签名恢复公钥的方法
CN111566988A (zh) 跨越以无信任或无交易员方式操作的群组执行计算任务的计算机实现的系统和方法
CN109818730B (zh) 盲签名的获取方法、装置和服务器
US20210344500A1 (en) Computer-implemented system and method for transferring access to digital resource
US20210377048A1 (en) Digital Signature Method, Signature Information Verification Method, Related Apparatus and Electronic Device
US10447668B1 (en) Virtual cryptographic module with load balancer and cryptographic module fleet
US20150358167A1 (en) Certificateless Multi-Proxy Signature Method and Apparatus
JP2023531241A (ja) ポスト量子暗号アルゴリズムのtls統合
US20170324545A1 (en) Revocable pki signatures
JP6780771B2 (ja) 検証情報付与装置、検証装置、情報管理システム、方法およびプログラム
KR101253683B1 (ko) 연쇄 해시에 의한 전자서명 시스템 및 방법
CN114760114A (zh) 身份认证方法、装置、设备及介质
CN115868141A (zh) 用于数字签名的单轮多方计算的技术
US12081653B2 (en) Systems and methods for providing secure, encrypted communications across distributed computer networks by coordinating cryptography-based digital repositories in order to perform blockchain operations in decentralized applications
JP2022532764A (ja) プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法
CN117118637B (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN111769945A (zh) 基于区块链的拍卖处理方法和区块链节点
CN116170144B (zh) 智能电网匿名认证方法、电子设备及存储介质
US12051061B2 (en) Method for operating a distributed database system, distributed database system, and industrial automation system
CN112541759A (zh) 区块链系统中基于utxo模型的隐藏交易方法、装置及相关产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Zhang Yifeng

Inventor after: Xu Zhong

Inventor after: Yao Qian

Inventor before: Zhang Yifeng

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20171123

Address after: Hangzhou City, Zhejiang province 310013 Xihu District Lingyin ad tower Room 903

Applicant after: Zhongchao Credit Card Industry Development Co., Ltd. Hangzhou blockchain Technology Research Institute

Address before: 100088 floor 7, seat C, De Sheng International Center, No. 79, De Sheng door Avenue, Xicheng District, Beijing

Applicant before: Zhongchao Credit Card Industry Development Co., Ltd. Beijing smart card technology research institute

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200714

Address after: Hangzhou City, Zhejiang province 310013 Xihu District Lingyin ad tower Room 903

Co-patentee after: Shanghai Bill Exchange Co.,Ltd.

Patentee after: ZHONGCHAO CREDITCARD INDUSTRY DEVELOPMENT CO., LTD. HANGZHOU BLOCKCHAIN TECHNOLOGY Research Institute

Address before: Hangzhou City, Zhejiang province 310013 Xihu District Lingyin ad tower Room 903

Patentee before: ZHONGCHAO CREDITCARD INDUSTRY DEVELOPMENT CO., LTD. HANGZHOU BLOCKCHAIN TECHNOLOGY Research Institute