CN108964916A - 签名生成方法、生成装置、签名验证方法和验证装置 - Google Patents
签名生成方法、生成装置、签名验证方法和验证装置 Download PDFInfo
- Publication number
- CN108964916A CN108964916A CN201810878819.6A CN201810878819A CN108964916A CN 108964916 A CN108964916 A CN 108964916A CN 201810878819 A CN201810878819 A CN 201810878819A CN 108964916 A CN108964916 A CN 108964916A
- Authority
- CN
- China
- Prior art keywords
- signature
- target
- value
- remainder
- default
- 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
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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- 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
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供了一种签名生成方法、生成装置、签名验证方法和验证装置,该签名生成方法可以跨多个预设椭圆曲线生成数字签名,只有将所有的预设椭圆曲线全部攻破才可以伪造该数字签名,而只要一条预设椭圆曲线是安全的,则基于该签名的系统就是安全的,这就可以有效避免现有加密货币或基于区块链的应用系统由单一曲线secp256k1引起的后门安全问题,提高系统安全性。此外,利用本发明可根据不同价值交换(或应用场景)选取不同数量的椭圆曲线,从而实现不同安全需求的动态签名。
Description
技术领域
本发明涉及信息安全技术领域,更具体地说,涉及一种签名生成方法、生成装置、签名验证方法和验证装置。
背景技术
数字签名,又称数字签字、公钥数字签名等,提出的初衷就是在网络环境中模拟日常生活中的手工签名或印章。数字签名的基础是公钥密码学,通过数学手段达到传统签名的功能。
现有的加密货币系统或基于区块链的应用系统大部分采用基于secp256k1的椭圆曲线数字签名算法。但由于采用的是单一椭圆曲线secp256k1,这就很难避免曲线创造者植入的后门,从而形成安全漏洞。
发明内容
有鉴于此,为解决上述问题,本发明提供一种签名生成方法、生成装置、签名验证方法和验证装置,技术方案如下:
一种签名生成方法,包括:
根据预设椭圆曲线上预设基点的阶次确定签名私钥,并根据所述签名私钥计算签名公钥,所述预设椭圆曲线为多个;
在获取到待签名的消息的情况下,选取所述预设椭圆曲线的随机数,并利用所述随机数计算所述预设基点的第一基点坐标;
基于所述阶次对所述第一基点坐标的横坐标做取余处理得到第一取余结果,并在所述第一取余结果不为0的情况下,基于预设签名规则处理所述第一取余结果得到第一签名值;
对所述消息做哈希运算得到第一哈希值,并按照预设运算规则对所述第一哈希值、所述随机数、所述签名私钥和所述第一签名值进行运算得到第二签名值;
在所述第二签名值不为0的情况下,生成由所述第一签名值和所述第二签名值构成的数字签名。
优选的,所述预设椭圆曲线,包括:
P-256曲线、SM2、secp256r1和secp256k1中的任意多种。
优选的,所述根据基于预设签名规则处理所述第一取余结果得到第一签名值,包括:
将所述第一取余结果作为第一签名值。
优选的,所述根据基于预设签名规则处理所述第一取余结果得到第一签名值,包括:
对所述第一取余结果进行求和/异或处理;
基于所述阶次对求和/异或处理结果做取余处理得到第二取余结果,并在所述第二取余结果不等于0的情况下,将所述求和/异或处理结果作为第一签名值。
优选的,所述方法还包括:
在所述第一取余结果为0或者所述第二签名值为0或者所述第二取余结果等于0的情况下,返回执行所述选取所述预设椭圆曲线的随机数,这一步骤。
一种签名生成装置,包括:
第一确定模块,用于根据预设椭圆曲线上预设基点的阶次确定签名私钥,并根据所述签名私钥计算签名公钥,所述预设椭圆曲线为多个;
第一计算模块,用于在获取到待签名的消息的情况下,选取所述预设椭圆曲线的随机数,并利用所述随机数计算所述预设基点的第一基点坐标;
第二确定模块,用于基于所述阶次对所述第一基点坐标的横坐标做取余处理得到第一取余结果,并在所述第一取余结果不为0的情况下,基于预设签名规则处理所述第一取余结果得到第一签名值;
第一运算模块,用于对所述消息做哈希运算得到第一哈希值,并按照预设运算规则对所述第一哈希值、所述随机数、所述签名私钥和所述第一签名值进行运算得到第二签名值;
生成模块,用于在所述第二签名值不为0的情况下,生成由所述第一签名值和所述第二签名值构成的数字签名。
一种签名验证方法,包括:
获取待验证的目标消息的目标数字签名以及目标签名公钥,所述目标数字签名和所述目标签名公钥是按照前文任意一项所述的签名生成方法处理所述目标消息所得到的,所述目标数字签名由目标第一签名值和目标第二签名值构成;
确定所述预设签名规则所对应的预判条件,并在所述目标第一签名值和所述目标第二签名值满足所述预判条件的情况下,对所述目标消息做哈希运算得到第二哈希值;
基于所述阶次对所述目标第二签名值的逆运算值做取余处理得到第三取余结果;
基于所述阶次对所述第三取余结果与所述第二哈希值的点积做取余处理得到第四取余结果,同时基于所述阶次对所述第三取余结果与所述目标第一签名值的点积做取余处理得到第五取余结果;
利用所述目标签名公钥、所述第四取余结果、所述预设基点、所述第五取余结果和所述阶次计算中间签名值;
基于所述预设签名规则处理所述中间签名值得到基准签名值,并在所述基准签名值等于所述目标第一签名值的情况下,确定所述目标数字签名有效。
优选的,所述利用所述目标签名公钥、所述第四取余结果、所述预设基点、所述第五取余结果和所述阶次计算中间签名值,包括:
根据所述第四取余结果和所述预设基点的点积以及所述第五取余结果和所述签名公钥的点积,计算中间签名;
基于所述阶次对所述中间签名的横坐标做取余处理得到中间签名值。
优选的,所述方法还包括:
在所述目标第一签名值和所述目标第二签名值不满足所述预判条件或者所述基准签名值不等于所述目标第一签名值的情况下,确定所述目标数字签名无效。
一种签名验证装置,包括:
获取模块,用于获取待验证的目标消息的目标数字签名以及目标签名公钥,所述目标数字签名和所述目标签名公钥是按照前文任意一项所述的签名生成方法处理所述目标消息所得到的,所述目标数字签名由目标第一签名值和目标第二签名值构成;
第二运算模块,用于确定所述预设签名规则所对应的预判条件,并在所述目标第一签名值和所述目标第二签名值满足所述预判条件的情况下,对所述目标消息做哈希运算得到第二哈希值;
第一处理模块,用于基于所述阶次对所述目标第二签名值的逆运算值做取余处理得到第三取余结果;
第二处理模块,用于基于所述阶次对所述第三取余结果与所述第二哈希值的点积做取余处理得到第四取余结果,同时基于所述阶次对所述第三取余结果与所述目标第一签名值的点积做取余处理得到第五取余结果;
第二计算模块,用于利用所述目标签名公钥、所述第四取余结果、所述预设基点、所述第五取余结果和所述阶次计算中间签名值;
第三确定模块,用于基于所述预设签名规则处理所述中间签名值得到基准签名值,并在所述基准签名值等于所述目标第一签名值的情况下,确定所述目标数字签名有效。
相较于现有技术,本发明实现的有益效果为:
以上本发明公开的签名生成方法,跨多个预设椭圆曲线生成数字签名,只有将所有的预设椭圆曲线全部攻破才可以伪造该数字签名,而只要一条预设椭圆曲线是安全的,则基于该签名的系统就是安全的,这就可以有效避免现有加密货币或基于区块链的应用系统由单一曲线secp256k1引起的后门安全问题,提高系统安全性。
此外,利用本发明可根据不同价值交换(或应用场景)选取不同数量的椭圆曲线,从而实现不同安全需求的动态签名。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的签名生成方法的方法流程图;
图2为本发明实施例提供的签名生成装置的结构示意图;
图3为本发明实施例提供的签名验证方法的方法流程图;
图4为本发明实施例提供的签名验证装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
数字签名:是一种类似写在纸上的普通物理签名,使用公钥加密领域的技术实现,用于鉴别数字信息的方法。简单地说,是指附加在某一电子文档中的一组特定的符号或代码,它是利用数学方法对该电子文档进行关键信息提取并与用户私有信息进行混合运算而形成的,用于标识签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造。
为解决由单一曲线secp256k1引起的后门安全问题,提高系统安全性。本发明提供一种签名生成方法,可以根据实际安全需求选择椭圆曲线的数量和参数,方法流程图如图1所示,包括如下步骤:
S10,根据预设椭圆曲线上预设基点的阶次确定签名私钥,并根据签名私钥计算签名公钥,预设椭圆曲线为多个。
在执行步骤S10的过程中,可根据不同价值交换(或应用场景)选取不同数量的椭圆曲线Ei:y2=x3+aix+bi;其中,
ai,bi∈Fpi且4ai 3+27bi 2≠0(modpi),Fpi为预设有限素数域,pi为预设有限素数域Fpi对应的大素数,i=1,2,3…,t,t为椭圆曲线的数量且t≥2;
进一步,选取t个随机数di∈[1,ni-1]作为签名私钥,其中,ni为预设基点Pi在椭圆曲线Ei上的阶次。
利用签名私钥di计算预设基点Pi的第二基点坐标Qi=diPi,并将第二基点坐标确定为签名公钥Qi。
此外,本发明给出了不同组织在不同时间段推荐的四个椭圆曲线的参数。而本发明实施例给出签名生成方法不仅可以用于这四个椭圆曲线上,还可以用于其他椭圆曲线。当然,上述仅为举例说明,还可以加入其它椭圆曲线,本实施例对此不做限定。
a)P-256曲线
P-2562曲线是美国国家标准与技术研究院NIST于2013年提出的,其曲线方程为:E:y2=x3-3x+b(modp);
相关参数如下所示:
素数p:
p=115792089210356248762697446949407573530086143415290314195533631308867097853951;
方程系数b:
b=5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e27d2604b;
基点的阶次n:
n=115792089210356248762697446949407573529996955224135760342422259061068512044369;
基点P:
P=02 6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945d898c296。
b)SM2
SM23是中国国家密码管理局于2010年提出的,其曲线方程为:E:y2=x3+ax+b;
相关参数如下所示:
素数p:
p=fffffffe ffffffff ffffffff ffffffff ffffffff 00000000 ffffffffffffffff;
系数a:
a=fffffffe ffffffff ffffffff ffffffff ffffffff 00000000 fffffffffffffffc;
系数b:
b=28e9fa9e 9d9f5e34 4d5a9e4b cf6509a7 f39789f5 15ab8f92 ddbcbd414d940e93;
基点的阶次n:
n=fffffffe ffffffff ffffffff ffffffff 7203df6b 21c6052b 53bbf40939d54123;
基点P:
P=02 32c4ae2c 1f198119 5f990446 6a39c994 8fe30bbf f2660be1 715a4589334c74c7。
c)secp256r1
secp256r1是SEC(Standards for Efficient Cryptography)于2010年给出的一条椭圆曲线,其曲线方程为:E:y2=x3+ax+b;
相关参数如下所示:
素数p:
p=ffffffff 00000001 00000000 00000000 00000000 fffffffffffffffffffffff;
系数a:
a=ffffffff 00000001 00000000 00000000 00000000 ffffffffffffffffffffffc;
系数b:
b=5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f63bce3c3e7d2604b;
基点的阶次n:
n=ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84f3b9cac2fc632551;
基点P:
P=03 6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0f4a13945d898c296。
4)secp256k1
secp256k1是SEC(Standards for Efficient Cryptography)于2010年给出的另一条椭圆曲线,是现在广为加密货币系统和基于区块链的各类应用系统使用的曲线,其曲线方程为:E:y2=x3+7;
相关参数如下所示:
素数p:
p=ffffffff ffffffff ffffffff ffffffff ffffffff fffffffffffffffeffffc2f;
基点的阶次n:
n=ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03bbfd25e8cd0364141;
基点P:
P=02 79be667e f9dcbbac 55a06295 ce870b07 029bfcdb 2dce28d959f2815b16f81798。
S20,在获取到待签名的消息的情况下,选取预设椭圆曲线的随机数,并利用随机数计算预设基点的第一基点坐标。
在执行步骤S20的过程中,椭圆曲线Ei所对应的随机数ki∈[1,ni-1],并计算预设基点Pi的第一基点坐标kiPi=(xi1,yi1)。
S30,基于阶次对第一基点坐标的横坐标做取余处理得到第一取余结果,并在第一取余结果不为0的情况下,基于预设签名规则处理第一取余结果得到第一签名值。
在执行步骤S30的过程中,第一取余结果为ri=xi1modni。此时如果第一取余结果为0,则表示签名私钥泄露的可能性较大,则返回步骤S20重新选取预设椭圆曲线的随机数;而如果第一取余结果不为0,则说明不会泄露签名私钥的任何信息,则具体可以将第一取余结果确定为第一签名值r=(r1,r2,…,rt)。
S40,对消息做哈希运算得到第一哈希值,并按照预设运算规则对第一哈希值、随机数、签名私钥和第一签名值进行运算得到第二签名值。
在执行步骤S40的过程中,对消息m做哈希运算得到第一哈希值e=H(m),H为一个安全的哈希函数。
对第一哈希值e、随机数ki、签名私钥di和第一签名值ri进行运算得到第二签名值si=ki -1[e+diri]modni。
S50,在第二签名值不为0的情况下,生成由第一签名值和第二签名值构成的数字签名。
在执行步骤S50的过程中,如果将第一取余结果确定为第一签名值ri,所生成的数字签名为(r1,s1,r2,s2,…,rt,st)。此时如果第二签名值为0,则表示签名私钥泄露的可能性较大,则返回步骤S20重新选取预设椭圆曲线的随机数。
在其他一些实施例中,为降低数字签名的签名长度,在图1所示出签名生成方法的基础上,步骤S30中“根据基于预设签名规则处理第一取余结果得到第一签名值”可以具体为:
对第一取余结果进行求和/异或处理;基于阶次对求和/异或处理结果做取余处理得到第二取余结果,并在第二取余结果不等于0的情况下,将求和/异或处理结果作为第一签名值。
以求和处理为例进行说明:
对第一取余结果ri进行求和处理得到r=r1+r2+…+rt;并在r≠0modni的情况下,将r作为第一签名值。此时,对第一哈希值e、随机数ki、签名私钥di和第一签名值r进行运算得到第二签名值si=ki-1[e+dir]modni,所生成的数字签名为(r,s1,s2,…,st)。
此外,如果第二取余结果等于0,则表示签名私钥泄露的可能性较大,则返回步骤S20重新选取预设椭圆曲线的随机数。
需要说明的是,本发明并不限定求和、异或两种处理方式,还可以结合实际应用采用其他处理方式,使处理结果大于0、保证后期验证的准确性即可。
本发明实施例提供的签名生成方法,跨多个预设椭圆曲线生成数字签名,只有将所有的预设椭圆曲线全部攻破才可以伪造该数字签名,而只要一条预设椭圆曲线是安全的,则基于该签名的系统就是安全的,这就可以有效避免现有加密货币或基于区块链的应用系统由单一曲线secp256k1引起的后门安全问题,提高系统安全性。同时利用本发明实施例可根据不同价值交换(或应用场景)选取不同数量的椭圆曲线,从而实现不同安全需求的动态签名。
基于上述实施例提供的签名生成方法,本发明实施例对应提供一种签名生成装置,该装置的结构示意图如图2所示,包括:
第一确定模块10,用于根据预设椭圆曲线上预设基点的阶次确定签名私钥,并根据签名私钥计算签名公钥,预设椭圆曲线为多个;
第一计算模块20,用于在获取到待签名的消息的情况下,选取预设椭圆曲线的随机数,并利用随机数计算预设基点的第一基点坐标;
第二确定模块30,用于基于阶次对第一基点坐标的横坐标做取余处理得到第一取余结果,并在第一取余结果不为0的情况下,基于预设签名规则处理第一取余结果得到第一签名值;
第一运算模块40,用于对消息做哈希运算得到第一哈希值,并按照预设运算规则对第一哈希值、随机数、签名私钥和第一签名值进行运算得到第二签名值;
生成模块50,用于在第二签名值不为0的情况下,生成由第一签名值和第二签名值构成的数字签名。
本发明实施例提供的签名生成装置,跨多个预设椭圆曲线生成数字签名,只有将所有的预设椭圆曲线全部攻破才可以伪造该数字签名,而只要一条预设椭圆曲线是安全的,则基于该签名的系统就是安全的,这就可以有效避免现有加密货币或基于区块链的应用系统由单一曲线secp256k1引起的后门安全问题,提高系统安全性。同时利用本发明实施例可根据不同价值交换(或应用场景)选取不同数量的椭圆曲线,从而实现不同安全需求的动态签名。
基于上述实施例提供的签名生成方法以及签名生成装置,本发明实施例则提供一种签名验证方法,该方法的方法流程图如图3所示,包括如下步骤:
S60,获取待验证的目标消息的目标数字签名以及目标签名公钥,目标数字签名和目标签名公钥是按照前文任意一项所述的签名生成方法处理目标消息所得到的,目标数字签名由目标第一签名值和目标第二签名值构成。
S70,确定预设签名规则所对应的预判条件,并在目标第一签名值和目标第二签名值满足预判条件的情况下,对目标消息做哈希运算得到第二哈希值。
如果目标消息m'的目标数字签名为(r1',s1',r2',s2',…,rt',st'),则此时将目标消息m'的第一取余结果ri'作为目标第一签名值、si'为目标第二签名值,预判条件则为0<ri'<ni,0<si'<ni。
如果目标消息m'的目标数字签名为(r',s1',s2',…,st'),则此时将目标消息m'的第一取余结果ri'的求和/异或处理结果作为第一签名值、si'为目标第二签名值,预判条件则为
在目标第一签名值和目标第二签名值满足预判条件的情况下,对目标消息m'做哈希运算得到第二哈希值e'=H(m')。
此外,如果目标第一签名值和目标第二签名值不满足预判条件,则确定目标数字签名无效。
S80,基于阶次对目标第二签名值的逆运算值做取余处理得到第三取余结果。
在执行步骤S80的过程中,基于阶次ni对目标第二签名值si'的逆运算值si'-1做取余处理得到第三取余结果wi=si'-1modni。
S90,基于阶次对第三取余结果与第二哈希值的点积做取余处理得到第四取余结果,同时基于阶次对第三取余结果与目标第一签名值的点积做取余处理得到第五取余结果。
在执行步骤S90的过程中,以目标消息m'的目标数字签名为(r',s1',s2',…,st')进行说明:基于阶次ni对第三取余结果wi与第二哈希值e'的点积做取余处理得到第四取余结果ui=e'wimodni,同时基于阶次ni对第三取余结果wi与目标第一签名值r'的点积做取余处理得到第五取余结果vi=r'wimodni。
S100,利用目标签名公钥、第四取余结果、预设基点、第五取余结果和阶次计算中间签名值。
在执行步骤S100的过程中,首先根据第四取余结果ui和预设基点Pi的点积uiPi以及第五取余结果vi和目标签名公钥Qi'的点积viQi,计算中间签名Ri=uiPi+viQi=(xi,yi);进一步,基于阶次ni对中间签名的横坐标xi做取余处理得到中间签名值ri”=ximodni。
S110,基于预设签名规则处理中间签名值得到基准签名值,并在基准签名值等于目标第一签名值的情况下,确定目标数字签名有效。
如果目标消息m'的目标数字签名为(r1',s1',r2',s2',…,rt',st'),则此时基准签名值r”'=(r1”,r2”,…rt”)。
如果目标消息m'的目标数字签名为(r',s1',s2',…,st'),则此时基准签名值r”'=r1”+r2”+…rt”。
此外,如果基准签名值不等于目标第一签名值,则确定目标数字签名无效。
本发明实施例提供的签名验证方法,可以对跨多个预设椭圆曲线所生成数字签名进行验证,从而识别被签消息的准确性。
基于上述实施例提供的签名验证方法,本发明实施例则对应提供执行上述签名验证方法的装置,该装置的结构示意图如图4所示,包括:
获取模块60,用于获取待验证的目标消息的目标数字签名以及目标签名公钥,目标数字签名和目标签名公钥是按照前文任意一项所述的签名生成方法处理目标消息所得到的,目标数字签名由目标第一签名值和目标第二签名值构成;
第二运算模块70,用于确定预设签名规则所对应的预判条件,并在目标第一签名值和目标第二签名值满足预判条件的情况下,对目标消息做哈希运算得到第二哈希值;
第一处理模块80,用于基于阶次对目标第二签名值的逆运算值做取余处理得到第三取余结果;
第二处理模块90,用于基于阶次对第三取余结果与第二哈希值的点积做取余处理得到第四取余结果,同时基于阶次对第三取余结果与目标第一签名值的点积做取余处理得到第五取余结果;
第二计算模块100,用于利用目标签名公钥、第四取余结果、预设基点、第五取余结果和阶次计算中间签名值;
第三确定模块110,用于基于预设签名规则处理中间签名值得到基准签名值,并在基准签名值等于目标第一签名值的情况下,确定目标数字签名有效。
本发明实施例提供的签名验证装置,可以对跨多个预设椭圆曲线所生成数字签名进行验证,从而识别被签消息的准确性。
以上对本发明所提供的一种签名生成方法、生成装置、签名验证方法和验证装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种签名生成方法,其特征在于,包括:
根据预设椭圆曲线上预设基点的阶次确定签名私钥,并根据所述签名私钥计算签名公钥,所述预设椭圆曲线为多个;
在获取到待签名的消息的情况下,选取所述预设椭圆曲线的随机数,并利用所述随机数计算所述预设基点的第一基点坐标;
基于所述阶次对所述第一基点坐标的横坐标做取余处理得到第一取余结果,并在所述第一取余结果不为0的情况下,基于预设签名规则处理所述第一取余结果得到第一签名值;
对所述消息做哈希运算得到第一哈希值,并按照预设运算规则对所述第一哈希值、所述随机数、所述签名私钥和所述第一签名值进行运算得到第二签名值;
在所述第二签名值不为0的情况下,生成由所述第一签名值和所述第二签名值构成的数字签名。
2.根据权利要求1所述的方法,其特征在于,所述预设椭圆曲线,包括:
P-256曲线、SM2、secp256r1和secp256k1中的任意多种。
3.根据权利要求1所述的方法,其特征在于,所述根据基于预设签名规则处理所述第一取余结果得到第一签名值,包括:
将所述第一取余结果作为第一签名值。
4.根据权利要求1所述的方法,其特征在于,所述根据基于预设签名规则处理所述第一取余结果得到第一签名值,包括:
对所述第一取余结果进行求和/异或处理;
基于所述阶次对求和/异或处理结果做取余处理得到第二取余结果,并在所述第二取余结果不等于0的情况下,将所述求和/异或处理结果作为第一签名值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述第一取余结果为0或者所述第二签名值为0或者所述第二取余结果等于0的情况下,返回执行所述选取所述预设椭圆曲线的随机数,这一步骤。
6.一种签名生成装置,其特征在于,包括:
第一确定模块,用于根据预设椭圆曲线上预设基点的阶次确定签名私钥,并根据所述签名私钥计算签名公钥,所述预设椭圆曲线为多个;
第一计算模块,用于在获取到待签名的消息的情况下,选取所述预设椭圆曲线的随机数,并利用所述随机数计算所述预设基点的第一基点坐标;
第二确定模块,用于基于所述阶次对所述第一基点坐标的横坐标做取余处理得到第一取余结果,并在所述第一取余结果不为0的情况下,基于预设签名规则处理所述第一取余结果得到第一签名值;
第一运算模块,用于对所述消息做哈希运算得到第一哈希值,并按照预设运算规则对所述第一哈希值、所述随机数、所述签名私钥和所述第一签名值进行运算得到第二签名值;
生成模块,用于在所述第二签名值不为0的情况下,生成由所述第一签名值和所述第二签名值构成的数字签名。
7.一种签名验证方法,其特征在于,包括:
获取待验证的目标消息的目标数字签名以及目标签名公钥,所述目标数字签名和所述目标签名公钥是按照权利要求1~5任意一项所述的签名生成方法处理所述目标消息所得到的,所述目标数字签名由目标第一签名值和目标第二签名值构成;
确定所述预设签名规则所对应的预判条件,并在所述目标第一签名值和所述目标第二签名值满足所述预判条件的情况下,对所述目标消息做哈希运算得到第二哈希值;
基于所述阶次对所述目标第二签名值的逆运算值做取余处理得到第三取余结果;
基于所述阶次对所述第三取余结果与所述第二哈希值的点积做取余处理得到第四取余结果,同时基于所述阶次对所述第三取余结果与所述目标第一签名值的点积做取余处理得到第五取余结果;
利用所述目标签名公钥、所述第四取余结果、所述预设基点、所述第五取余结果和所述阶次计算中间签名值;
基于所述预设签名规则处理所述中间签名值得到基准签名值,并在所述基准签名值等于所述目标第一签名值的情况下,确定所述目标数字签名有效。
8.根据权利要求7所述的方法,其特征在于,所述利用所述目标签名公钥、所述第四取余结果、所述预设基点、所述第五取余结果和所述阶次计算中间签名值,包括:
根据所述第四取余结果和所述预设基点的点积以及所述第五取余结果和所述签名公钥的点积,计算中间签名;
基于所述阶次对所述中间签名的横坐标做取余处理得到中间签名值。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述目标第一签名值和所述目标第二签名值不满足所述预判条件或者所述基准签名值不等于所述目标第一签名值的情况下,确定所述目标数字签名无效。
10.一种签名验证装置,其特征在于,包括:
获取模块,用于获取待验证的目标消息的目标数字签名以及目标签名公钥,所述目标数字签名和所述目标签名公钥是按照权利要求1~5任意一项所述的签名生成方法处理所述目标消息所得到的,所述目标数字签名由目标第一签名值和目标第二签名值构成;
第二运算模块,用于确定所述预设签名规则所对应的预判条件,并在所述目标第一签名值和所述目标第二签名值满足所述预判条件的情况下,对所述目标消息做哈希运算得到第二哈希值;
第一处理模块,用于基于所述阶次对所述目标第二签名值的逆运算值做取余处理得到第三取余结果;
第二处理模块,用于基于所述阶次对所述第三取余结果与所述第二哈希值的点积做取余处理得到第四取余结果,同时基于所述阶次对所述第三取余结果与所述目标第一签名值的点积做取余处理得到第五取余结果;
第二计算模块,用于利用所述目标签名公钥、所述第四取余结果、所述预设基点、所述第五取余结果和所述阶次计算中间签名值;
第三确定模块,用于基于所述预设签名规则处理所述中间签名值得到基准签名值,并在所述基准签名值等于所述目标第一签名值的情况下,确定所述目标数字签名有效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810878819.6A CN108964916B (zh) | 2018-08-03 | 2018-08-03 | 签名生成方法、生成装置、签名验证方法和验证装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810878819.6A CN108964916B (zh) | 2018-08-03 | 2018-08-03 | 签名生成方法、生成装置、签名验证方法和验证装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108964916A true CN108964916A (zh) | 2018-12-07 |
CN108964916B CN108964916B (zh) | 2021-07-16 |
Family
ID=64467285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810878819.6A Active CN108964916B (zh) | 2018-08-03 | 2018-08-03 | 签名生成方法、生成装置、签名验证方法和验证装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108964916B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109787765A (zh) * | 2019-02-27 | 2019-05-21 | 东南大学 | 一种用于水质在线监测的远程数据网关加密方法 |
CN110896351A (zh) * | 2019-11-14 | 2020-03-20 | 湖南盾神科技有限公司 | 基于全域哈希的身份基数字签名方法 |
CN111447072A (zh) * | 2020-03-27 | 2020-07-24 | 苏州链原信息科技有限公司 | 用于生成数据等价零知识证明的方法、设备及存储介质 |
WO2022068359A1 (zh) * | 2020-09-29 | 2022-04-07 | 深圳壹账通智能科技有限公司 | 对信息的密文进行压缩的加密方法、装置、设备及介质 |
CN114614992A (zh) * | 2022-03-11 | 2022-06-10 | 深圳市名竹科技有限公司 | 签名值输出及验证方法、装置、计算机设备、存储介质 |
CN117081744A (zh) * | 2023-10-17 | 2023-11-17 | 北京密码云芯科技有限公司 | 基于椭圆曲线的签名处理方法、装置及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2616861A (en) * | 2022-03-22 | 2023-09-27 | Nchain Licensing Ag | Set shuffling |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1548665A2 (en) * | 1997-02-03 | 2005-06-29 | Certicom Corp. | Data card verification system |
US20080130895A1 (en) * | 2006-10-25 | 2008-06-05 | Spyrus, Inc. | Method and System for Deploying Advanced Cryptographic Algorithms |
CN103475469A (zh) * | 2013-09-10 | 2013-12-25 | 中国科学院数据与通信保护研究教育中心 | 一种结合cpu和gpu实现sm2算法的方法及装置 |
EP3316125A1 (en) * | 2016-10-26 | 2018-05-02 | Nxp B.V. | Method of generating an elliptic curve cryptographic key pair |
CN108270571A (zh) * | 2017-12-08 | 2018-07-10 | 西安电子科技大学 | 基于区块链的物联网身份认证系统及其方法 |
-
2018
- 2018-08-03 CN CN201810878819.6A patent/CN108964916B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1548665A2 (en) * | 1997-02-03 | 2005-06-29 | Certicom Corp. | Data card verification system |
US20080130895A1 (en) * | 2006-10-25 | 2008-06-05 | Spyrus, Inc. | Method and System for Deploying Advanced Cryptographic Algorithms |
CN103475469A (zh) * | 2013-09-10 | 2013-12-25 | 中国科学院数据与通信保护研究教育中心 | 一种结合cpu和gpu实现sm2算法的方法及装置 |
EP3316125A1 (en) * | 2016-10-26 | 2018-05-02 | Nxp B.V. | Method of generating an elliptic curve cryptographic key pair |
CN108270571A (zh) * | 2017-12-08 | 2018-07-10 | 西安电子科技大学 | 基于区块链的物联网身份认证系统及其方法 |
Non-Patent Citations (1)
Title |
---|
张仕斌 等: "《应用密码学》", 1 January 2017 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109787765A (zh) * | 2019-02-27 | 2019-05-21 | 东南大学 | 一种用于水质在线监测的远程数据网关加密方法 |
CN110896351A (zh) * | 2019-11-14 | 2020-03-20 | 湖南盾神科技有限公司 | 基于全域哈希的身份基数字签名方法 |
CN110896351B (zh) * | 2019-11-14 | 2022-07-26 | 湖南盾神科技有限公司 | 基于全域哈希的身份基数字签名方法 |
CN111447072A (zh) * | 2020-03-27 | 2020-07-24 | 苏州链原信息科技有限公司 | 用于生成数据等价零知识证明的方法、设备及存储介质 |
WO2022068359A1 (zh) * | 2020-09-29 | 2022-04-07 | 深圳壹账通智能科技有限公司 | 对信息的密文进行压缩的加密方法、装置、设备及介质 |
CN114614992A (zh) * | 2022-03-11 | 2022-06-10 | 深圳市名竹科技有限公司 | 签名值输出及验证方法、装置、计算机设备、存储介质 |
CN117081744A (zh) * | 2023-10-17 | 2023-11-17 | 北京密码云芯科技有限公司 | 基于椭圆曲线的签名处理方法、装置及电子设备 |
CN117081744B (zh) * | 2023-10-17 | 2024-01-26 | 北京密码云芯科技有限公司 | 基于椭圆曲线的签名处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108964916B (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108964916A (zh) | 签名生成方法、生成装置、签名验证方法和验证装置 | |
Armknecht et al. | Transparent data deduplication in the cloud | |
CN107181797B (zh) | 一种区块链的区块压缩方法和系统 | |
US10360406B2 (en) | Method of obfuscating data | |
CN106357701A (zh) | 云存储中数据的完整性验证方法 | |
US8139765B2 (en) | Elliptical polynomial-based message authentication code | |
Singh et al. | An ASCII value based text data encryption System | |
US20160149708A1 (en) | Electronic signature system | |
CN115840787B (zh) | 基于区块链的供应链数据共享方法、装置、设备及介质 | |
Fan et al. | Identity-based auditing for shared cloud data with efficient and secure sensitive information hiding | |
Fanfara et al. | Usage of asymmetric encryption algorithms to enhance the security of sensitive data in secure communication | |
Stallings | Digital signature algorithms | |
Li et al. | A forward-secure certificate-based signature scheme | |
Wang et al. | An improved digital signature algorithm and authentication protocols in cloud platform | |
KR20150112315A (ko) | 묶음 검증 방법 및 장치 | |
Magons | Applications and Benefits of Elliptic Curve Cryptography. | |
Harjito et al. | Comparative Analysis between Elgamal and NTRU Algorithms and their implementation of Digital Signature for Electronic Certificate | |
CN113378238A (zh) | 仅使用超越对数难题的高安全性数字签名方法 | |
CN113507367A (zh) | 一种云环境下外包数据的在线/离线完整性审计方法 | |
CN105049451B (zh) | 生成数字签名的方法和验证数字签名的方法 | |
CN110336822A (zh) | 一种基于双线性配对的信息加密方法、装置、设备及介质 | |
Martínez et al. | A comparative analysis of hybrid encryption schemes based on elliptic curves | |
US20120140921A1 (en) | Rsa-analogous xz-elliptic curve cryptography system and method | |
Ghofar et al. | Digital signature based on PlayGamal algorithm | |
Hutter | RFID authentication protocols based on elliptic curves-A top-down evaluation survey |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210701 Address after: Room 4-a1, 4th floor, block B, Chuangxin building, 11 Hepingli East Street, Dongcheng District, Beijing Applicant after: ZHONGSI BOAN TECHNOLOGY (BEIJING) Co.,Ltd. Address before: 50 Raffles Place, 34-04 Luta, Singapore Applicant before: YUANYI TECHNOLOGY HOLDINGS Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |