CN111262707B - 数字签名方法及验证方法、设备、存储介质 - Google Patents

数字签名方法及验证方法、设备、存储介质 Download PDF

Info

Publication number
CN111262707B
CN111262707B CN202010048411.3A CN202010048411A CN111262707B CN 111262707 B CN111262707 B CN 111262707B CN 202010048411 A CN202010048411 A CN 202010048411A CN 111262707 B CN111262707 B CN 111262707B
Authority
CN
China
Prior art keywords
signature
verification
public key
signed
message
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
CN202010048411.3A
Other languages
English (en)
Other versions
CN111262707A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202010048411.3A priority Critical patent/CN111262707B/zh
Publication of CN111262707A publication Critical patent/CN111262707A/zh
Application granted granted Critical
Publication of CN111262707B publication Critical patent/CN111262707B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种数字签名和验证方法及装置、存储介质,主要解决采用Pedersen commitment作为签名验证公钥的签名问题。其中方法包括签名的过程:针对Pedersen commitment C=gxha(该C即为对应的签名验证公钥),采用哈希算法对待签名消息m、签名验证公钥C和预先选取的随机数R进行哈希运算得到一个随机值e,e=Hash(R,C,m),然后基于随机值e计算中间参数u,v,再采用随机数R和中间参数u,v组成待签名消息m的一个签名(R,u,v);还包括签名后的验证过程:基于中间参数u,v计算验证参数S,S=guhv;若等式S=RCe成立,则确认针对待签名消息m的签名验证通过。采用本发明,给应用Pedersen commitment方案的区块链提供一种签名和验证方法,在保证签名安全性的前提下,可以提高签名的便捷性。

Description

