CN115134093B - 数字签名方法及计算设备 - Google Patents

数字签名方法及计算设备 Download PDF

Info

Publication number
CN115134093B
CN115134093B CN202211049613.5A CN202211049613A CN115134093B CN 115134093 B CN115134093 B CN 115134093B CN 202211049613 A CN202211049613 A CN 202211049613A CN 115134093 B CN115134093 B CN 115134093B
Authority
CN
China
Prior art keywords
signature
sub
ciphertext
calculation formula
private 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
CN202211049613.5A
Other languages
English (en)
Other versions
CN115134093A (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.)
Beijing Infosec Technologies Co Ltd
Original Assignee
Beijing Infosec Technologies Co Ltd
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 Beijing Infosec Technologies Co Ltd filed Critical Beijing Infosec Technologies Co Ltd
Priority to CN202211049613.5A priority Critical patent/CN115134093B/zh
Publication of CN115134093A publication Critical patent/CN115134093A/zh
Application granted granted Critical
Publication of CN115134093B publication Critical patent/CN115134093B/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
    • 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/0822Key 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 key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously

Landscapes

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

Abstract

本申请实施例提供一种数字签名方法及计算设备。其中,将待签名消息进行加密获得加密消息,并将加密消息发送至第二签名端;利用加密公钥对第一签名私钥进行加密获得第一密文,并将第一密文发送至第二签名端;获取第二签名端发送的第二密文及第一子签名;利用解密私钥从第二密文解密获得包含第一签名私钥及第二签名私钥的解密信息;基于加密消息计算第一部分签名;基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名;根据第一部分签名及第二部分签名,生成待签名消息的目标签名。本申请实施例提供的技术方案目标签名由第一签名端与第二签名端交互生成,避免了某一方私钥泄露时,伪造签名成功的问题。

Description

数字签名方法及计算设备
技术领域
本申请实施例涉及计算机应用技术领域,尤其涉及一种数字签名方法及计算设备。
背景技术
随着网络技术的发展,涌现出如移动支付、移动办公等新的业务,而这些业务进行数据传输时,通常需要密码技术的保护,而数字签名就是关键的一种。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
以SM2(椭圆曲线公钥密码算法)签名算法为例,密钥包括私钥和公钥,通过用私钥进行签名,用公钥进行验证,以此来保证数据传输的安全性。
现有技术中,采用软件实现的数字签名的密钥,只存放在终端内存中,在终端受到曲线攻击被窃取时,就可直接伪造签名,安全性不高。
发明内容
本申请实施例提供一种数字签名方法及计算设备,用以实现提高私钥安全性的技术问题。
第一方面,本申请实施例提供了一种数字签名方法,包括:
将待签名消息进行加密获得加密消息,并将所述加密消息发送至第二签名端;
利用加密公钥对第一签名私钥进行加密获得第一密文,并将所述第一密文发送至所述第二签名端;
获取所述第二签名端发送的第二密文及第一子签名;其中,所述第二密文利用所述加密公钥、第二签名私钥以及所述第一密文进行加密获得;所述第一子签名基于所述加密消息计算获得;
利用解密私钥从所述第二密文解密获得包含所述第一签名私钥及所述第二签名私钥的解密信息;
基于所述加密消息计算第一部分签名;
基于所述第一部分签名、所述第一子签名及所述解密信息,计算获得第二部分签名;
根据所述第一部分签名及所述第二部分签名,生成所述待签名消息的目标签名。
第二方面,本申请实施例提供了一种数字签名方法,包括:
接收第一签名端发送的加密消息以及第一密文;其中,所述加密消息将待签名消息进行加密获得;所述第一密文利用加密公钥对第一签名私钥进行加密获得;
利用所述加密公钥、第二签名私钥以及所述第一密文进行加密获得第二密文;
基于加密消息计算获得第一子签名;
将所述第二密文以及所述第一子签名发送至第一签名端;所述第一签名端用以利用解密私钥从第二密文解密获得包含所述第一签名私钥及所述第二签名私钥的解密信息;基于所述加密消息计算第一部分签名;基于第一部分签名、所述第一子签名及所述解密信息,计算获得第二部分签名;根据第一部分签名及第二部分签名,生成所述待签名消息的目标签名。
第三方面,本申请实施例提供了一种计算设备,包括:处理组件以及存储组件;所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,实现如上述第一方面或者上述第二方面所述的数字签名方法。
本申请实施例中,对待签名消息进行加密获得加密消息,第一签名端将加密后的第一签名私钥即第一密文发送至第二签名端,第二签名端再利用加密公钥、第二签名私钥以及所述第一密文进行加密获得第二密文,并基于加密消息计算第一子签名,之后将第二密文以及第一子签名发送至第一签名端,由第一签名端进行解密得到解密信息,再基于所述加密消息计算第一部分签名,并基于第一部分签名、第一子签名以及解密信息计算获得第二部分签名,根据第一部分签名及第二部分签名,生成所述待签名消息的目标签名。通过对第一签名私钥的加密,提高了第一私钥的安全性,并且目标签名由第一签名端与第二签名端交互生成,需要两方签名私钥共同作用才能签名成功,避免了某一方私钥泄露时,伪造签名成功的问题。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提供的数字签名方法一个实施例的流程图;
图2示出了本申请提供的数字签名方法又一个实施例的流程图;
图3示出了本申请提供的数字签名装置一个实施例的结构示意图;
图4示出了本申请提供的数字签名装置又一个实施例的结构示意图;
图5示出了本申请提供的一种计算设备一个实施例的结构示意图;
图6示出了本申请提供的一种计算设备又一个实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本申请的技术方案应用于数字签名场景中,在数据传输过程中,数字签名可以验证数据在传输过程中有无变动,确保传输数据的完整性、真实性和不可抵赖性,在现有技术中,进行数字签名时,通常会用私钥进行签名,用公钥进行验证,采用软件实现的数字签名的私钥和公钥,只存放在终端内存中,在终端受到攻击被窃取时,就可直接伪造签名,安全性不高,而采用硬件的方式,不方便使用的同时也增加了成本,给用户的体验感不好。
为了保护签名私钥的安全性以及数据的安全性,发明人经过一系列研究,提出了本申请的技术方案,在本申请实施例中,将待签名消息进行加密获得加密消息,并将加密消息发送至第二签名端;利用加密公钥对第一签名私钥进行加密获得第一密文,并将第一密文发送至第二签名端;获取第二签名端发送的第二密文及第一子签名;其中,第二密文利用加密公钥、第二签名私钥以及第一密文进行加密获得;第一子签名基于加密消息计算获得;利用解密私钥从第二密文解密获得包含第一签名私钥及第二签名私钥的解密信息;基于加密消息计算第一部分签名;基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名;根据第一部分签名及第二部分签名,生成待签名消息的目标签名。通过对第一签名私钥的加密,提高了第一私钥的安全性,并且目标签名由第一签名端与第二签名端交互生成,避免了某一方私钥泄露时,伪造签名成功的问题。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请实施例提供的一种数字签名方法一个实施例的流程图,本实施例的技术方案由第一签名端执行,第一签名端可以是客户端,客户端可以发起数字签名,该方法可以包括以下几个步骤:
101:将待签名消息进行加密获得加密消息,并将该加密消息发送至第二签名端。
其中,该待签名消息可以利用哈希(Hash)算法进行加密得到加密信息,该加密信 息即为该签名消息进行哈希计算得到的哈希值,得到加密信息的公式可以为:
Figure 305317DEST_PATH_IMAGE001
,其中e为加密信息,m为待签名消息。
在数字签名的过程中,通常需要计算第一签名值,对于第一签名值下文会进行详细描述,而第一签名值通常需要利用第一中间参数进行计算获得,因此,在将待签名消息进行加密获得加密消息,并将该加密消息发送至第二签名端之前,该方法还可以包括:
利用第一随机数,生成第一中间参数;
将第一中间参数发送至第二签名端。
其中,该第一随机数可以从零以及目标数值限定的取值范围随机生成,第一随机 数的取值范围可以为
Figure 402586DEST_PATH_IMAGE002
,其中,
Figure 750260DEST_PATH_IMAGE003
为第一随机数,n为目标数值,该目标数值可 以为32字节的16进制数。
其中,第一中间参数可以利用第一随机数以及椭圆曲线参数计算获得,具体公式 可以为:
Figure 376413DEST_PATH_IMAGE004
,其中,
Figure 294691DEST_PATH_IMAGE005
为第一中间参数,
Figure 195651DEST_PATH_IMAGE003
为第一随机数,
Figure 633717DEST_PATH_IMAGE006
为椭圆曲线参数, 其中,该椭圆曲线参数为预先设定,在计算中不会变化,可理解为定值。
其中,第一中间参数用以结合第二随机数,生成第二签名值;第二签名值用以结合加密消息,计算获得第二子签名;在第二子签名验证成功的情况下发送第二密文。
由于第一随机数、第二随机数都是随机获取,所以每次进行数字签名时,所产生的中间参数、密文以及签名值和子签名等都不相同,具有较高的安全性。
102:利用加密公钥对第一签名私钥进行加密获得第一密文,并将第一密文发送至第二签名端。
其中,第一密文可以包括第一子密文以及第二子密文;利用加密公钥对第一签名私钥进行加密获得第一密文可以包括:
步骤A:基于第一签名私钥以及目标数值,按照第二计算公式计算获得第一明文。
其中,第一签名私钥可以为从零以及目标数值限定的取值范围随机生成,第一签 名私钥的取值范围可以为
Figure 961930DEST_PATH_IMAGE007
;第二计算公式例如可以为:
Figure 305186DEST_PATH_IMAGE008
,其 中,a为第一明文,d1为第一签名私钥,
Figure 9837DEST_PATH_IMAGE009
为目标数值。
步骤B:基于第一签名私钥、第一随机数以及目标数值,按照第三计算公式计算获得第二明文。
其中,第三计算公式可以为:
Figure 551677DEST_PATH_IMAGE010
,其中,b为第二明文,d1为第一签 名私钥,k1为第一随机数,n为目标数值。
步骤C:利用加密公钥按照第四计算公式对第一明文进行加密,计算获得第一子密文。
其中,该加密公钥在第一签名端发起数字签名时,可以基于paillier加密算法(概率公钥加密算法)生成,在生成该加密公钥的同时,生成解密私钥,形成公私钥对,一对公私钥对中的加密公钥用于加密,解密私钥用于对加密公钥加密的密文进行解密。
其中,第四计算公式可以为:
Figure 302989DEST_PATH_IMAGE011
,其中,c0为第一子密文, Enc为paillier算法的加密函数,pk为加密公钥,
Figure 930279DEST_PATH_IMAGE012
为第一明文。
步骤D:利用加密公钥按照第五计算公式对第二明文进行加密,计算获得第二子密文。
其中,第五计算公式可以为:得到
Figure 173042DEST_PATH_IMAGE013
,其中,c1为第二子 密文,Enc为paillier算法的加密函数,pk为加密公钥,k1为第一随机数,
Figure 834967DEST_PATH_IMAGE014
为 第二明文。
103:获取第二签名端发送的第二密文及第一子签名。
其中,该第二密文可以利用加密公钥、第二签名私钥以及第一密文进行加密获得,该第一子签名可以基于加密消息计算获得,具体计算公式会在下文实施例中进行详细描述。
104:利用解密私钥从第二密文解密获得包含第一签名私钥及第二签名私钥的解密信息。
其中,解密信息可以包括第一解密信息以及第二解密信息;第二密文可以包括第三子密文以及第四子密文;第三子密文可以利用第一结果以及第二结果进行加密获得;第四子密文可以利用第三结果以及第四结果进行加密获得;
其中,利用解密私钥从第二密文解密获得包含第一签名私钥及第二签名私钥的解密信息可以包括:
利用解密私钥并按照第六计算公式对第三子密文进行解密计算,获得第一解密信息;
利用解密私钥并按照第七计算公式对第四子密文进行解密计算,获得第二解密信息。
其中,第六计算公式可以为:
Figure 708245DEST_PATH_IMAGE015
,其 中,
Figure 839143DEST_PATH_IMAGE016
为第一解密信息,Dec为paillier算法的解密函数,sk为解密私钥,
Figure 620018DEST_PATH_IMAGE017
为第三子密 文,d1为第一签名私钥,d2为第二签名私钥,n为目标数值,p1为第三随机数;第三随机数从零 以及目标数值限定的取值范围随机生成,第三随机数取值范围可以为
Figure 136450DEST_PATH_IMAGE018
其中,第七计算公式可以为:
Figure 180629DEST_PATH_IMAGE019
, 其中,
Figure 48091DEST_PATH_IMAGE020
为第二解密信息,Dec为paillier算法的解密函数,sk为解密私钥,
Figure 881923DEST_PATH_IMAGE021
为第四子 密文,d1为第一签名私钥,k1为第一随机数,d2为第二签名私钥,k2为第二随机数;n为目标数 值,p2为第四随机数;第二随机数以及第四随机数均从零以及目标数值限定的取值范围随 机生成,第二随机数取值范围可以为
Figure 456124DEST_PATH_IMAGE022
,第四随机数取值范围可以为
Figure 733522DEST_PATH_IMAGE023
将第一签名端对第二签名端发送的乘法形式的第二密文进行解密,解密信息为加减法的形式,并且解密信息中包含第一签名私钥以及第二签名私钥,使得第一签名端对第二密文解密后也无法获得第二签名端的第二签名私钥,大大提高了私钥的安全性。
105:基于加密消息计算第一部分签名。
可选地,第一签名端还可以接收第二签名端发送的第二中间参数;第二中间参数由第二签名端利用第二随机数生成;
则该基于加密消息计算第一部分签名可以包括:利用第二中间参数以及第一随机数,计算第一签名值。
基于第一签名值、加密消息以及目标数值,按照第一计算公式计算获得第一部分签名。
其中,第一签名值具体可以按照公式:
Figure 557121DEST_PATH_IMAGE024
而计算获得;其中,
Figure 148640DEST_PATH_IMAGE025
为 第一签名值,且为
Figure 639664DEST_PATH_IMAGE026
结果的横分量,k1为第一随机数,R2为第二中间参数,
Figure 307537DEST_PATH_IMAGE027
Figure 884012DEST_PATH_IMAGE028
结果的纵分量。
其中,该第一计算公式可以为:
Figure 75958DEST_PATH_IMAGE029
,其中,r为第一部分签名,
Figure 359172DEST_PATH_IMAGE030
为第一签名值,e为加密消息,n为目标数值。
106:基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名。
其中,基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名可以包括:基于第一部分签名、第一解密信息、第二解密信息以及目标数值,按照第八计算公式进行计算获得第三子签名。
其中,第八计算公式可以为:
Figure 978372DEST_PATH_IMAGE031
,其中,s0为第三子签名,r为 第一部分签名,
Figure 22902DEST_PATH_IMAGE032
为第一解密信息,
Figure 18540DEST_PATH_IMAGE020
为第二解密信息,n为目标数值。
基于第一子签名、第三子签名、第一部分签名以及目标数值,按照第九计算公式进行计算获得第二部分签名。
其中,第九计算公式可以为:
Figure 952998DEST_PATH_IMAGE033
,其中,s为第二部分签名,s0 为第三子签名,r为第一部分签名,n为目标数值。
在实际应用中,由于在获得目标签名时,优先计算获得第一部分签名,且在计算第二部分签名时也会用到第一部分签名,所以若是第一部分签名计算出现错误,将会影响第二部分签名的计算,以及影响目标签名的生成。因此,在获得第一部分签名后,可以对第一部分签名进行验证,避免第一部分签名出现错误,影响签名其他部分的计算及生成,因此本方法还可以包括:
对第一部分签名进行验证;在第一部分签名验证失败的情况下,重新执行利用第一随机数,生成第一中间参数的操作。
其中,可以是在第一部分签名等于0时,认为第一部分签名验证失败,此时需要重新执行利用第一随机数,生成第一中间参数的操作。
则基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名可以是在第一部分签名验证成功情况下,基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名。
其中,可以是在第一部分签名不等于0时,则认为第一部分签名成功,此时将第二部分签名作为目标签名的一部分。
107:根据第一部分签名及第二部分签名,生成待签名消息的目标签名。
其中,该目标签名由第一部分签名以及第二部分签名这两部分组成,可以为(r,s)。
一些实施例中,在进行数字签名之前,还可以预先生成用于签名的签名私钥和用于验证的验证公钥等,因此,该方法还可以包括:
步骤A:生成第一签名私钥,并基于第一签名私钥生成第一公钥。
其中,具体可以按照公式:
Figure 946362DEST_PATH_IMAGE034
而生成第一公钥,其中,
Figure 497429DEST_PATH_IMAGE035
为第一公钥,
Figure 516331DEST_PATH_IMAGE036
为第一签名私钥,G为椭圆曲线参数。
步骤B:将第一公钥发送至第二签名端。
其中,第一公钥用于结合第二签名私钥,生成第二公钥,并基于第二公钥计算获得 验证公钥,生成第二公钥的具体公式可以为:
Figure 570875DEST_PATH_IMAGE037
,其中,
Figure 531878DEST_PATH_IMAGE038
为第二公钥,
Figure 39083DEST_PATH_IMAGE039
为 第二签名私钥,
Figure 314206DEST_PATH_IMAGE035
为第一公钥;生成验证公钥的具体公式可以为:
Figure 3682DEST_PATH_IMAGE040
,其中,
Figure 870007DEST_PATH_IMAGE041
为验证公钥,为第二公钥,
Figure 130087DEST_PATH_IMAGE042
为椭圆曲线参数。
步骤C:获取第二签名端发送的第二公钥。
步骤D:利用第二公钥计算获得验证公钥。
其中,验证公钥用于对目标签名进行验证。
步骤E:将目标签名发送至第二签名端。
在实际应用中,由于第一签名端获得第二部分签名后,需要将目标签名发送给第二签名端进行验证,所以若是第二部分签名的计算出现错误,则目标签名必定无法被第二签名端验证成功。因此,在获得第二部分签名后,可以对第二部分签名进行验证,避免第二部分签名出现错误,影响目标签名的验证,因此,一些实施例中,该方法还可以包括:
对所述第二部分签名进行验证;在所述第二部分签名验证失败的情况下,重新执行所述利用第一随机数,生成第一中间参数的操作。
其中,在第二部分签名等于0时,认为第二部分签名验证失败,此时需要重新执行所述利用第一随机数,生成第一中间参数的操作。
其中,所述将所述目标签名发送至第二签名端可以包括:在所述第二部分签名验证成功情况下,将所述目标签名发送至第二签名端。
其中,在第一部分签名不等于0时,则认为第二部分签名成功,此时将第二部分签名作为目标签名的一部分,并将目标签名发送至第二签名端。
在本申请实施例中,目标签名由第一签名端与第二签名端交互生成,提高了数字签名的安全性,并且在数字签名过程中,对第一签名私钥的加密,提高了第一签名私钥的安全性,且由于第一签名端将第二签名端发送的乘法形式的第二密文解密为加减法形式且包含第一签名私钥以及第二签名私钥的解密信息,使得第一签名端对第二密文解密后也无法获取第二签名端的第二签名私钥,避免了某一方私钥泄露时,就可伪造签名成功的问题。
如图2所示,本申请实施例提供的一种数字签名方法又一个实施例的流程图,本实施例的技术方案由第二签名端执行,第二签名端可以是服务器端,该方法可以包括以下几个步骤:
201:接收第一签名端发送的加密消息以及第一密文。
其中,加密消息将待签名消息进行加密获得;第一密文利用加密公钥对第一签名私钥进行加密获得。
202:利用加密公钥、第二签名私钥以及第一密文进行加密获得第二密文。
其中,第一密文可以包括第一子密文以及第二子密文;第二密文可以包括第三子密文以及第四子密文。
其中,利用加密公钥、第二签名私钥以及第一密文进行加密获得第二密文可以包括:
步骤A:基于第二签名私钥以及目标数值,按照第十计算公式计算获得第三明文。
其中,第十计算公式可以为:
Figure 943322DEST_PATH_IMAGE043
,其中,c为第三明文,d2为第二签名 私钥,n为目标数值。
步骤B:基于第三明文以及第一子密文,并按照第十一计算公式进行计算获得第一结果。
其中,第十一计算公式可以为:
Figure 972458DEST_PATH_IMAGE044
,其中,d为第一结果,c0为第一 子密文,
Figure 760417DEST_PATH_IMAGE045
为第三明文。
步骤C:基于第三随机数以及目标数值,按照第十二计算公式进行计算获得第三中间参数。
其中,第十二计算公式可以为:
Figure 507793DEST_PATH_IMAGE046
,其中,t0为第三中间参数,n为目标数 值,p1为第三随机数。
步骤D:基于第三中间参数以及加密公钥,按照第十三计算公式进行计算获得第二结果。
其中,第十三计算公式可以为:
Figure 921457DEST_PATH_IMAGE047
,其中,e为第二结果,Enc为 paillier算法的加密函数,pk为加密公钥,t0为第三中间参数。
步骤E:基于第一结果以及第二结果,按照第十四计算公式进行乘法计算获得第三子密文。
其中,第十四计算公式可以为:
Figure 805099DEST_PATH_IMAGE048
其中,
Figure 796582DEST_PATH_IMAGE017
为第三 子密文,
Figure 968938DEST_PATH_IMAGE049
为第一结果,
Figure 920713DEST_PATH_IMAGE050
为第二结果。
步骤F:基于第二签名私钥、第二随机数以及目标数值,按照第十五计算公式计算获得第四明文。
其中,第二随机数从零以及目标数值限定的取值范围随机生成;第十五计算公式 可以为:
Figure 190021DEST_PATH_IMAGE051
,其中,f为第四明文,d2为第二签名私钥,k2为第二随机数,n为 目标数值。
步骤G:基于第四明文以及第二子密文,按照第十六计算公式计算获得第三结果。
其中,第十六计算公式可以为:
Figure 569049DEST_PATH_IMAGE052
,其中,
Figure 228701DEST_PATH_IMAGE053
为第三结果,c1为 第二子密文,
Figure 734900DEST_PATH_IMAGE054
为第四明文。
步骤H:基于第四随机以及目标数值,按照第十七计算公式进行计算获得第四中间参数。
其中,第十七计算公式可以为:
Figure 858713DEST_PATH_IMAGE055
,其中,t1为第四中间参数,n为目标数 值,p 2为第四随机数。
步骤I:基于第四中间参数以及加密公钥,按照第十八计算公式进行计算获得第四结果。
其中,第十八计算公式可以为:
Figure 674223DEST_PATH_IMAGE056
,其中,h为第四结果,Enc为 paillier算法的加密函数,pk为加密公钥,t1为第四中间参数。
步骤J:基于第三结果以及第四结果,按照第十九计算公式进行乘法计算获得第四子密文。
其中,第十九计算公式可以为:
Figure 821170DEST_PATH_IMAGE057
其中,
Figure 380327DEST_PATH_IMAGE058
为第四 子密文,
Figure 342336DEST_PATH_IMAGE059
为第三结果,
Figure 328747DEST_PATH_IMAGE060
为第四结果。
由第二签名端生成的第二密文为乘法形式,在发送至第一签名端后,由第二签名端解密为加减法形式且包含第一签名私钥和第二签名私钥的解密信息,保证了第二签名端对第二密文解密后也不会得到第二签名端的第二私钥,保证了私钥的安全性。
203:基于加密消息计算获得第一子签名。
204:将第二密文以及第一子签名发送至第一签名端。
其中,第一签名端用以利用解密私钥从第二密文解密获得包含第一签名私钥及第二签名私钥的解密信息;基于加密消息计算第一部分签名;基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名;根据第一部分签名及第二部分签名,生成待签名消息的目标签名。
其中,为了确保发送的第二密文是有效的,所以将第二密文以及第一子签名发送至第一签名端之前,该方法还可以包括:
接收第一签名端发送的第一中间参数;
基于第一中间参数以及第二随机数,生成第二签名值;
基于第二签名值与加密消息,计算获得第二子签名;
在第二子签名验证成功的情况下发送第二密文。
其中,该第一中间参数用于配合第二随机数生成第二签名值。
其中,生成第二签名值的具体公式可以为:
Figure 759728DEST_PATH_IMAGE061
,其中,
Figure 856997DEST_PATH_IMAGE030
为第二签名 值,
Figure 627507DEST_PATH_IMAGE062
为第二随机数,
Figure 535551DEST_PATH_IMAGE005
为第一中间参数。
一些实施例中,该方法还可以包括:
对第二子签名进行验证;
在第二子签名验证失败的情况下,重新执行接收第一签名端发送的第一中间参数的操作。
其中,在第二子签名等于0时,认为第二子签名验证失败,此时需要重新执行接收第一签名端发送的第一中间参数的操作。
则基于加密消息计算获得第一子签名可以包括:
在第二子签名验证成功情况下,基于加密消息计算获得第一子签名。
其中,一些实施例中,基于加密消息计算获得第一子签名可以包括:
基于第二子签名、第三中间参数以及第四中间参数,按照第二十公式计算获得第一子签名。
其中,第二十计算公式可以为:
Figure 719408DEST_PATH_IMAGE063
,其中,s1为第一子签名,u 为第二子签名,t0为第三中间参数,t1为第四中间参数。
其中,一些实施例中,为了第一签名端计算第一签名值,该方法还可以包括:
利用第二随机数生成第二中间参数,发送第二中间参数至第一签名端。
其中,生成第二中间参数的具体公式可以为:
Figure 558051DEST_PATH_IMAGE064
,其中,
Figure 245384DEST_PATH_IMAGE065
为第二中间 参数,
Figure 573597DEST_PATH_IMAGE062
为第二随机数,
Figure 248946DEST_PATH_IMAGE006
为椭圆曲线参数。
一些实施例中,在进行数字签名之前,可以预先生成用于签名的签名私钥和用于验证的验证公钥等,该方法还可以包括:
接收第一签名端发送的第一公钥;
基于第一公钥与第二签名私钥,生成第二公钥,并将第二公钥发送至第一签名端;基于第二公钥计算获得验证公钥;
接收第一签名端发送的目标签名;对目标签名进行验证;验证成功后,从目标签名中解密获得待签名消息。
其中,生成第二公钥的具体公式可以为:
Figure 156859DEST_PATH_IMAGE066
,其中,
Figure 698699DEST_PATH_IMAGE067
为第二公钥,
Figure 197814DEST_PATH_IMAGE039
为第二签名私钥,
Figure 90683DEST_PATH_IMAGE035
为第一公钥。
其中,计算获得验证公钥的具体公式可以为:
Figure 271129DEST_PATH_IMAGE040
其中,
Figure 949366DEST_PATH_IMAGE041
为验证公钥,
Figure 822644DEST_PATH_IMAGE068
为第二公钥,
Figure 733968DEST_PATH_IMAGE006
为椭圆曲线参数。
在本申请实施例中,第二签名端通过向对第一签名端发送的第一密文进行加密得到乘法形式的第二密文,以供第一签名端将第二密文解密为加减法形式且包含第一签名私钥以及第二签名私钥的解密信息,使得第一签名端和第二签名端交互过程中也不会获得对方的签名私钥,大大提高了签名私钥的安全性,避免了一方泄露私钥,就会伪造签名成功的问题。
图3为本申请提供的一种数字签名装置一个实施例的结构图,该装置可以包括:
第一加密模块301:用于将待签名消息进行加密获得加密消息,并将加密消息发送至第二签名端。
第二加密模块302:用于利用加密公钥对第一签名私钥进行加密获得第一密文,并将第一密文发送至第二签名端。
密文获取模块303:用于获取第二签名端发送的第二密文及第一子签名;其中,第二密文利用加密公钥、第二签名私钥以及第一密文进行加密获得;第一子签名基于加密消息计算获得。
第一解密模块304:用于利用解密私钥从第二密文解密获得包含第一签名私钥及第二签名私钥的解密信息。
第一计算模块305:用于基于加密消息计算第一部分签名。
第二计算模块306:用于基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名。
签名生成模块307:用于根据第一部分签名及第二部分签名,生成待签名消息的目标签名。
在某些实施例中,该装置还可以包括:
第一接收模块:用于接收第二签名端发送的第二中间参数;其中,第二中间参数利用第二随机数生成。
第一计算模块可以具体是:利用第二中间参数以及第一随机数,计算第一签名值; 基于第一签名值、加密消息以及目标数值,按照第一计算公式计算获得第一部分签名;第一 计算公式可以为:
Figure 718105DEST_PATH_IMAGE029
,其中,r为第一部分签名,rx为第一签名值,e为加密 消息,n为目标数值。
在某些实施例中,该装置在第一加密模块之前还可以包括:
第一生成模块:用于利用第一随机数,生成第一中间参数。
第二发送模块:用于将第一中间参数发送至第二签名端;第一中间参数用以结合第二随机数,生成第二签名值;第二签名值用以结合加密消息,计算获得第二子签名;在第二子签名验证成功的情况下发送第二密文。
在某些实施例中,该装置还可以包括:
第一验证模块:用于对第一部分签名进行验证。
第一执行模块:在第一部分签名验证失败的情况下,重新执行利用第一随机数,生成第一中间参数的操作;
第二计算模块可以具体是:在第一部分签名验证成功情况下,基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名。
在某些实施例中,第一密文可以包括第一子密文以及第二子密文,第二加密模块 利用加密公钥对第一签名私钥进行加密获得第一密文可以具体是:基于第一签名私钥以及 目标数值,按照第二计算公式计算获得第一明文;第二计算公式可以为:
Figure 500116DEST_PATH_IMAGE008
, 其中,a为第一明文,d1为第一签名私钥,n为目标数值;基于第一签名私钥、第一随机数以及 目标数值,按照第三计算公式计算获得第二明文;第一随机数从零以及目标数值限定的取 值范围随机生成;第三计算公式可以为:
Figure 544295DEST_PATH_IMAGE069
,其中,b为第二明文,d1为第一 签名私钥,k1为第一随机数,n为目标数值;利用加密公钥并按照第四计算公式对第一明文 进行加密,计算获得第一子密文;第四计算公式可以为:
Figure 661025DEST_PATH_IMAGE070
,其中,c0 为第一子密文,Enc为paillier算法的加密函数,pk为加密公钥,
Figure 245590DEST_PATH_IMAGE071
为第一明文; 利用加密公钥并按照第五计算公式对第二明文进行加密,计算获得第二子密文;第五计算 公式可以为:得到
Figure 819791DEST_PATH_IMAGE072
,其中,c1为第二子密文,Enc为paillier算法 的加密函数,pk为加密公钥,k1为第一随机数,
Figure 97188DEST_PATH_IMAGE073
为第二明文。
在某些实施例中,解密信息可以包括第一解密信息以及第二解密信息;第二密文 可以包括第三子密文以及第四子密文;第三子密文可以利用第一结果以及第二结果进行加 密获得;第四子密文可以利用第三结果以及第四结果进行加密获得,第一解密模块可以具 体是:利用解密私钥并按照第六计算公式对第三子密文进行解密计算,获得第一解密信息; 第六计算公式可以为:
Figure 655209DEST_PATH_IMAGE074
,其中,
Figure 794197DEST_PATH_IMAGE016
为第一解 密信息,Dec为paillier算法的解密函数,sk为解密私钥,
Figure 19642DEST_PATH_IMAGE075
为第三子密文,d1为第一签名 私钥,d2为第二签名私钥,n为目标数值,p1为第三随机数;第三随机数从零以及目标数值限 定的取值范围随机生成;利用解密私钥并按照第七计算公式对第四子密文进行解密计算, 获得第二解密信息;第七计算公式可以为:
Figure 467941DEST_PATH_IMAGE076
,其中,
Figure 247678DEST_PATH_IMAGE077
为第二解密信息,Dec为 paillier算法的解密函数,sk为解密私钥,
Figure 174046DEST_PATH_IMAGE058
为第四子密文,d1为第一签名私钥,k1为第一 随机数,d2为第二签名私钥,k2为第二随机数;n为目标数值,p2为第四随机数;第二随机数以 及第四随机数均从零以及目标数值限定的取值范围随机生成。
在某些实施例中,第二计算模块可以具体是:基于第一部分签名、第一解密信息、 第二解密信息以及目标数值,按照第八计算公式进行计算获得第三子签名;第八计算公式 可以为:
Figure 771774DEST_PATH_IMAGE078
,其中,s0为第三子签名,r为第一部分签名,
Figure 390974DEST_PATH_IMAGE016
为第一解 密信息,
Figure 189166DEST_PATH_IMAGE079
为第二解密信息,n为目标数值;基于第一子签名、第三子签名、第一部分签名 以及目标数值,按照第九计算公式进行计算获得第二部分签名;第九计算公式可以为:
Figure 856907DEST_PATH_IMAGE080
,其中,s为第二部分签名,s0为第三子签名,r为第一部分签名,n为 目标数值。
在某些实施例中,该装置还可以包括:
第二生成模块:用于生成第一签名私钥,并基于第一签名私钥生成第一公钥。
第三发送模块:用于将第一公钥发送至第二签名端;第一公钥用于结合第二签名私钥,生成第二公钥,并基于第二公钥计算获得验证公钥。
第一获取模块:用于获取第二签名端发送的第二公钥。
第四计算模块:用于利用第二公钥计算获得验证公钥;验证公钥用于对目标签名进行验证。
第四发送模块:用于将目标签名发送至第二签名端。
在某些实施例中,该装置还可以包括:
第二验证模块:用于对第二部分签名进行验证。
第二执行模块:用于在第二部分签名验证失败的情况下,重新执行利用第一随机数,生成第一中间参数的操作。
第四发送模块可以具体是:在第二部分签名验证成功情况下,将目标签名发送至第二签名端。
图3所述的数字签名装置可以执行图1所示实施例所述的数字签名方法,其实现原理和技术效果不再赘述。对于上述实施例中的数字签名装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4为本申请提供的一种数字签名装置又一个实施例的结构图,该装置可以包括:
密文接收模块401:接收第一签名端发送的加密消息以及第一密文;其中,加密消息将待签名消息进行加密获得;第一密文利用加密公钥对第一签名私钥进行加密获得。
第三加密模块402:利用加密公钥、第二签名私钥以及第一密文进行加密获得第二密文。
第三计算模块403:基于加密消息计算获得第一子签名。
第一发送模块404:将第二密文以及第一子签名发送至第一签名端。第一签名端用以利用解密私钥从第二密文解密获得包含第一签名私钥及第二签名私钥的解密信息;基于加密消息计算第一部分签名;基于第一部分签名、第一子签名及解密信息,计算获得第二部分签名;根据第一部分签名及第二部分签名,生成待签名消息的目标签名。
在某些实施例中,第一密文可以包括第一子密文以及第二子密文;第二密文可以 包括第三子密文以及第四子密文,第三加密模块可以具体是:基于第二签名私钥以及目标 数值,按照第十计算公式计算获得第三明文;第十计算公式可以为:
Figure 56945DEST_PATH_IMAGE043
,其 中,c为第三明文,d2为第二签名私钥,n为目标数值;基于第三明文以及第一子密文,并按照 第十一计算公式进行计算获得第一结果;第十一计算公式可以为:
Figure 863358DEST_PATH_IMAGE081
,其 中,d为第一结果,c0为第一子密文,
Figure 883266DEST_PATH_IMAGE082
为第三明文;基于第三随机数以及目标数 值,按照第十二计算公式进行计算获得第三中间参数;第十二计算公式可以为:
Figure 620278DEST_PATH_IMAGE083
,其中,t0为第三中间参数,n为目标数值,p1为第三随机数;基于第三中间参数 以及加密公钥,按照第十三计算公式进行计算获得第二结果;第十三计算公式可以为:
Figure 674822DEST_PATH_IMAGE084
,其中,e为第二结果,Enc为paillier算法的加密函数,pk为加密公钥,t0为 第三中间参数;基于第一结果以及第二结果,按照第十四计算公式进行乘法计算获得第三 子密文;第十四计算公式可以为:
Figure 370245DEST_PATH_IMAGE085
其中,
Figure 657876DEST_PATH_IMAGE075
为第三子密 文,
Figure 933000DEST_PATH_IMAGE086
为第一结果,
Figure 842050DEST_PATH_IMAGE050
为第二结果;基于第二签名私钥、第二随机数以 及目标数值,按照第十五计算公式计算获得第四明文;第二随机数从零以及目标数值限定 的取值范围随机生成;第十五计算公式可以为:
Figure 239533DEST_PATH_IMAGE051
,其中,f为第四明文,d2 为第二签名私钥,k2为第二随机数,n为目标数值;基于第四明文以及第二子密文,按照第十 六计算公式计算获得第三结果;第十六计算公式可以为:
Figure 437296DEST_PATH_IMAGE087
,其中,
Figure 312848DEST_PATH_IMAGE053
为 第三结果,c1为第二子密文,
Figure 92717DEST_PATH_IMAGE088
为第四明文;基于第四随机数以及目标数值,按 照第十七计算公式进行计算获得第四中间参数;第十七计算公式可以为:
Figure 395522DEST_PATH_IMAGE089
,其 中,t1为第四中间参数,n为目标数值,p2为第四随机数;基于第四中间参数以及加密公钥,按 照第十八计算公式进行计算获得第四结果;第十八计算公式可以为:
Figure 346160DEST_PATH_IMAGE090
,其 中,h为第四结果,Enc为paillier算法的加密函数,pk为加密公钥,t1为第四中间参数;基于 第三结果以及第四结果,按照第十九计算公式进行乘法计算获得第四子密文;第十九计算 公式可以为:
Figure 759824DEST_PATH_IMAGE091
其中,
Figure 909046DEST_PATH_IMAGE058
为第四子密文,
Figure 320436DEST_PATH_IMAGE059
为第三结果,
Figure 535867DEST_PATH_IMAGE092
为第四结果。
在某些实施例中,该装置还可以包括:
第三生成模块:用于利用第二随机数生成第二中间参数,发送第二中间参数至第一签名端,以供第一签名端利用第二中间参数以及第一随机数,计算第一签名值。
在某些实施例中,在第一发送模块之前该装置还可以包括:
第二接收模块:用于接收第一签名端发送的第一中间参数。
第四生成模块:用于基于第一中间参数以及第二随机数,生成第二签名值;
第五计算模块:用于基于第二签名值与加密消息,计算获得第二子签名;在第二子签名验证成功的情况下发送第二密文。
在某些实施例中,该装置还可以包括:
第三验证模块:用于对所述第二子签名进行验证;
第三执行模块:用于在第二子签名验证失败的情况下,重新执行接收第一签名端发送的第一中间参数的操作;
第三计算模块可以具体是:在第一子签名验证成功情况下,基于加密消息计算获得第一子签名。
在某些实施例中,第三计算模块可以具体是:基于第二子签名、第三中间参数以及 第四中间参数,按照第二十公式计算获得第一子签名;第二十计算公式可以为:
Figure 18800DEST_PATH_IMAGE093
,其中,s1为第一子签名,u为第二子签名,t0为第三中间参数,t1为第 四中间参数。
在某些实施例中,该装置还可以包括:
第三接收模块:用于接收第一签名端发送的第一公钥。
第五生成模块:用于基于第一公钥与第二签名私钥,生成第二公钥,并将第二公钥发送至第一签名端。
第六计算模块:用于基于第二公钥计算获得验证公钥。
第四接收模块:用于接收第一签名端发送的目标签名。
第四验证模块:用于对目标签名进行验证。
消息获得模块:用于验证成功后,从目标签名中解密获得待签名消息。
图4所述的数字签名装置可以执行图2所示实施例所述的数字签名方法,其实现原理和技术效果不再赘述。对于上述实施例中的数字签名装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图3所示实施例的数字签名装置可以实现为计算设备,如图5所示,该计算设备可以包括存储组件501以及处理组件502;
所述存储组件存储一个或多个计算机指令,其中,所述一个或多个计算机指令供所述处理组件调用执行,以实现如图1所示实施例所述的数字签名方法。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
该计算设备可以为物理设备或者云计算平台提供的弹性计算主机等,此时计算设备即可以是指云服务器,上述处理组件、存储组件等可以是从云计算平台租用或购买的基础服务器资源。
处理组件可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制端、微控制端、微处理器或其他电子元件实现,用于执行上述方法。
存储组件被配置为存储各种类型的数据以支持在设备中的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在一个可能的设计中,图4所示实施例的数字签名装置可以实现为计算设备,如图6所示,该计算设备可以包括存储组件601以及处理组件602;
所述存储组件存储一个或多个计算机指令,其中,所述一个或多个计算机指令供所述处理组件调用执行,以实现如图2所示实施例所述的数字签名方法。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
该计算设备可以为物理设备或者云计算平台提供的弹性计算主机等,此时计算设备即可以是指云服务器,上述处理组件、存储组件等可以是从云计算平台租用或购买的基础服务器资源。
处理组件可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制端、微控制端、微处理器或其他电子元件实现,用于执行上述方法。
存储组件被配置为存储各种类型的数据以支持在设备中的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图1所示实施例的数字签名方法。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图2所示实施例的数字签名方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (17)

