CN116346328A - 一种数字签名方法、系统、设备及计算机可读存储介质 - Google Patents

一种数字签名方法、系统、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN116346328A
CN116346328A CN202310200408.2A CN202310200408A CN116346328A CN 116346328 A CN116346328 A CN 116346328A CN 202310200408 A CN202310200408 A CN 202310200408A CN 116346328 A CN116346328 A CN 116346328A
Authority
CN
China
Prior art keywords
value
signature
random number
private key
target
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.)
Pending
Application number
CN202310200408.2A
Other languages
English (en)
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.)
Zhengzhou Normal University
Original Assignee
Zhengzhou Normal University
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 Zhengzhou Normal University filed Critical Zhengzhou Normal University
Priority to CN202310200408.2A priority Critical patent/CN116346328A/zh
Publication of CN116346328A publication Critical patent/CN116346328A/zh
Pending legal-status Critical Current

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/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/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)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种数字签名方法、系统、设备及计算机可读存储介质,应用于签名方,获取待签名的目标消息;获取公开的目标椭圆曲线参数,目标椭圆曲线参数包括椭圆曲线的基点、基点的阶值;获取签名方的第一私钥及第二私钥;生成与目标消息对应的第一随机数,基于第一随机数对基点进行运算,得到第一签名值;生成与目标消息对应的第二随机数;基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第二签名值;基于第二随机数和第二私钥对阶值进行求余运算,得到第三签名值;将第一签名值、第二签名值和第三签名值作为目标消息的目标签名值;实现了借助椭圆曲线进行数字签名,效率高,且可以抵抗单私钥泄露,安全性好。

Description