数字签名方法及验证方法、设备、存储介质
技术领域
本发明涉及区块链和加密技术领域,尤其涉及一种数字签名方法及验证方法、设备、存储介质。
背景技术
当前已知的数字签名算法,比如Schnorr签名算法(美国专利U.S.Pat.No.4,995,082),或Gregory Maxwell等人所开发的MuSig签名方案(文献“Simple Schnorr Multi-Signatures with Applications to Bitcoin”)被认为是纯公钥模型下的安全的签名方案,纯公钥模型的意思是签名方案的安全性只依赖于一个且唯一一个要求,即每个签名者必须拥有一个合格的公钥,该公钥由签名者独立生成。这些签名方案都有一个基本的要求,即签名者必须知道私钥,否则无法执行签名。
Commitment方案是一个基本的密码学原语,它允许使用者将一个数值以一种方式置入一个盒子中,以便没有人可以窥探该数值的实际值(即隐藏特性),但是使用者自己无法用两种不同的方式来拆解这个盒子(即绑定特性)。多个数值在执行各自的Commitment以后,依然有办法可以证明所置入的这些数值之间所满足的一些数学关系而无需揭示任何关于这些数值本身的具体值,即Commitment具备零知识证明特性。
为了支持交易的隐私保护功能,一些区块链项目采用Pedersen commitment(由TorbenPryds Pedersen开发,见文献“Non-Interactive and Information-TheoreticSecure Verifiable Secret Sharing”)作为交易输入和输出格式,从而使得交易金额数值得以隐藏。Pedersen commitment的定义是:给定两个生成元g和h,并使得h的离散对数解无人知晓,即没有人知道一个数值y使得h=gy,取一个随机的用户私钥x,一个用以隐藏数值a的标准的Pedersen commitment构造方式可以定义为:C=gxha
Pedersen commitment具有完美隐藏特性和计算绑定特性,现有技术中,Pedersencommitment有很多替代方案,如Time Ruffing等人开发的Switch commitment方案(见文献“Switch Commitments:A Safety Switch for Confidential Transactions”),Switchcommitment的绑定特性介于计算绑定和统计绑定之间。再如ElGamal commitment方案,具有完美绑定特性和计算隐藏特性,一个典型的ElGamal commitment可以定义为(gxha,hx),其前半部分就是一个Pedersen commitment。
以上commitment方案都有一个共同特点,即commitment本身就是/或包含一个椭圆曲线点,即一个公钥,该公钥虽然必有一个对应的私钥然而却无人知晓。因而也就不能直接将commitment作为签名验证公钥用于现有的任何一种数字签名方案。
在比特币及其它一些相似的区块链技术中,针对UTXO(Unspent TransactionOutput)可以直接根据指定的公钥(或一个公钥哈希,或脚本哈希等)提供签名信息来证明所有权。然而在采用Pedersen commitment作为输入输出的区块链中,commitment创建者的公钥信息隐藏于commitment中使得验证者无法知晓,而commitment本身虽然也是一个公钥但创建者却无从知晓其私钥,因而现有技术中的签名方案无法直接应用。
针对Pedersen commitment作为输入输出的方案,现有技术中存在一种签名方法,仅在其commit数值为0(即公式gxha中的a为0)的特定条件下适用,即采用输出commitment和输入commitment的差作为签名验证公钥(因为值分量为0)。然而该特定条件下的签名方法需要交易发送者和交易接收者的协作,即要完成这个交易的创建必须要双方的一个交互式签名过程,这个过程显然比单方的签名方式要慢得多也复杂得多,而且对终端用户而言使用较为困难。
发明内容
本发明实施例提供一种数字签名方法及验证方法、设备、存储介质,给应用Pedersen commitment方案的区块链提供一种签名和验证方法,在保证签名安全性的前提下,可以提高签名的便捷性。
本发明实施例第一方面提供了一种数字签名方法,可包括:
采用哈希算法对待签名消息m、签名验证公钥C和预先选取的随机数R进行哈希运算得到随机值e,e=Hash(R,C,m),其中,签名验证公钥C=gxha,x是签名者的私钥,a是一个隐藏的数值,g是群
Figure BDA0002370230450000021
的生成元,h是群
Figure BDA0002370230450000022
的一个元素,群
Figure BDA0002370230450000031
为一个p阶循环群;
基于随机值e计算中间参数u,v;
采用随机数R和中间参数u,v组成待签名消息的签名(R,u,v)。
进一步的,随机数
Figure BDA0002370230450000032
其中,k1和k2为两个互不相关的随机数,且
Figure BDA0002370230450000033
p为一个k比特正整数。
进一步的,中间参数u=k1+ex mod p,v=k2+ea mod p。
进一步的,签名验证公钥C的计算公式的形式不变的前提下,公式C=gxha中签名者的私钥x可以变为x′,且x′=x+Hash(gxha,jx)mod p,其中,j是群
Figure BDA0002370230450000034
中选定的一个元素。
进一步的,签名验证公钥C可以取自ElGamal commitment(gxha,hx)的前半部分。
进一步的,当一笔数字交易中含有至少两个交易输入时,签名验证公钥C为所有交易输入对应的子签名验证公钥Ci的聚合,即
Figure BDA0002370230450000035
其中,
Figure BDA0002370230450000036
n是总的交易输入个数,且签名验证公钥C的形式仍为gxha,其中,
Figure BDA0002370230450000037
本发明实施例第二方面提供了一种数字签名装置,可包括:
哈希运算模块,用于采用哈希算法对待签名消息m、签名验证公钥C和预先选取的随机数R进行哈希运算得到随机值e,e=Hash(R,C,m),其中,签名验证公钥C=gxha,x是签名者的私钥,a是一个隐藏的数值,g是群
Figure BDA0002370230450000038
的生成元,h是群
Figure BDA0002370230450000039
的一个元素,群
Figure BDA00023702304500000310
为一个p阶循环群;
中间参数计算模块,用于基于随机值e计算中间参数u,v;
签名生成模块,用于采用随机数R和中间参数u,v组成待签名消息的签名(R,u,v)。
进一步的,随机数
Figure BDA00023702304500000311
其中,k1和k2为两个互不相关的随机数,且
Figure BDA00023702304500000312
p为一个k比特正整数。
进一步的,中间参数u=k1+ex mod p,v=k2+ea mod p。
进一步的,签名验证公钥C的计算公式的形式不变的前提下,公式C=gxha中签名者的私钥x可以变为x′,且x′=x+Hash(gxha,jx)mod p,其中,j是群
Figure BDA00023702304500000313
中选定的一个元素。
进一步的,签名验证公钥C可以取自ElGamal commitment(gxha,hx)的前半部分。
进一步的,当一笔数字交易中含有至少两个交易输入时,签名验证公钥C为所有交易输入对应的commitment(子签名验证公钥Ci)的聚合,即
Figure BDA0002370230450000041
其中,
Figure BDA0002370230450000042
n是总的交易输入个数,且签名验证公钥C的形式仍为gxha,其中,
Figure BDA0002370230450000043
本发明实施例第三方面提供了一种基于上述的签名方法的验证方法,可包括:
基于中间参数u,v计算验证参数S,S=guhv
若等式S=RCe成立,则确认针对待签名消息m的签名验证通过。
本发明实施例第四方面提供了一种基于上述的签名方法的验证装置,可包括:
验证参数计算模块,用于基于中间参数u,v计算验证参数S,S=guhv
签名验证模块,用于若等式S=RCe成立,则确认针对待签名消息m的签名验证通过。
本发明实施例第五方面提供了一种计算机设备,该设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述方面的数字签名方法和/或基于该签名方法的验证方法。
本发明实施例第六方面提供了一种计算机存储介质,该计算机存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述方面的数字签名方法和/或基于该签名方法的验证方法。
本发明的有益效果为:通过选取一个随机数
Figure BDA0002370230450000044
然后使用这个R生成一个随机值e,再将这个e得到签名的中间参数u和v,最后组成(R,u,v)即为签名,对应的该签名的验证公钥为C,签名验证者只需要对这个签名计算一个验证参数S=guhv,验证S=RCe等式成立即为签名验证通过,采用本方案在保证签名安全性的前提下,提高了签名的便捷性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数字签名方法的流程示意图;
图2是本发明实施例提供的一种基于数字签名方法的验证方法的流程示意图;
图3是本发明实施例提供的一种数字签名及验证方法的流程示意图;
图4是本发明实施例提供的数字签名及验证的过程示意图;
图5是本发明实施例提供的一种数字签名装置的结构示意图;
图6是本发明实施例提供的一种基于数字签名方法的验证装置的结构示意图;
图7是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含,术语“第一”和“第二”仅是为了区别命名,并不代表数字的大小或者排序。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
需要说明的是,本发明提供的数字签名方法及基于该签名方法的验证方法可以应用于采用Pedersen commitment方案的区块链加密的场景中。
本发明实施例中,数字签名装置及基于该签名方法的验证装置可以是一种计算机设备,该计算机设备可以是平板电脑、PC(Personal Computer,个人计算机)等终端,也可以是其它具备计算处理能力的电子设备。
在本发明的第一个实施例中,如图1所示的数字签名方法至少可以包括以下几个步骤:
S101,采用哈希算法对待签名消息m、签名验证公钥C和预先选取的随机数R进行哈希运算得到随机值e。
需要说明的是,在签名的过程中,设备会产生一个随机的私钥
Figure BDA0002370230450000061
并可以计算其对应的公钥X=gx。进而,可以将数值a隐于其中,计算签名验证公钥C=gxha,其中,是签名者的私钥,a是一个隐藏的数值,g是群
Figure BDA0002370230450000062
的生成元,h是群
Figure BDA0002370230450000063
的一个元素,群
Figure BDA0002370230450000064
为一个p阶循环群。
在一种实现方式中,设备可以选择一个随机数R,并采用哈希算法对待签名消息m、签名验证公钥C和随机数R进行哈希运算得到一个随机值e,即e=Hash(R,C,m)。
在一种优选的实现方式中,预先选定的随机数
Figure BDA0002370230450000065
其中,k1和k2为两个互不相关的随机数,且
Figure BDA0002370230450000066
p为一个k比特正整数。
在可选实施例中,在保证签名验证公钥C的计算公式的形式不变的前提下,公式C=gxha中签名者的私钥x可以变形为x′。优选的x′=x+Hash(gxha,jx)mod p,其中,j是群
Figure BDA00023702304500000610
中选定的一个元素。
需要说明的是,当一笔数字交易中含有至少两个交易输入时,可以将所有交易输入对应的commitment(子签名验证公钥Ci)逐个聚合成为一个单个的C,即
Figure BDA0002370230450000067
其中,
Figure BDA0002370230450000068
n是总的交易输入个数,且签名验证公钥C的形式仍为gxha,其中,
Figure BDA0002370230450000069
可以理解的是,xi和ai来自各个Ci
S102,基于随机值e计算中间参数u,v。
具体实现中,设备可以基于上述随机值e计算数字签名过程中的中间参数u,v。例如,可以将e乘以签名者的私钥x然后加上k1得到u,将这个e乘以commit数值a然后加上k2从而得到v。
在一种优选的实现方式中,中间参数u=k1+ex mod p,v=k2+ea mod p。
需要说明的是,在保证签名安全性及快捷性的前提下,其他任何产生中间参数的方法均落在本发明的保护范围内。
S103,采用随机数R和中间参数u,v组成待签名消息的签名(R,u,v)。
在一种可选的实现方式中,本发明的签名方法可以用于解决比特币地址重用的问题,比特币可将同样的地址用于多个交易,从而引发隐私泄漏问题甚至可能违反某些合理的消费者保护法条款。现有的解决地址重用问题的方案是使用“确定性”钱包从而提供多个钱包地址,但需要时不时地向付款人更新地址信息,过程较复杂且容易出现地址更新延迟。在本申请实施例中,可以通过修改交易格式解决上述问题,以比特币的Pay-to-PubkeyHash交易类型为例,如果使用本申请的签名方案,其交易格式可以修订为:
scriptPubKey:OP_DUP OP_HASH160<commitHash>OP_EQUALVERIFY OP_CHECKSIG
scriptSig:<sig><commit>
这样一来,比特币地址就可以放心地重复使用了,因为本方案隐藏了比特币的实际地址,只需要将commit值a用作一个类似收款码的秘密数字在链外通知收款人用其进行收款即可。
在本申请的第二个实施例中,如图2所示的基于上述数字签名方法的验证方法至少可以包括以下几个步骤:
S201,基于中间参数u,v计算验证参数S。
具体实现中,验证参数S=guhv
S202,若等式S=RCe成立,则确认针对待签名消息m的签名验证通过。
为验证签名是否通过,设备可以验证等式guhv=RCe是否成立,如果不成立则签名验证不通过,否则可以确认针对待签名消息m的签名验证是通过的。
需要说明的是,基于Pedersen commitment的计算绑定特性,验证guhv=RCe等价于并行验证
Figure BDA0002370230450000071
Figure BDA0002370230450000072
也就是说本发明的签名验证方案等价于现有技术中MuSig多签名方案的两个部分签名的验证,因此本发明的签名方案具有与MuSig签名方案同等的安全性。
在本发明实施例中,首先选取一个随机数
Figure BDA0002370230450000073
然后使用这个R生成一个随机值e,通过将这个e得到签名的中间参数u和v,最后组成(R,u,v)即为签名,对应的该签名的验证公钥为C。签名验证者只需要对这个签名计算一个验证参数S=guhv,验证S=RCe等式成立即为签名验证通过,采用本方案在保证签名安全性的前提下,提高了签名的便捷性。
在本发明的第三个实施例中,如图3所示包括了数据签名和验证的全过程:
S301,采用哈希算法对待签名消息m、签名验证公钥C和预先选取的随机数R进行哈希运算得到随机e。
S302,基于随机值e计算中间参数u,v。
S303,采用随机数R和中间参数u,v组成待签名消息的签名(R,u,v)。
S304,基于中间参数u,v计算验证参数S。
S305,若等式S=RCe成立,则确认针对待签名消息m的签名验证通过。
为更清楚的展示数据签名和验证的过程,图4给出了签名和验证的全过程示意图,图中的签名及验证过程已在上述方法实施例中进行了介绍,此处不再详述。
在本发明实施例中,首先选取一个随机数
Figure BDA0002370230450000081
然后使用这个R生成一个随机值e,通过将这个e得到签名的中间参数u和v,最后组成(R,u,v)即为签名,对应的该签名的验证公钥为C。签名验证者只需要对这个签名计算一个验证参数S=guhv,验证S=RCe等式成立即为签名验证通过,采用本方案在保证签名安全性的前提下,提高了签名的便捷性。
下面将结合附图5和附图6,对本发明实施例提供的数字签名装置及验证装置进行详细介绍。需要说明的是,附图5所示的数字签名装置,用于执行本发明图1、图3和图4所示实施例的方法,附图6所示的验证装置,用于执行本发明图2、图3和图4所示实施例的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明图1-图4所示的实施例。
请参见图5,为本发明实施例提供了一种数字签名装置的结构示意图。如图5所示,本发明实施例的数字签名装置10可以包括:哈希运算模块101、中间参数计算模块102和签名生成模块103。如图6所示,本发明实施例的验证装置20可以包括:验证参数计算模块201和签名验证模块202。
哈希运算模块101,用于采用哈希算法对待签名消息m、签名验证公钥C和预先选取的随机数R进行哈希运算得到随机值e,e=Hash(R,C,m),其中,签名验证公钥C=gxha,x是签名者的私钥,a是一个隐藏的数值,g是群
Figure BDA0002370230450000082
的生成元,h是群
Figure BDA0002370230450000083
的一个元素,群
Figure BDA0002370230450000084
为一个p阶循环群。
中间参数计算模块102,用于基于随机值e计算中间参数u,v。
签名生成模块103,用于采用随机数R和中间参数u,v组成待签名消息的签名(R,u,v)。
在可选实施例中,随机数
Figure BDA0002370230450000085
其中,k1和k2为两个互不相关的随机数,且
Figure BDA0002370230450000091
p为一个k比特正整数。
在可选实施例中,中间参数u=k1+ex mod p,v=k2+ea mod p。
在可选实施例中,签名验证公钥C的计算公式的形式不变的前提下,公式C=gxha中签名者的私钥x变为x′,且x′=x+Hash(gxha,jx)mod p,其中,j是群
Figure BDA0002370230450000092
中选定的一个元素。
在可选实施例中,签名验证公钥C可取自ElGamal commitment(gxha,hx)的前半部分。
在可选实施例中,当一笔数字交易中含有至少两个交易输入时,签名验证公钥C为所有交易输入对应的commitment(子签名验证公钥Ci)的聚合,即
Figure BDA0002370230450000093
其中,
Figure BDA0002370230450000094
n是总的交易输入个数,且签名验证公钥C的形式仍为gxha
Figure BDA0002370230450000095
验证参数计算模块201,用于基于中间参数u,v计算验证参数S,S=guhv
签名验证模块202,用于若等式S=RCe成立,则确认针对待签名消息m的签名验证通过。
需要说明的是,本实施例中各模块详细执行过程可以参见上述方法实施例中的描述,此处不再赘述。
在本发明实施例中,首先选取一个随机数
Figure BDA0002370230450000096
然后使用这个R生成一个随机值e,通过将这个e得到签名的中间参数u和v,最后组成(R,u,v)即为签名,对应的该签名的验证公钥为C。签名验证者只需要对这个签名计算一个验证参数S=guhv,验证S=RCe等式成立即为签名验证通过,采用本方案在保证签名安全性的前提下,提高了签名的便捷性。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图4所示实施例的方法步骤,具体执行过程可以参见图1-图4所示实施例的具体说明,在此不进行赘述。
本申请实施例还提供了一种计算机设备。如图7所示,计算机设备30可以包括:至少一个处理器301,例如CPU,至少一个网络接口304,用户接口303,存储器305,至少一个通信总线302,可选地,还可以包括显示屏306。其中,通信总线302用于实现这些组件之间的连接通信。其中,用户接口303可以包括触摸屏、键盘或鼠标等等。网络接口304可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通过网络接口304可以与服务器建立通信连接。存储器305可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器,存储器305包括本发明实施例中的flash。存储器305可选的还可以是至少一个位于远离前述处理器301的存储系统。如图7所示,作为一种计算机存储介质的存储器305中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
需要说明的是,网络接口304可以连接接收器、发射器或其他通信模块,其他通信模块可以包括但不限于WiFi模块、蓝牙模块等,可以理解,本发明实施例中计算机设备也可以包括接收器、发射器和其他通信模块等。
处理器301可以用于调用存储器305中存储的程序指令,并使计算机设备30执行以下操作:
采用哈希算法对待签名消息m、签名验证公钥C和预先选取的随机数R进行哈希运算得到随机值e,e=Hash(R,C,m),其中,签名验证公钥C=gxha,x是签名者的私钥,a是一个隐藏的数值,g是群
Figure BDA0002370230450000101
的生成元,h是群
Figure BDA0002370230450000102
的一个元素,群
Figure BDA0002370230450000103
为一个p阶循环群;
基于随机值e计算中间参数u,v;
采用随机数R和中间参数u,v组成待签名消息的签名(R,u,v)。
在一些实施例中,随机数
Figure BDA0002370230450000104
其中,k1和k2为两个互不相关的随机数,且
Figure BDA0002370230450000105
p为一个k比特正整数。
在一些实施例中,中间参数u=k1+ex mod p,v=k2+ea mod p。
在一些实施例中,签名验证公钥C的计算公式的形式不变的前提下,公式C=gxha中签名者的私钥x变为x′,且x′=x+Hash(gxha,jx)mod p,其中,j是群
Figure BDA0002370230450000106
中选定的一个元素。
在一些实施例中,签名验证公钥C可取自ElGamal commitment(gxha,hx)的前半部分。
在一些实施例中,当一笔数字交易中含有至少两个交易输入时,签名验证公钥C为所有交易输入对应的commitment(子签名验证公钥Ci)的聚合,即
Figure BDA0002370230450000107
其中,
Figure BDA0002370230450000108
n是总的交易输入个数,且签名验证公钥C的形式仍为gxha
Figure BDA0002370230450000109
进一步的,设备30还用于:
基于中间参数u,v计算验证参数S,S=guhv
若等式S=RCe成立,则确认针对待签名消息m的签名验证通过。
在本发明实施例中,首先选取一个随机数
Figure BDA0002370230450000111
然后使用这个R生成一个随机值e,通过将这个e得到签名的中间参数u和v,最后组成(R,u,v)即为签名,对应的该签名的验证公钥为C。签名验证者只需要对这个签名计算一个验证参数S=guhv,验证S=RCe等式成立即为签名验证通过,采用本方案在保证签名安全性的前提下,提高了签名的便捷性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (7)

1.一种数字签名方法,其特征在于,包括:
采用哈希算法对待签名消息m、签名验证公钥C和预先选取的随机数R进行哈希运算得到随机值e,e=Hash(R,C,m),其中,签名验证公钥C=gxha,x是签名者的私钥,a是一个隐藏的数值,g是群
Figure FDA0004124882390000011
的生成元,h是群
Figure FDA0004124882390000012
的一个元素,群
Figure FDA0004124882390000013
为一个p阶循环群;
基于所述随机值e计算中间参数u,v;
采用所述随机数R和所述中间参数u,v组成所述待签名消息的签名(R,u,v);
所述随机数
Figure FDA0004124882390000014
其中,k1和k2为两个互不相关的随机数,且
Figure FDA0004124882390000015
Figure FDA0004124882390000016
所述中间参数u=k1+ex mod p,v=k2+ea mod p。
2.根据权利要求1所述的签名方法,其特征在于,所述签名验证公钥C的计算公式的形式不变的前提下,公式C=gxha中签名者的私钥x变为x′,且x′=x+Hash(gxha,jx)mod p,其中,j是群
Figure FDA0004124882390000017
中选定的一个元素。
3.根据权利要求1所述的签名方法,其特征在于,所述签名验证公钥C取自ElGamalcommitment(gxha,hx)的前半部分。
4.根据权利要求1所述的签名方法,其特征在于,当一笔数字交易中含有至少两个交易输入时,所述签名验证公钥C为所有交易输入对应的子签名验证公钥Ci的聚合,即
Figure FDA0004124882390000018
其中,
Figure FDA0004124882390000019
n是总的交易输入个数,且所述签名验证公钥C的形式仍为gxha
Figure FDA00041248823900000110
5.一种基于权利要求1-4任一项所述的签名方法的验证方法,其特征在于,包括:
基于所述中间参数u,v计算验证参数S,S=guhv
若等式S=RCe成立,则确认针对所述待签名消息m的签名验证通过。
6.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至4任一项所述的数字签名方法和/或权利要求5所述的验证方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至4任一项所述的数字签名方法和/或权利要求5所述的验证方法。
CN202010048411.3A 2020-01-16 2020-01-16 数字签名方法及验证方法、设备、存储介质 Active CN111262707B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010048411.3A CN111262707B (zh) 2020-01-16 2020-01-16 数字签名方法及验证方法、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010048411.3A CN111262707B (zh) 2020-01-16 2020-01-16 数字签名方法及验证方法、设备、存储介质