1.一种数字签名方法,其特征在于,包括:
将待签名消息进行加密获得加密消息,并将所述加密消息发送至第二签名端;
利用加密公钥对第一签名私钥进行加密获得第一密文,并将所述第一密文发送至所述第二签名端;
获取所述第二签名端发送的第二密文及第一子签名;其中,所述第二密文利用所述加密公钥、第二签名私钥以及所述第一密文进行加密获得;所述第一子签名基于所述加密消息计算获得;
利用解密私钥从所述第二密文解密获得包含所述第一签名私钥及所述第二签名私钥的解密信息;
基于所述加密消息计算第一部分签名;
基于所述第一部分签名、所述第一子签名及所述解密信息,计算获得第二部分签名;
根据所述第一部分签名及所述第二部分签名,生成所述待签名消息的目标签名。
2.根据权利要求1所述的方法,其特征在于,还包括:
接收所述第二签名端发送的第二中间参数;所述第二中间参数利用第二随机数生成;
所述基于所述加密消息计算第一部分签名包括:
利用所述第二中间参数以及第一随机数,计算第一签名值;
基于所述第一签名值、所述加密消息以及目标数值,按照第一计算公式计算获得第一部分签名;所述第一计算公式为:
Figure 335537DEST_PATH_IMAGE001
,其中,r为所述第一部分签名,rx为所述第一签名值,e为所述加密消息,n为目标数值。
3.根据权利要求1所述的方法,其特征在于,将待签名消息进行加密获得加密消息,并将加密消息发送至第二签名端之前,所述方法还包括:
利用第一随机数,生成第一中间参数;
将所述第一中间参数发送至第二签名端;所述第一中间参数用以结合第二随机数,生成第二签名值;所述第二签名值用以结合所述加密消息,计算获得第二子签名;在所述第二子签名验证成功的情况下发送所述第二密文。
4.根据权利要求3所述的方法,其特征在于,还包括:
对所述第一部分签名进行验证;
在所述第一部分签名验证失败的情况下,重新执行所述利用第一随机数,生成第一中间参数的操作;
所述基于第一部分签名、所述第一子签名及所述解密信息,计算获得第二部分签名包括:
在所述第一部分签名验证成功情况下,基于第一部分签名、所述第一子签名及所述解密信息,计算获得第二部分签名。
5.根据权利要求3所述的方法,其特征在于,所述第一密文包括第一子密文以及第二子密文;所述利用加密公钥对第一签名私钥进行加密获得第一密文包括:
基于第一签名私钥以及目标数值,按照第二计算公式计算获得第一明文;所述第二计算公式为:
Figure 783836DEST_PATH_IMAGE002
,其中,a为所述第一明文,d1为所述第一签名私钥,n为所述目标数值;
基于第一签名私钥、第一随机数以及所述目标数值,按照第三计算公式计算获得第二明文;所述第一随机数从零以及所述目标数值限定的取值范围随机生成;所述第三计算公式为:
Figure 829152DEST_PATH_IMAGE003
,其中,b为所述第二明文,d1为所述第一签名私钥,k1为所述第一随机数,n为所述目标数值;
利用所述加密公钥并按照第四计算公式对所述第一明文进行加密,计算获得第一子密文;所述第四计算公式为:
Figure 1858DEST_PATH_IMAGE004
,其中,c0为所述第一子密文,Enc为paillier算法的加密函数,pk为所述加密公钥,
Figure 612968DEST_PATH_IMAGE005
为所述第一明文;
利用所述加密公钥并按照第五计算公式对第二明文进行加密,计算获得第二子密文;所述第五计算公式为:得到
Figure 966589DEST_PATH_IMAGE006
,其中,c1为所述第二子密文,Enc为paillier算法的加密函数,pk为所述加密公钥,k1为所述第一随机数,
Figure 968043DEST_PATH_IMAGE007
为所述第二明文。
6.根据权利要求5所述的方法,其特征在于,所述解密信息包括第一解密信息以及第二解密信息;所述第二密文包括第三子密文以及第四子密文;所述第三子密文利用第一结果以及第二结果进行加密获得;所述第四子密文利用第三结果以及第四结果进行加密获得;所述利用解密私钥从第二密文解密获得包含所述第一签名私钥及所述第二签名私钥的解密信息包括:
利用所述解密私钥并按照第六计算公式对所述第三子密文进行解密计算,获得第一解密信息;所述第六计算公式为:
Figure 245572DEST_PATH_IMAGE008
,其中,
Figure 648871DEST_PATH_IMAGE009
为所述第一解密信息,Dec为paillier算法的解密函数,sk为所述解密私钥,
Figure 438973DEST_PATH_IMAGE010
为所述第三子密文,d1为所述第一签名私钥,d2为所述第二签名私钥,n为所述目标数值,p1为第三随机数;所述第三随机数从零以及所述目标数值限定的取值范围随机生成;
利用所述解密私钥并按照第七计算公式对所述第四子密文进行解密计算,获得第二解密信息;所述第七计算公式为:
Figure 724460DEST_PATH_IMAGE011
,其中,
Figure 195893DEST_PATH_IMAGE012
为所述第二解密信息,Dec为paillier算法的解密函数,sk为所述解密私钥,
Figure 250437DEST_PATH_IMAGE013
为所述第四子密文,d1为所述第一签名私钥,k1为所述第一随机数,d2为所述第二签名私钥,k2为第二随机数;n为所述目标数值,p2为第四随机数;所述第二随机数以及所述第四随机数均从零以及所述目标数值限定的取值范围随机生成。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第一部分签名、所述第一子签名及所述解密信息,计算获得第二部分签名包括:
基于所述第一部分签名、所述第一解密信息、所述第二解密信息以及所述目标数值,按照第八计算公式进行计算获得第三子签名;所述第八计算公式为:
Figure 460707DEST_PATH_IMAGE014
,其中,s0为所述第三子签名,r为所述第一部分签名,
Figure 499070DEST_PATH_IMAGE009
为所述第一解密信息,
Figure 508615DEST_PATH_IMAGE012
为所述第二解密信息,n为所述目标数值;基于所述第一子签名、所述第三子签名、所述第一部分签名以及所述目标数值,按照第九计算公式进行计算获得第二部分签名;所述第九计算公式为:
Figure 683244DEST_PATH_IMAGE015
,其中,s为所述第二部分签名,s0为所述第三子签名,r为所述第一部分签名,n为所述目标数值;
Figure 815148DEST_PATH_IMAGE016
为所述第一子签名。
8.根据权利要求1所述的方法,其特征在于,还包括:
生成第一签名私钥,并基于所述第一签名私钥生成第一公钥;
将所述第一公钥发送至所述第二签名端;所述第一公钥用于结合所述第二签名私钥,生成第二公钥,并基于所述第二公钥计算获得验证公钥;
获取所述第二签名端发送的所述第二公钥;
利用所述第二公钥计算获得验证公钥;所述验证公钥用于对所述目标签名进行验证;
将所述目标签名发送至所述第二签名端。
9.根据权利要求8所述的方法,其特征在于,还包括:
对所述第二部分签名进行验证;
在所述第二部分签名验证失败的情况下,重新执行所述利用第一随机数,生成第一中间参数的操作;
所述将所述目标签名发送至所述第二签名端包括:
在所述第二部分签名验证成功情况下,将所述目标签名发送至所述第二签名端。
10.一种数字签名方法,其特征在于,包括:
接收第一签名端发送的加密消息以及第一密文;其中,所述加密消息将待签名消息进行加密获得;所述第一密文利用加密公钥对第一签名私钥进行加密获得;
利用所述加密公钥、第二签名私钥以及所述第一密文进行加密获得第二密文;
基于加密消息计算获得第一子签名;
将所述第二密文以及所述第一子签名发送至第一签名端;所述第一签名端用以利用解密私钥从第二密文解密获得包含所述第一签名私钥及所述第二签名私钥的解密信息;基于所述加密消息计算第一部分签名;基于第一部分签名、所述第一子签名及所述解密信息,计算获得第二部分签名;根据第一部分签名及第二部分签名,生成所述待签名消息的目标签名;
从所述第一签名端接收所述目标签名。
11.根据权利要求10所述的方法,其特征在于,所述第一密文包括第一子密文以及第二子密文;所述第二密文包括第三子密文以及第四子密文;所述利用所述加密公钥、第二签名私钥以及所述第一密文进行加密获得第二密文包括:
基于第二签名私钥以及目标数值,按照第十计算公式计算获得第三明文;所述第十计算公式为:
Figure 825960DEST_PATH_IMAGE017
,其中,c为所述第三明文,d2为所述第二签名私钥,n为所述目标数值;
基于所述第三明文以及所述第一子密文,并按照第十一计算公式进行计算获得第一结果;所述第十一计算公式为:
Figure 639196DEST_PATH_IMAGE018
,其中,d为所述第一结果,c0为所述第一子密文,
Figure 668332DEST_PATH_IMAGE019
为所述第三明文;
基于第三随机数以及所述目标数值,按照第十二计算公式进行计算获得第三中间参数;所述第十二计算公式为:
Figure 971137DEST_PATH_IMAGE020
,其中,t0为所述第三中间参数,n为所述目标数值,p1为所述第三随机数;
基于所述第三中间参数以及所述加密公钥,按照第十三计算公式进行计算获得第二结果;所述第十三计算公式为:
Figure 718513DEST_PATH_IMAGE021
,其中,e为所述第二结果,Enc为paillier算法的加密函数,pk为所述加密公钥,t0为所述第三中间参数;
基于所述第一结果以及所述第二结果,按照第十四计算公式进行乘法计算获得第三子密文;所述第十四计算公式为:
Figure 118795DEST_PATH_IMAGE022
其中,
Figure 2437DEST_PATH_IMAGE023
为第三子密文,
Figure 741723DEST_PATH_IMAGE024
为所述第一结果,
Figure 710816DEST_PATH_IMAGE025
为所述第二结果;
基于第二签名私钥、第二随机数以及所述目标数值,按照第十五计算公式计算获得第四明文;所述第二随机数从零以及目标数值限定的取值范围随机生成;所述第十五计算公式为:
Figure 865854DEST_PATH_IMAGE026
,其中,f为所述第四明文,d2为所述第二签名私钥,k2为所述第二随机数,n为所述目标数值;
基于所述第四明文以及所述第二子密文,按照第十六计算公式计算获得第三结果;所述第十六计算公式为:
Figure 620315DEST_PATH_IMAGE027
,其中,
Figure 530502DEST_PATH_IMAGE028
为所述第三结果,c1为所述第二子密文,
Figure 986891DEST_PATH_IMAGE029
为所述第四明文;
基于第四随机数以及所述目标数值,按照第十七计算公式进行计算获得第四中间参数;所述第十七计算公式为:
Figure 945620DEST_PATH_IMAGE030
,其中,t1为所述第四中间参数,n为所述目标数值,p2为所述第四随机数;
基于所述第四中间参数以及所述加密公钥,按照第十八计算公式进行计算获得第四结果;所述第十八计算公式为:
Figure 803854DEST_PATH_IMAGE031
,其中,h为所述第四结果,Enc为paillier算法的加密函数,pk为所述加密公钥,t1为所述第四中间参数;
基于所述第三结果以及所述第四结果,按照第十九计算公式进行乘法计算获得第四子密文;所述第十九计算公式为:
Figure 868631DEST_PATH_IMAGE032
其中,
Figure 812316DEST_PATH_IMAGE013
为所述第四子密文,
Figure 574736DEST_PATH_IMAGE033
为所述第三结果,
Figure 553056DEST_PATH_IMAGE034
为所述第四结果。
12.根据权利要求10所述的方法,其特征在于,还包括:
利用第二随机数生成第二中间参数,发送所述第二中间参数至所述第一签名端,以供所述第一签名端利用所述第二中间参数以及第一随机数,计算第一签名值。
13.根据权利要求10所述的方法,其特征在于,将所述第二密文以及所述第一子签名发送至第一签名端之前,所述方法还包括:
接收所述第一签名端发送的第一中间参数;
基于所述第一中间参数以及第二随机数,生成第二签名值;
基于所述第二签名值与所述加密消息,计算获得第二子签名;在所述第二子签名验证成功的情况下发送所述第二密文。
14.根据权利要求13所述的方法,其特征在于,还包括:
对所述第二子签名进行验证;
在所述第二子签名验证失败的情况下,重新执行所述接收所述第一签名端发送的第一中间参数的操作;
所述基于加密消息计算获得第一子签名包括:
在所述第一子签名验证成功情况下,基于加密消息计算获得第一子签名。
15.根据权利要求14所述的方法,其特征在于,所述基于加密消息计算获得第一子签名包括:
基于所述第二子签名、第三中间参数以及第四中间参数,按照第二十计算 公式计算获得所述第一子签名;所述第二十计算公式为:
Figure 273888DEST_PATH_IMAGE035
,其中,s1为第一子签名,u为所述第二子签名,t0为所述第三中间参数,t1为所述第四中间参数。
16.根据权利要求10所述的方法,其特征在于,还包括:
接收所述第一签名端发送的第一公钥;
基于所述第一公钥与所述第二签名私钥,生成第二公钥,并将所述第二公钥发送至所述第一签名端;
基于所述第二公钥计算获得验证公钥;
接收所述第一签名端发送的目标签名;
对所述目标签名进行验证;
验证成功后,从所述目标签名中解密获得所述待签名消息。
17.一种计算设备,其特征在于,包括:处理组件以及存储组件;所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,实现如权利要求1~9任一项所述的数字签名方法或者实现如权利要求10~16任一项所述的数字签名方法。
CN202211049613.5A 2022-08-30 2022-08-30 数字签名方法及计算设备 Active CN115134093B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211049613.5A CN115134093B (zh) 2022-08-30 2022-08-30 数字签名方法及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211049613.5A CN115134093B (zh) 2022-08-30 2022-08-30 数字签名方法及计算设备

Publications (2)

Publication Number Publication Date
CN115134093A CN115134093A (zh) 2022-09-30
CN115134093B true CN115134093B (zh) 2022-11-15

Family

ID=83387535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211049613.5A Active CN115134093B (zh) 2022-08-30 2022-08-30 数字签名方法及计算设备

Country Status (1)

Country Link
CN (1) CN115134093B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统
CN107579819A (zh) * 2017-09-13 2018-01-12 何德彪 一种sm9数字签名生成方法及系统
CN108989047A (zh) * 2018-07-19 2018-12-11 郑州信大捷安信息技术股份有限公司 一种基于sm2算法的通信双方协同签名方法与系统
CN109450640A (zh) * 2018-10-24 2019-03-08 成都卫士通信息产业股份有限公司 基于sm2的两方签名方法及系统
CN111130787A (zh) * 2020-03-26 2020-05-08 北京信安世纪科技股份有限公司 数字签名方法、设备和存储介质
CN111314089A (zh) * 2020-02-18 2020-06-19 数据通信科学技术研究所 一种基于sm2的两方协同签名方法及解密方法
CN111565108A (zh) * 2020-07-15 2020-08-21 北京信安世纪科技股份有限公司 签名处理方法、装置及系统
CN111582867A (zh) * 2020-05-11 2020-08-25 浙江同花顺智能科技有限公司 一种协同签名和解密方法、装置、电子设备和存储介质
CN112436938A (zh) * 2020-12-04 2021-03-02 矩阵元技术(深圳)有限公司 数字签名的生成方法、装置和服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11438152B2 (en) * 2020-01-31 2022-09-06 Visa International Service Association Distributed symmetric encryption

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统
CN107579819A (zh) * 2017-09-13 2018-01-12 何德彪 一种sm9数字签名生成方法及系统
CN108989047A (zh) * 2018-07-19 2018-12-11 郑州信大捷安信息技术股份有限公司 一种基于sm2算法的通信双方协同签名方法与系统
CN109450640A (zh) * 2018-10-24 2019-03-08 成都卫士通信息产业股份有限公司 基于sm2的两方签名方法及系统
CN111314089A (zh) * 2020-02-18 2020-06-19 数据通信科学技术研究所 一种基于sm2的两方协同签名方法及解密方法
CN111130787A (zh) * 2020-03-26 2020-05-08 北京信安世纪科技股份有限公司 数字签名方法、设备和存储介质
CN111582867A (zh) * 2020-05-11 2020-08-25 浙江同花顺智能科技有限公司 一种协同签名和解密方法、装置、电子设备和存储介质
CN111565108A (zh) * 2020-07-15 2020-08-21 北京信安世纪科技股份有限公司 签名处理方法、装置及系统
CN112436938A (zh) * 2020-12-04 2021-03-02 矩阵元技术(深圳)有限公司 数字签名的生成方法、装置和服务器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Secure And High Concurrency SM2 Cooperative Signature Algorithm For Mobile Network;Wenfei Qian等;《2021 17th International Conference on Mobility, Sensing and Networking (MSN)》;20220413;全文 *
基于复合问题的有序多重签名算法;陈燕予;《阜阳师范学院学报(自然科学版)》;20090331;第26卷(第01期);全文 *

Also Published As

Publication number Publication date
CN115134093A (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
EP3195521B1 (en) Methods for secure cryptogram generation
US11374975B2 (en) TLS integration of post quantum cryptographic algorithms
CN110213044B (zh) 基于多个非对称密钥池的抗量子计算https签密通信方法和系统
CN110401615B (zh) 一种身份认证方法、装置、设备、系统及可读存储介质
Mann et al. Two-factor authentication for the Bitcoin protocol
US10880100B2 (en) Apparatus and method for certificate enrollment
US11463242B2 (en) Padding oracle elimination in RSA encryption
CN111107066A (zh) 敏感数据的传输方法和系统、电子设备、存储介质
CN109547209B (zh) 一种两方sm2数字签名生成方法
US20150288527A1 (en) Verifiable Implicit Certificates
EP3496331A1 (en) Two-party signature device and method
CN110224834A (zh) 基于动态令牌的身份认证方法、解密及加密终端
CN108985102A (zh) 数据完整性验证方法、装置、系统及存储介质
WO2017006118A1 (en) Secure distributed encryption system and method
CN111404892B (zh) 数据监管方法、装置和服务器
Jayaraman et al. Decentralized certificate authorities
CN114257366B (zh) 信息同态处理方法、装置、设备及计算机可读存储介质
CN115276978A (zh) 一种数据处理方法以及相关装置
CN111565108B (zh) 签名处理方法、装置及系统
CN111245594B (zh) 一种基于同态运算的协同签名方法及系统
CN115134093B (zh) 数字签名方法及计算设备
CN111949996A (zh) 安全私钥的生成方法、加密方法、系统、设备及介质
CN113592484B (zh) 一种账户的开立方法、系统及装置
CN109450625B (zh) 大规模多项式扩展欧几里得算法的安全外包方法
CN112925535A (zh) 一种密码芯片嵌入式应用安装方法及装置

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