一种数字签名方法、系统、设备及计算机可读存储介质
技术领域
本申请涉及信息安全技术领域,更具体地说,涉及一种数字签名方法、系统、设备及计算机可读存储介质。
背景技术
随着计算机网络和通信技术的快速发展与广泛应用,社会的信息化程度越来越高,电子化己成为生活的主要工具。社会的高度信息化使网络环境容易受到攻击导致信息的篡改、泄露甚至伪造,这些情况都会引起重大的损失,因此需要保障信息的安全传输。
数字签名(公钥数字签名或电子签章)是一种应用在网络中的电子签名,它与生活中纸质签名的作用是类似的,同时也可以帮助用户在网络环境中鉴别信息的真假。数字签名是非对称密钥加密技术与数字摘要技术相结合的一种应用,其实质是一种特殊的密码变换,该变换利用公钥加密技术,由信息的发送方发送一串具有抗伪造性的数字串,并且该数字串是保密的,它在允许数据的接收方确认数据来源的可靠性和数据完整性的同时还可以防止信息被攻击者伪造。总体而言,数字签名技术可以通过网络进行安全、快速的签名,保证信息的认证性、完整性和不可否认性。它在信息和网络安全领域具有重要的理论价值和广泛的实际意义,在社会生活的各个领域有广阔的应用前景。
椭圆曲线数字签名算法(ECDSA)是对数字签名算法的模拟。椭圆曲线密码(ECC)于1985年发明,是目前安全性最高的公钥加密算法,它是基于椭圆曲线的一种公钥体制。椭圆曲线密码体制的主要优势是计算参数更小,密钥更短,对宽带要求低,运算速度更快,安全性高。因此椭圆曲线密码性能优良,应用广泛,尤其适用于存储空间、处理能力、带宽及功耗受限的场合,以及信息安全领域,它可以在保护信息安全性、完整性的同时还具有不可抵赖性等功能。然而传统的椭圆曲线数字签名方案中涉及到求逆运算,这占用了大量的计算空间,降低了椭圆曲线数字签名方案的计算效率,且安全性不高。
综上所述,如何在提高椭圆曲线数字签名计算效率的同时提高其安全性是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数字签名方法,其能在一定程度上解决如何在提高椭圆曲线数字签名计算效率的同时提高其安全性的技术问题。本申请还提供了一种数字签名系统、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种数字签名方法,应用于签名方,包括:
获取待签名的目标消息;
获取公开的目标椭圆曲线参数,所述目标椭圆曲线参数包括椭圆曲线的基点、所述基点的阶值;
获取所述签名方的第一私钥及第二私钥;
生成与所述目标消息对应的第一随机数,并基于所述第一随机数对所述基点进行运算,得到第一签名值;
生成与所述目标消息对应的第二随机数;
基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到第二签名值;
基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到第三签名值;
将所述第一签名值、所述第二签名值和所述第三签名值作为所述目标消息的目标签名值。
优选的,所述基于所述第一随机数对所述基点进行运算,得到第一签名值,包括:
计算所述第一随机数和所述基点的乘积值;
将所述乘积值中的目标坐标值作为第一数值,所述目标坐标值包括所述乘积值中的横坐标值或纵坐标值;
基于所述阶值对所述第一数值进行求余运算,得到第二数值;
若所述第二数值的值不为零,则将所述第二数值作为所述第一签名值;若所述第二数值的值为零,则返回执行所述生成与所述目标消息对应的第一随机数的步骤。
优选的,所述基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到第二签名值,包括:
通过第一运算公式,基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到第三数值;
若所述第三数值不为零,则将所述第三数值作为所述第二签名值;
若所述第三数值为零,则返回执行所述生成与所述目标消息对应的第二随机数的步骤;
所述第一运算公式包括:
s1=(k-d1-t)mod n;
其中,s1表示所述第三数值;t表示所述第二随机数;k表示所述第一随机数;d1表示所述第一私钥;mod表示求余运算;n表示所述阶值。
优选的,所述基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到第三签名值,包括:
通过第二运算公式,基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到第四数值;
若所述第四数值不为零,则将所述第四数值作为所述第三签名值;
若所述第四数值为零,则返回执行所述生成与所述目标消息对应的第二随机数的步骤;
所述第二运算公式包括:
s2=(t-d2)mod n;
其中,s2表示所述第四数值;d2表示所述第二私钥。
优选的,所述第一随机数及所述第二随机数均为属于[1,n-1]间的整数,其中,n表示所述阶值。
一种数字签名方法,应用于验证方,包括:
获取目标消息的目标签名值,所述目标签名值包括第一签名值、第二签名值和第三签名值;
获取公开的目标椭圆曲线参数,所述目标椭圆曲线参数包括椭圆曲线的基点、所述基点的阶值;
获取签名方的第一公钥及第二公钥,所述第一公钥基于所述签名方的第一私钥及所述基点生成,所述第二公钥基于所述签名方的第二私钥及所述基点生成;
基于所述第二签名值、所述基点、所述第三签名值、所述第一公钥及第二公钥生成第五数值;
将所述第五数值中的目标坐标值作为第六数值,所述目标坐标值包括所述第五数值中的横坐标值或纵坐标值;
基于所述阶值对所述第六数值进行求余运算,得到验证数值;
若所述验证数值等于所述第一签名值,则验证签名成功;若所述验证数值不等于所述第一签名值,则验证签名失败;
其中,所述签名方生成与所述目标消息对应的第一随机数,并基于所述第一随机数对所述基点进行运算,得到所述第一签名值;生成与所述目标消息对应的第二随机数;基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到所述第二签名值;基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到所述第三签名值。
优选的,所述基于所述第二签名值、所述基点、所述第三签名值、所述第一公钥及第二公钥生成第五数值,包括:
通过第三运算公式,基于所述第二签名值、所述基点、所述第三签名值、所述第一公钥及第二公钥生成所述第五数值;
所述第三运算公式包括:
(s1+s2)G+Q1+Q2=(x2,y2);
其中,(x2,y2)表示所述第五数值;s1表示所述第二签名值,s1=(k-d1-t)mod n;s2表示所述第三签名值,s2=(t-d2)mod n;t表示所述第二随机数;k表示所述第一随机数;d1表示所述第一私钥;mod表示求余运算;n表示所述阶值;G表示所述基点;Q1表示所述第一公钥;Q2表示所述第二公钥;
其中,所述签名方计算所述第一随机数和所述基点的乘积值;将所述乘积值中的所述目标坐标值作为第一数值;基于所述阶值对所述第一数值进行求余运算,得到第二数值;若所述第二数值的值不为零,则将所述第二数值作为所述第一签名值。
一种数字签名系统,应用于签名方,包括:
第一获取模块,用于获取待签名的目标消息;
第二获取模块,用于获取公开的目标椭圆曲线参数,所述目标椭圆曲线参数包括椭圆曲线的基点、所述基点的阶值;
第三获取模块,用于获取所述签名方的第一私钥及第二私钥;
第一生成模块,用于生成与所述目标消息对应的第一随机数,基于所述第一随机数对所述基点进行运算,得到第一签名值;
第二生成模块,用于生成与所述目标消息对应的第二随机数;
第一运算模块,用于基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到第二签名值;
第二运算模块,用于基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到第三签名值;
第一处理模块,用于将所述第一签名值、所述第二签名值和所述第三签名值作为所述目标消息的目标签名值。
一种数字签名设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述数字签名方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述数字签名方法的步骤。
本申请提供的一种数字签名方法,应用于签名方,获取待签名的目标消息;获取公开的目标椭圆曲线参数,目标椭圆曲线参数包括椭圆曲线的基点、基点的阶值;获取签名方的第一私钥及第二私钥;生成与目标消息对应的第一随机数,基于第一随机数对基点进行运算,得到第一签名值;生成与目标消息对应的第二随机数;基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第二签名值;基于第二随机数和第二私钥对阶值进行求余运算,得到第三签名值;将第一签名值、第二签名值和第三签名值作为目标消息的目标签名值。本申请实现了借助椭圆曲线进行数字签名,整个签名过程中不存在模逆运算和哈希运算,且在第二签名值和第三签名值的生成过程中仅采用了模加减,不涉及到模乘运算,运算效率高,也即本申请提高了椭圆曲线数字签名的效率,且攻击方在无法获取第一随机数、第二随机数的情况下,即便签名方有一个私钥泄漏,攻击方仍无法破解目标签名值,安全性好。本申请提供的一种数字签名系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数字签名方法的第一流程图;
图2为本申请实施例提供的一种数字签名方法的第二流程图;
图3为本申请实施例提供的一种数字签名系统的结构示意图;
图4为本申请实施例提供的一种数字签名设备的结构示意图;
图5为本申请实施例提供的一种数字签名设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种数字签名方法的第一流程图。
本申请实施例提供的一种数字签名方法,应用于签名方,可以包括以下步骤:
步骤S101:获取待签名的目标消息。
实际应用中,签名方可以先获取待签名的目标消息,目标消息的类型可以根据具体应用场景来确定,比如目标消息可以为短信、软件中的加密文字、邮件、数值等,本申请在此不做具体限定。
步骤S102:获取公开的目标椭圆曲线参数,目标椭圆曲线参数包括椭圆曲线的基点、基点的阶值。
实际应用中,签名方在获取待签名的目标消息之后,便可以获取公开的目标椭圆曲线参数,且目标椭圆曲线参数包括可以椭圆曲线的基点、基点的阶值,以便后续基于该基点及阶值对目标消息进行签名。需要说明的是,基点、阶值的具体数值可以根据实际需要确定,本申请在此不做具体限定。
此外,还需说明的是,设E为有限域Fq上的一条椭圆曲线,则具体应用场景中的椭圆曲线参数是T=(q,a,b,G,n,h),其中,对于有限域Fq,q=p或q=2m,p表示素数,m表示正整数;a,b为椭圆曲线方程的参数,且a,b属于Fq;G表示E(Fq)上的一个基点;n是基点G的阶,具体的,n>2160
Figure BDA0004108942500000071
h表示余因子,h=#E(Fq)mod n,#E(Fq)表示椭圆曲线E(Fq)上点的个数。
步骤S103:获取签名方的第一私钥及第二私钥。
实际应用中,签名方在获取公开的目标椭圆曲线参数之后,便可以获取签名方的第一私钥及第二私钥,比如随机生成两个整数d1、d2分别作为第一私钥及第二私钥等,以便后续基于该第一私钥及第二私钥对目标消息进行签名。
步骤S104:生成与目标消息对应的第一随机数,基于第一随机数对基点进行运算,得到第一签名值。
实际应用中,签名方在获取签名方的第一私钥及第二私钥之后,便可以生成与目标消息对应的第一随机数,基于第一随机数对基点进行运算,得到第一签名值。
具体应用场景中,签名方在基于第一随机数对基点进行运算,得到第一签名值的过程中,可以计算第一随机数和基点的乘积值,也即计算kG=(x1,y1),其中,(x1,y1)表示该乘积值,k表示第一随机数,G表示基点;将乘积值中的目标坐标值作为第一数值β,目标坐标值包括乘积值中的横坐标值或纵坐标值,比如将乘积值中的横坐标值x1作为第一数值等;基于阶值对第一数值进行求余运算,得到第二数值,也即计算r=βmod n,其中r表示第二数值,n表示阶值;若第二数值的值不为零,则将第二数值作为第一签名值,继续之后的步骤;若第二数值的值为零,则返回执行生成与目标消息对应的第一随机数及之后的步骤。
步骤S105:生成与目标消息对应的第二随机数。
步骤S106:基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第二签名值。
实际应用中,签名方在生成与目标消息对应的第一随机数,基于第一随机数对基点进行运算,得到第一签名值之后,便可以生成与目标消息对应的第二随机数,基于第一随机数、第二随机数、第一私钥对阶值进行类型为模加减的求余运算,得到第二签名值。
具体应用场景中,签名方在基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第二签名值的过程中,可以通过第一运算公式,基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第三数值;若第三数值不为零,则将第三数值作为第二签名值;若第三数值为零,则返回执行生成与目标消息对应的第二随机数的步骤;
第一运算公式包括:
s1=(k-d1-t)mod n;
其中,s1表示第三数值;t表示第二随机数;k表示第一随机数;d1表示第一私钥;mod表示求余运算;n表示阶值。
步骤S107:基于第二随机数和第二私钥对阶值进行求余运算,得到第三签名值。
实际应用中,签名方在基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第二签名值之后,便可以基于第二随机数和第二私钥对阶值进行类型为模加减的求余运算,得到第三签名值。
具体应用场景中,签名方在基于第二随机数和第二私钥对阶值进行求余运算,得到第三签名值的过程中,可以通过第二运算公式,基于第二随机数和第二私钥对阶值进行求余运算,得到第四数值;若第四数值不为零,则将第四数值作为第三签名值;若第四数值为零,则返回执行生成与目标消息对应的第二随机数的步骤;
第二运算公式包括:
s2=(t-d2)mod n;
其中,s2表示第四数值;d2表示第二私钥。
需要说明的是,由于攻击方无法破解签名方生成的第一随机数,所以攻击方无法生成准确的第一签名值;且由于攻击方难以破解第二随机数,所以攻击方难以对第二签名值和第三签名值进行破解,得到签名方的第一私钥和第二私钥,而通过签名方的公钥求解私钥,等同于求解椭圆曲线离散对数问题,这显然是不可能的,所以攻击方难以破解本申请数字签名过程中签名方的私钥。此外,在现有的绝大多数数字签名方法中,私钥是由签名方秘密保存的,一般不会被攻击方所获取,所以现有数字签名方法中所应用的私钥是安全的,如果现有数字签名方法中的私钥泄露的话,攻击方便可能伪造签名过程,也即现有数字签名方法的安全性也依赖于私钥的安全性;而在本申请方案中引入了两个私钥,即使攻击方获取到签名方泄露的一个私钥,由于攻击方无法准确生成签名方签名过程中所应用的第一随机数、第二随机数,且无法获得另一个私钥,所以攻击方无法通过签名方的私钥伪造签名方进行签名,换言之本申请数字签名方法的安全性更高。
步骤S108:将第一签名值、第二签名值和第三签名值作为目标消息的目标签名值。
实际应用中,签名方在生成第一签名值、第二签名值和第三签名值之后,便可以将第一签名值、第二签名值和第三签名值作为目标消息的目标签名值。
具体应用场景中,本申请中签名方生成的第一随机数、第二随机数、第一私钥及第二私钥是均属于[1,n-1]间的整数等,本申请在此不做具体限定。
还需说明的是,本申请提供的数字签名方法可以应用于电力、物联网、航天航空、智慧交通、智慧水务、电子商务、电子投票、软硬件优化、网络安全认证和区块链技术等领域,本申请在此不做具体限定。
本申请提供的一种数字签名方法,应用于签名方,获取待签名的目标消息;获取公开的目标椭圆曲线参数,目标椭圆曲线参数包括椭圆曲线的基点、基点的阶值;获取签名方的第一私钥及第二私钥;生成与目标消息对应的第一随机数,基于第一随机数对基点进行运算,得到第一签名值;生成与目标消息对应的第二随机数;基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第二签名值;基于第二随机数和第二私钥对阶值进行求余运算,得到第三签名值;将第一签名值、第二签名值和第三签名值作为目标消息的目标签名值。本申请实现了借助椭圆曲线进行数字签名,整个签名过程中不存在模逆运算和哈希运算,且在第二签名值和第三签名值的生成过程中仅采用了模加减,不涉及到模乘运算,运算效率高,也即本申请提高了椭圆曲线数字签名的效率,且攻击方在无法获取第一随机数、第二随机数的情况下,即便签名方有一个私钥泄漏,攻击方仍无法破解目标签名值,本申请安全性好。
请参阅图2,图2为本申请实施例提供的一种数字签名方法的第二流程图。
本申请实施例提供的一种数字签名方法,其特征在于,应用于验证方,可以包括以下步骤:
步骤S201:获取目标消息的目标签名值,目标签名值包括第一签名值、第二签名值和第三签名值。
实际应用中,验证方可以先获取签名方生成的目标消息的目标签名值,目标签名值的生成过程如上一实施例所述。
需要说明的是,验证方及签名方可以根据具体应用场景来确定,比如在通信过程中,签名方可以为发送消息的客户端,验证方可以为接收消息的服务端;当然,验证方也可以为第三方可信机构,此时验证方在验证签名成功后,将客户端发送的消息传输给服务端;此外,签名方及验证方进行数字签名过程所需的椭圆曲线可以由第三方可信机构进行管控,在此过程中,可以先由第三方可信机构生成签名方和验证方进行数字签名所需的椭圆曲线并公开,签名方和验证方再获取公开的椭圆曲线进行数字签名;当然,签名方及验证方进行数字签名过程所需的椭圆曲线也可以由签名方或验证方自身进行管控,在此过程中,可以先由签名方或验证方生成椭圆曲线并公开,再由验证方或签名方获取公开的椭圆曲线进行数字签名等,本申请在此不作具体限定。
步骤S202:获取公开的目标椭圆曲线参数,目标椭圆曲线参数包括椭圆曲线的基点、基点的阶值。
实际应用中,验证方在获取目标消息的目标签名值之后,便可以获取公开的目标椭圆曲线参数,目标椭圆曲线参数包括椭圆曲线的基点、基点的阶值,以便基于该基点、阶值对目标签名值进行验证。
步骤S203:获取签名方的第一公钥及第二公钥,第一公钥基于签名方的第一私钥及基点生成,第二公钥基于签名方的第二私钥及基点生成。
实际应用中,验证方在获取公开的目标椭圆曲线参数之后,便可以获取签名方的第一公钥及第二公钥,以便基于该第一公钥及第二公钥对目标签名值进行验证。
需要说明的是,第一公钥可以由签名方对第一私钥及基点进行乘法运算后得到,第二公钥可以由签名方第二私钥及基点进行乘法运算后得到,本申请在此不做具体限定。
步骤S204:基于第二签名值、基点、第三签名值、第一公钥及第二公钥生成第五数值。
步骤S205:将第五数值中的目标坐标值作为第六数值,目标坐标值包括第五数值中的横坐标值或纵坐标值。
实际应用中,验证方在获取签名方的第一公钥及第二公钥之后,便可以基于第二签名值、基点、第三签名值、第一公钥及第二公钥生成用于签名验证的第六数值,具体的,可以基于第二签名值、基点、第三签名值、第一公钥及第二公钥生成第五数值,并将第五数值中的目标坐标值作为第六数值,目标坐标值包括第五数值中的横坐标值或纵坐标值。
具体应用场景中,验证方在基于第二签名值、基点、第三签名值、第一公钥及第二公钥生成第五数值的过程中,可以通过第三运算公式,基于第二签名值、基点、第三签名值、第一公钥及第二公钥生成第五数值;
第三运算公式包括:
(s1+s2)G+Q1+Q2=(x2,y2);
其中,(x2,y2)表示类型为坐标点的第五数值,也可称其为坐标点值;s1表示第二签名值,s1=(k-d1-t)mod n;s2表示第三签名值,s2=(t-d2)mod n;t表示第二随机数;k表示第一随机数;d1表示第一私钥;mod表示求余运算;n表示阶值;G表示基点;Q1表示第一公钥;Q2表示第二公钥;且签名方计算第一随机数和基点的乘积值;将乘积值中的目标坐标值作为第一数值;基于阶值对第一数值进行求余运算,得到第二数值;若第二数值的值不为零,则将第二数值作为第一签名值。
需要说明的是,签名方生成第一签名值的过程中所依据的目标坐标值的类型需与验证方生成第六数值的过程中所依据的目标坐标值的类型相同,也即均为横坐标值或均为纵坐标值。
步骤S206:基于阶值对第六数值进行求余运算,得到验证数值。
步骤S207:若验证数值等于第一签名值,则验证签名成功;若验证数值不等于第一签名值,则验证签名失败。
实际应用中,验证方在将第五数值中的目标坐标值作为第六数值之后,便可以基于阶值对第六数值进行求余运算,得到验证数值,并且比较验证数值与第一签名值是否相等,若验证数值等于第一签名值,则验证签名成功,此后可以接收签名等;若验证数值不等于第一签名值,则验证签名失败,此后可以拒绝接收签名等。
需要说明的是,当目标签名值为正确的签名值时,由于:
(s1+s2)G+Q1+Q2=(k-d1-t+t-d2)G+(d1+d2)G=kG=(x1,y1);
假设目标坐标值为横坐标值,则第一签名值为r=x1 mod n,kG=(x1,y1),第六数值为x2=x1,相应的,验证值为:
v=x2 mod n=x1 mod n;
所以当验证数值等于第一签名值时,则验证签名成功;当验证数值不等于第一签名值时,则验证签名失败。
需要说明的是,在签名方生成的第一随机数、第二随机数、第一私钥及第二私钥是均属于[1,n-1]间的整数,且生成的第一签名值、第二签名值和第三签名值均为属于[1,n-1]间的整数时,验证方在获取目标椭圆曲线参数之后,可以先验证第一签名值、第二签名值和第三签名值是否均为属于[1,n-1]间的整数,若是,则可以执行获取签名方的第一公钥及第二公钥及之后的步骤,若否,则可以直接判定验证签名失败等。
由本申请的数字签名方案可知,本申请摒弃了椭圆曲线数字签名算法中惯用的逆运算和哈希函数,在一定程度上减轻了常规的椭圆曲线数字签名算法运算负担。此外在签名过程中,对于现有的签名方程,本申请摒弃了常用到的模乘运算,只是最简单的模加减法,进一步提升了计算效率。同时,本申请加大了数字签名方法的安全性,具体来说如下:
1、本申请具有抵抗私钥攻击的性质。因为攻击方无法通过s1=(k-d1-t)mod n、s2=(t-d2)mod n求解出私钥d1和d2。因为对于单独的s1或s2,s1中含有k、d1、t三个未知数,s2中含有d2、t两个未知数,因此求解私钥困难,而通过公钥求解私钥,等同于求解椭圆曲线离散对数问题,显然是不可能的;
2、本申请具有签名不可伪造的性质。这意味着攻击者不能创造有效的签名,验证方无法通过,因为如果攻击方伪造签名(r',s1',s'2),需要生成正确的r'、s1'、s'2;而生成正确的r',需要获得随机数k;生成正确的s1'和s'2,需要知道t、k、d1和d2;显然攻击方无法获得以上的参数,所以攻击方无法伪造目标消息的目标签名值;
3、本申请与现有的椭圆曲线数字签名算法相比,在于引入了两个私钥从而生成带有s1和s2的签名,大大降低了私钥攻击和签名伪造的风险,加大了方案的安全性。且引入两个私钥,在一定程度上也降低了私钥泄漏的风险。因为往往在仅含一个私钥的方案中,一旦私钥泄漏,方案的安全性受到了极大冲击。而在本申请中,即便签名方不慎将其中一个私钥泄漏,由签名方程s1和s2可知,另一个私钥也会保护方案的安全性。
请参阅图3,图3为本申请实施例提供的一种数字签名系统的结构示意图。
本申请实施例提供的一种数字签名系统,应用于签名方,可以包括:
第一获取模块101,用于获取待签名的目标消息;
第二获取模块102,用于获取公开的目标椭圆曲线参数,目标椭圆曲线参数包括椭圆曲线的基点、基点的阶值;
第三获取模块103,用于获取签名方的第一私钥及第二私钥;
第一生成模块104,用于生成与目标消息对应的第一随机数,基于第一随机数对基点进行运算,得到第一签名值;
第二生成模块105,用于生成与目标消息对应的第二随机数;
第一运算模块106,用于基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第二签名值;
第二运算模块107,用于基于第二随机数和第二私钥对阶值进行求余运算,得到第三签名值;
第一处理模块108,用于将第一签名值、第二签名值和第三签名值作为目标消息的目标签名值。
本申请实施例提供的一种数字签名系统,应用于签名方,第一生成模块可以包括:
第一计算单元,用于计算第一随机数和基点的乘积值;
第一处理单元,用于将乘积值中的目标坐标值作为第一数值,目标坐标值包括乘积值中的横坐标值或纵坐标值;
第二计算单元,用于基于阶值对第一数值进行求余运算,得到第二数值;
第二处理单元,用于若第二数值的值不为零,则将第二数值作为第一签名值;若第二数值的值为零,则返回执行生成与目标消息对应的第一随机数的步骤。
本申请实施例提供的一种数字签名系统,应用于签名方,第一运算模块可以包括:
第一运算单元,用于通过第一运算公式,基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第三数值;若第三数值不为零,则将第三数值作为第二签名值;若第三数值为零,则提示第二生成模块执行生成与目标消息对应的第二随机数的步骤;
第一运算公式包括:
s1=(k-d1-t)mod n;
其中,s1表示第三数值;t表示第二随机数;k表示第一随机数;d1表示第一私钥;mod表示求余运算;n表示阶值。
本申请实施例提供的一种数字签名系统,应用于签名方,第二运算模块可以包括:
第二运算单元,用于通过第二运算公式,基于第二随机数和第二私钥对阶值进行求余运算,得到第四数值;若第四数值不为零,则将第四数值作为第三签名值;若第四数值为零,则提示第二生成模块执行生成与目标消息对应的第二随机数的步骤;
第二运算公式包括:
s2=(t-d2)mod n;
其中,s2表示第四数值;d2表示第二私钥。
本申请实施例提供的一种数字签名系统,应用于签名方,第一随机数、第二随机数均为属于[1,n-1]间的整数,其中,n表示阶值。
本申请实施例提供的一种数字签名系统,应用于验证方,可以包括:
第四获取模块,用于获取目标消息的目标签名值,目标签名值包括第一签名值、第二签名值和第三签名值;
第五获取模块,用于获取公开的目标椭圆曲线参数,目标椭圆曲线参数包括椭圆曲线的基点、基点的阶值;
第六获取模块,用于获取签名方的第一公钥及第二公钥,第一公钥基于签名方的第一私钥及基点生成,第二公钥基于签名方的第二私钥及基点生成;
第三生成模块,用于基于第二签名值、基点、第三签名值、第一公钥及第二公钥生成第五数值;
第二处理模块,用于将第五数值中的目标坐标值作为第六数值,目标坐标值包括第五数值中的横坐标值或纵坐标值;
第三运算模块,用于基于阶值对第六数值进行求余运算,得到验证数值;
第一验证模块,用于若验证数值等于第一签名值,则验证签名成功;若验证数值不等于第一签名值,则验证签名失败;
其中,签名方生成与目标消息对应的第一随机数,并基于第一随机数对基点进行运算,得到第一签名值;生成与目标消息对应的第二随机数;基于第一随机数、第二随机数、第一私钥对阶值进行求余运算,得到第二签名值;基于第二随机数和第二私钥对阶值进行求余运算,得到第三签名值。
本申请实施例提供的一种数字签名系统,应用于验证方,第三生成模块包括:
第一生成单元,用于通过第三运算公式,基于第二签名值、基点、第三签名值、第一公钥及第二公钥生成第五数值;
第三运算公式包括:
(s1+s2)G+Q1+Q2=(x2,y2);
其中,(x2,y2)表示第五数值;s1表示第二签名值,s1=(k-d1-t)mod n;s2表示第三签名值,s2=(t-d2)mod n;t表示第二随机数;k表示第一随机数;d1表示第一私钥;mod表示求余运算;n表示阶值;G表示基点;Q1表示第一公钥;Q2表示第二公钥;
其中,签名方计算第一随机数和基点的乘积值;将乘积值中的目标坐标值作为第一数值;基于阶值对第一数值进行求余运算,得到第二数值;若第二数值的值不为零,则将第二数值作为第一签名值。
本申请还提供了一种数字签名设备及计算机可读存储介质,其均具有本申请实施例提供的一种数字签名方法具有的对应效果。请参阅图4,图4为本申请实施例提供的一种数字签名设备的结构示意图。
本申请实施例提供的一种数字签名设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上任一实施例所描述数字签名方法的步骤。
请参阅图5,本申请实施例提供的另一种数字签名设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现数字签名设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述数字签名方法的步骤。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种数字签名系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种数字签名方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数字签名方法,其特征在于,应用于签名方,包括:
获取待签名的目标消息;
获取公开的目标椭圆曲线参数,所述目标椭圆曲线参数包括椭圆曲线的基点、所述基点的阶值;
获取所述签名方的第一私钥及第二私钥;
生成与所述目标消息对应的第一随机数,并基于所述第一随机数对所述基点进行运算,得到第一签名值;
生成与所述目标消息对应的第二随机数;
基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到第二签名值;
基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到第三签名值;
将所述第一签名值、所述第二签名值和所述第三签名值作为所述目标消息的目标签名值。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一随机数对所述基点进行运算,得到第一签名值,包括:
计算所述第一随机数和所述基点的乘积值;
将所述乘积值中的目标坐标值作为第一数值,所述目标坐标值包括所述乘积值中的横坐标值或纵坐标值;
基于所述阶值对所述第一数值进行求余运算,得到第二数值;
若所述第二数值的值不为零,则将所述第二数值作为所述第一签名值;若所述第二数值的值为零,则返回执行所述生成与所述目标消息对应的第一随机数的步骤。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到第二签名值,包括:
通过第一运算公式,基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到第三数值;
若所述第三数值不为零,则将所述第三数值作为所述第二签名值;
若所述第三数值为零,则返回执行所述生成与所述目标消息对应的第二随机数的步骤;
所述第一运算公式包括:
s1=(k-d1-t)mod n;
其中,s1表示所述第三数值;t表示所述第二随机数;k表示所述第一随机数;d1表示所述第一私钥;mod表示求余运算;n表示所述阶值。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到第三签名值,包括:
通过第二运算公式,基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到第四数值;
若所述第四数值不为零,则将所述第四数值作为所述第三签名值;
若所述第四数值为零,则返回执行所述生成与所述目标消息对应的第二随机数的步骤;
所述第二运算公式包括:
s2=(t-d2)mod n;
其中,s2表示所述第四数值;d2表示所述第二私钥。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一随机数及所述第二随机数均为属于[1,n-1]间的整数,其中,n表示所述阶值。
6.一种数字签名方法,其特征在于,应用于验证方,包括:
获取目标消息的目标签名值,所述目标签名值包括第一签名值、第二签名值和第三签名值;
获取公开的目标椭圆曲线参数,所述目标椭圆曲线参数包括椭圆曲线的基点、所述基点的阶值;
获取签名方的第一公钥及第二公钥,所述第一公钥基于所述签名方的第一私钥及所述基点生成,所述第二公钥基于所述签名方的第二私钥及所述基点生成;
基于所述第二签名值、所述基点、所述第三签名值、所述第一公钥及第二公钥生成第五数值;
将所述第五数值中的目标坐标值作为第六数值,所述目标坐标值包括所述第五数值中的横坐标值或纵坐标值;
基于所述阶值对所述第六数值进行求余运算,得到验证数值;
若所述验证数值等于所述第一签名值,则验证签名成功;若所述验证数值不等于所述第一签名值,则验证签名失败;
其中,所述签名方生成与所述目标消息对应的第一随机数,并基于所述第一随机数对所述基点进行运算,得到所述第一签名值;生成与所述目标消息对应的第二随机数;基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到所述第二签名值;基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到所述第三签名值。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第二签名值、所述基点、所述第三签名值、所述第一公钥及第二公钥生成第五数值,包括:
通过第三运算公式,基于所述第二签名值、所述基点、所述第三签名值、所述第一公钥及第二公钥生成所述第五数值;
所述第三运算公式包括:
(s1+s2)G+Q1+Q2=(x2,y2);
其中,(x2,y2)表示所述第五数值;s1表示所述第二签名值,s1=(k-d1-t)mod n;s2表示所述第三签名值,s2=(t-d2)mod n;t表示所述第二随机数;k表示所述第一随机数;d1表示所述第一私钥;mod表示求余运算;n表示所述阶值;G表示所述基点;Q1表示所述第一公钥;Q2表示所述第二公钥;
其中,所述签名方计算所述第一随机数和所述基点的乘积值;将所述乘积值中的所述目标坐标值作为第一数值;基于所述阶值对所述第一数值进行求余运算,得到第二数值;若所述第二数值的值不为零,则将所述第二数值作为所述第一签名值。
8.一种数字签名系统,其特征在于,应用于签名方,包括:
第一获取模块,用于获取待签名的目标消息;
第二获取模块,用于获取公开的目标椭圆曲线参数,所述目标椭圆曲线参数包括椭圆曲线的基点、所述基点的阶值;
第三获取模块,用于获取所述签名方的第一私钥及第二私钥;
第一生成模块,用于生成与所述目标消息对应的第一随机数,基于所述第一随机数对所述基点进行运算,得到第一签名值;
第二生成模块,用于生成与所述目标消息对应的第二随机数;
第一运算模块,用于基于所述第一随机数、所述第二随机数、所述第一私钥对所述阶值进行求余运算,得到第二签名值;
第二运算模块,用于基于所述第二随机数和所述第二私钥对所述阶值进行求余运算,得到第三签名值;
第一处理模块,用于将所述第一签名值、所述第二签名值和所述第三签名值作为所述目标消息的目标签名值。
9.一种数字签名设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数字签名方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数字签名方法的步骤。
CN202310200408.2A 2023-03-03 2023-03-03 一种数字签名方法、系统、设备及计算机可读存储介质 Pending CN116346328A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310200408.2A CN116346328A (zh) 2023-03-03 2023-03-03 一种数字签名方法、系统、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310200408.2A CN116346328A (zh) 2023-03-03 2023-03-03 一种数字签名方法、系统、设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN116346328A true CN116346328A (zh) 2023-06-27

Family

ID=86884984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310200408.2A Pending CN116346328A (zh) 2023-03-03 2023-03-03 一种数字签名方法、系统、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116346328A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117081744A (zh) * 2023-10-17 2023-11-17 北京密码云芯科技有限公司 基于椭圆曲线的签名处理方法、装置及电子设备
CN117155584A (zh) * 2023-10-27 2023-12-01 北京信安世纪科技股份有限公司 Schnorr数字签名方法、系统及设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117081744A (zh) * 2023-10-17 2023-11-17 北京密码云芯科技有限公司 基于椭圆曲线的签名处理方法、装置及电子设备
CN117081744B (zh) * 2023-10-17 2024-01-26 北京密码云芯科技有限公司 基于椭圆曲线的签名处理方法、装置及电子设备
CN117155584A (zh) * 2023-10-27 2023-12-01 北京信安世纪科技股份有限公司 Schnorr数字签名方法、系统及设备
CN117155584B (zh) * 2023-10-27 2024-01-26 北京信安世纪科技股份有限公司 Schnorr数字签名方法、系统及设备

Similar Documents

Publication Publication Date Title
US10944575B2 (en) Implicitly certified digital signatures
EP3681093B1 (en) Secure implicit certificate chaining
Tso et al. Strongly secure certificateless short signatures
US10263773B2 (en) Method for updating a public key
US20160352525A1 (en) Signature protocol
CN116346328A (zh) 一种数字签名方法、系统、设备及计算机可读存储介质
CN107911217B (zh) 基于ecdsa算法协同生成签名的方法、装置和数据处理系统
US20150006900A1 (en) Signature protocol
CN109618348B (zh) 一种单向代理重签名的实现方法及装置
CN101116281A (zh) 询问-应答签名和安全迪菲-海尔曼协议
Lin A new certificateless strong designated verifier signature scheme: non-delegatable and SSA-KCA secure
Kumar et al. An efficient implementation of digital signature algorithm with SRNN public key cryptography
Fanfara et al. Usage of asymmetric encryption algorithms to enhance the security of sensitive data in secure communication
Wang et al. An improved digital signature algorithm and authentication protocols in cloud platform
WO2016187689A1 (en) Signature protocol
Lee et al. A novel designated verifier signature scheme based on bilinear pairing
Xu et al. An Improved Identity-Based Multi-Proxy Multi-Signature Scheme.
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography
Singh et al. An Efficient and Secure RSA Based Certificateless Signature Scheme for Wireless Sensor Networks
Benrebbouh et al. Enhancing Security and Authentication in IoT-based Energy Internet using Post-Quantum Blockchain
Terrance et al. In-depth Analysis of the Performance of RSA and ECC in Digital Signature Application
Hou et al. A Triple Unlocking Mechanism Model Against Forging Signature Attack Based on Multivariate Polynomial Public Key Cryptosystem
Toradmalle et al. A Chosen-Provably-Secure Attack-Resistant Light-Weight Digital Signature Based on Elliptical Curve for Resource Constrained Applications
Luu et al. SOME VARIANTS OF THE SCHNORR SIGNATURE SCHEMA ON THE FINITE FIELD AND THE ELLIPTIC CURVE
CA2892318C (en) Signature protocol

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