Publications (2)

Publication Number Publication Date
CN111262707A CN111262707A (zh) 2020-06-09
CN111262707B true CN111262707B (zh) 2023-04-14

Family

ID=70950709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010048411.3A Active CN111262707B (zh) 2020-01-16 2020-01-16 数字签名方法及验证方法、设备、存储介质

Country Status (1)

Country Link
CN (1) CN111262707B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112636915B (zh) * 2020-11-27 2024-03-22 杭州趣链科技有限公司 基于国密sm2算法的批量签名验证方法、装置、设备及介质
CN114022259B (zh) * 2021-11-11 2023-08-25 陕西华春网络科技股份有限公司 一种基于公钥指定和身份验证的招标方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999023781A1 (en) * 1997-10-31 1999-05-14 Certicom Corp. Signature verification for elgamal schemes
CN101540673A (zh) * 2009-04-24 2009-09-23 武汉大学 公钥加解密方法及其数字签名方法
CN101873307A (zh) * 2010-03-19 2010-10-27 上海交通大学 基于身份的前向安全的数字签名方法、装置及系统
CN107579819A (zh) * 2017-09-13 2018-01-12 何德彪 一种sm9数字签名生成方法及系统
CN110086624A (zh) * 2019-03-21 2019-08-02 平安科技(深圳)有限公司 数字证书撤销信息验证方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999023781A1 (en) * 1997-10-31 1999-05-14 Certicom Corp. Signature verification for elgamal schemes
CN101540673A (zh) * 2009-04-24 2009-09-23 武汉大学 公钥加解密方法及其数字签名方法
CN101873307A (zh) * 2010-03-19 2010-10-27 上海交通大学 基于身份的前向安全的数字签名方法、装置及系统
CN107579819A (zh) * 2017-09-13 2018-01-12 何德彪 一种sm9数字签名生成方法及系统
CN110086624A (zh) * 2019-03-21 2019-08-02 平安科技(深圳)有限公司 数字证书撤销信息验证方法、装置及系统

Also Published As

Publication number Publication date
CN111262707A (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
RU2376651C2 (ru) Использование изогений для разработки криптосистем
CN104468476B (zh) 无证书多重代理签名的方法和装置
CN111064583B (zh) 一种门限sm2数字签名方法、装置、电子设备及存储介质
TW201320700A (zh) 署名驗證裝置、署名驗證方法、程式及記錄媒體
CN112789825A (zh) 用于转移对数字资源的访问的计算机实现的系统和方法
CN113221089B (zh) 基于可验证声明的隐私保护属性认证系统及方法
CN113875188A (zh) 哈希函数攻击
CN112436938B (zh) 数字签名的生成方法、装置和服务器
CN111262707B (zh) 数字签名方法及验证方法、设备、存储介质
US20160149708A1 (en) Electronic signature system
Chen et al. A blockchain-based signature exchange protocol for metaverse
KR20060113329A (ko) 이소제니-기반 서명의 생성과 유효화를 위한 시스템 및방법
CN112785306A (zh) 基于Paillier的同态加密方法及应用系统
Shen et al. Application and implementation of multivariate public key cryptosystem in blockchain (short paper)
CN111245626A (zh) 零知识证明方法、装置及存储介质
US20220239486A1 (en) Knowledge proof
US20220278843A1 (en) Computer implemented method and system for knowledge proof in blockchain transactions
CN112541759A (zh) 区块链系统中基于utxo模型的隐藏交易方法、装置及相关产品
KR102070061B1 (ko) 묶음 검증 방법 및 장치
CN108011723B (zh) 入侵回弹的不可拆分数字签名方法
Ezziri et al. A zero-knowledge identification scheme based on the discrete logarithm problem and elliptic curves
CN112887097A (zh) 基于sm2椭圆曲线的签名方法、相关装置、及存储介质
CN117118637B (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN115118437B (zh) 基于一致性哈希和路径证明的多签验证方法、装置及设备
Gan et al. Online/offline remote data auditing with strong key-exposure resilience for cloud storage

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
GR01 Patent grant
GR01 Patent grant