CN110958115B - 基于sm9白盒的数字签名装置、方法、存储介质及设备 - Google Patents
基于sm9白盒的数字签名装置、方法、存储介质及设备 Download PDFInfo
- Publication number
- CN110958115B CN110958115B CN201911222942.3A CN201911222942A CN110958115B CN 110958115 B CN110958115 B CN 110958115B CN 201911222942 A CN201911222942 A CN 201911222942A CN 110958115 B CN110958115 B CN 110958115B
- Authority
- CN
- China
- Prior art keywords
- component
- sub
- lookup table
- random number
- result
- 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
Links
Images
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/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
-
- 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
-
- 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/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
Abstract
本申请公开了一种基于SM9白盒的数字签名装置、方法、存储介质及设备,包括:随机数生成器生成随机数r’;乘法计算器利用随机数向量和随机数r’进行乘法运算;消息处理器对乘法结果和待签名消息进行拼接,根据SM9签名算法规范进行杂凑运算得到h分量;第一计算模块利用随机数r’计算第一s子分量;第二计算模块利用h分量计算第二s子分量;第三计算模块利用随机数r’和h分量计算第三s子分量和第四s子分量;第四计算模块利用第一s子分量、第二s子分量、第三s子分量和第四s子分量确定出S′;第五计算模块利用预设参数d′,计算[S′]d′以得到S分量。本申请能够有效地保证SM9签名算法在不可信终端上运行时的签名私钥的安全性。
Description
技术领域
本发明涉及数字签名技术方案,特别涉及一种基于SM9白盒的数字签名装置、方法、存储介质及设备。
背景技术
随着网络和智能终端的发展,许多隐私数据或版权数据在终端上被读取并处理。攻击者或者恶意用户可以在终端上监控密码模块的运行,然后通过逆向工程、获取密码算法的中间计算结果等方式来破解出密码算法的密钥。例如,当使用SM9签名算法进行数字签名时,如果此时运行上述SM9签名算法的终端不可信,那么上述SM9签名算法在运行过程中所采用的签名私钥将会面临泄漏的风险。
为此,如何保证SM9签名算法在不可信终端上运行时的签名私钥的安全性是目前有待解决的。
发明内容
有鉴于此,本发明的目的在于提供一种基于SM9白盒的数字签名装置、方法、存储介质及设备,能够有效地保证SM9签名算法在不可信终端上运行时的签名私钥的安全性。其具体方案如下:
第一方面,本申请提供了一种基于SM9白盒的数字签名装置,包括随机数生成器、乘法计算器、消息处理器、第一计算模块、第二计算模块、第三计算模块、第四计算模块和第五计算模块;其中,
所述随机数生成器,用于生成随机数r’,并将所述随机数r’传送至所述乘法计算器、所述第一计算模块和所述第三计算模块;
所述乘法计算器,用于利用自身内部的随机数向量和所述随机数r’进行乘法运算,得到相应的乘法结果,并将所述乘法结果传送至所述消息处理器;
所述消息处理器,用于获取待签名消息,对所述乘法结果和所述待签名消息进行拼接以得到相应的拼接结果,并根据SM9签名算法规范进行杂凑运算以得到签名结果中的h分量,然后将所述h分量传送至所述第二计算模块和所述第三计算模块;
所述第一计算模块,用于利用所述随机数r’,计算出所述签名结果中的第一s子分量,并将所述第一s子分量传送至所述第四计算模块;
所述第二计算模块,用于利用所述h分量,计算出所述签名结果中的第二s子分量,并将所述第二s子分量传送至所述第四计算模块;
所述第三计算模块,用于利用所述随机数r’和所述h分量,计算出所述签名结果中的第三s子分量和第四s子分量,并将所述第三s子分量和所述第四s子分量传送至所述第四计算模块;
所述第四计算模块,用于利用所述第一s子分量、所述第二s子分量、所述第三s子分量和所述第四s子分量,确定出S′;
所述第五计算模块,用于利用预设参数d′,计算[S′]d′以得到所述签名结果中的S分量。
可选的,所述第一计算模块的内部设有第一向量和第一查找表,具体用于利用所述随机数r’、所述第一向量和所述第一查找表计算出所述签名结果中的第一s子分量。
可选的,所述第二计算模块的内部设有第二向量和第二查找表,具体用于利用所述h分量、所述第二向量和所述第二查找表计算出所述签名结果的第二s子分量。
可选的,所述第三计算模块的内部设有第三查找表,具体用于利用所述随机数r’、所述h分量和所述第三查找表,计算出所述签名结果中的第三s子分量和所述第四s子分量。
可选的,所述第四计算模块的内部设有第四查找表、第五查找表和第六查找表,具体用于利用所述第一s子分量、所述第三s子分量和所述第四查找表计算得到第一临时结果,利用所述第二s子分量、所述第四s子分量和所述第五查找表计算得到第二临时结果,然后利用所述第一临时结果、所述第二临时结果和所述第六查找表计算得到所述S′。
可选的,所述数字签名装置,还包括初始化模块;其中,所述初始化模块,包括:
秘密参数生成单元,用于随机生成秘密参数;
第一生成单元,用于利用所述秘密参数生成所述乘法计算器的所述随机数向量;
第二生成单元,用于生成所述第一计算模块内部的所述第一向量和所述第一查找表;
第三生成单元,用于生成所述第二计算模块内部的所述第二向量和所述第二查找表;
第四生成单元,用于生成所述第三计算模块内部的所述第三查找表;
第五生成单元,用于生成所述第四计算模块内部的所述第四查找表、所述第五查找表和所述第六查找表;
信息整理单元,用于保存所述随机数向量、所述第一向量、所述第二向量、所述第一查找表、所述第二查找表、所述第三查找表、所述第四查找表、所述第五查找表和第六查找表,并删除其他信息,以完成初始化操作。
可选的,所述第一生成单元具体用于根据随机数空间的实际需求量生成所述随机数向量。
第二方面,本申请提供了一种基于SM9白盒的数字签名方法,包括:
通过随机数生成器生成随机数r’;
通过乘法计算器利用自身内部的随机数向量和所述随机数r’进行乘法运算,得到相应的乘法结果;
通过消息处理器获取待签名消息,对所述乘法结果和所述待签名消息进行拼接以得到相应的拼接结果,并根据SM9签名算法规范进行杂凑运算以得到签名结果中的h分量;
通过第一计算模块利用所述随机数r’,计算出所述签名结果中的第一s子分量;
通过第二计算模块利用所述h分量,计算出所述签名结果中的第二s子分量;
通过第三计算模块利用所述随机数r’和所述h分量,计算出所述签名结果中的第三s子分量和第四s子分量;
通过第四计算模块利用所述第一s子分量、所述第二s子分量、所述第三s子分量和所述第四s子分量,确定出S′;
通过第五计算模块利用预设参数d′,计算[S′]d′以得到所述签名结果中的S分量。
第三方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述基于SM9白盒的数字签名方法的步骤。
第四方面,本申请提供了一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现前述基于SM9白盒的数字签名方法的步骤。
可见,本申请在进行SM9数字签名时,分别生成了签名结果中的h分量和S分量。其中,在生成上述h分量和S分量的过程中并没有出现明文形式的签名密钥,并且,本申请中,上述签名结果的S分量被划分成四个子分量来分别进行计算,每个子分量均可以得到编码保护,因此,本申请通过上述方案,能够有效地保证了SM9签名私钥的安全性,即便是在不可信终端上进行上述SM9数字签名过程,也能够有效防止外界破解签名密钥的事件发生。与此同时,本申请中的上述技术方案,还具体以下效果:能够适合在单一终端上独立完成SM9签名过程,无需由多个终端联合起来才能够完成运算过程,从而拓宽了应用场景,并且本申请的技术方案具有标准的签名结果,对应的验签过程与SM9标准算法的验签过程相同,可用于直接替换现有的SM9签名算法。而且,从实际的运行效果来看,本方案所需的存储空间较低、运行效率较高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种基于SM9白盒的数字签名装置结构示意图;
图2为本申请公开的一种具体的基于SM9白盒的数字签名装置结构示意图;
图3为本申请公开的第三查找表的信息输入输出示意图;
图4为本申请公开的一种基于SM9白盒的数字签名方法流程图;
图5为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,随着网络和智能终端的发展,许多隐私数据或版权数据在终端上被读取并处理。攻击者或者恶意用户可以在终端上监控密码模块的运行,然后通过逆向工程、获取密码算法的中间计算结果等方式来破解出密码算法的密钥。例如,当使用SM9签名算法进行数字签名时,如果此时运行上述SM9签名算法的终端不可信,那么上述SM9签名算法在运行过程中所采用的签名私钥将会面临泄漏的风险。为此,本申请提供了一种基于SM9白盒的数据签名方案,能够有效保证SM9签名算法在不可信终端上运行时的签名私钥的安全性。
参见图1所示,本发明实施例公开了一种基于SM9白盒的数字签名装置,包括随机数生成器11、乘法计算器12、消息处理器13、第一计算模块14、第二计算模块15、第三计算模块16、第四计算模块17和第五计算模块18;其中,
所述随机数生成器11,用于生成随机数r’,并将所述随机数r’传送至所述乘法计算器12、所述第一计算模块14和所述第三计算模块16;
所述乘法计算器12,用于利用自身内部的随机数向量和所述随机数r’进行乘法运算,得到相应的乘法结果,并将所述乘法结果传送至所述消息处理器13;
所述消息处理器13,用于获取待签名消息,对所述乘法结果和所述待签名消息进行拼接以得到相应的拼接结果,并根据SM9签名算法规范进行杂凑运算以得到签名结果中的h分量,然后将所述h分量传送至所述第二计算模块15和所述第三计算模块16;
所述第一计算模块14,用于利用所述随机数r’,计算出所述签名结果中的第一s子分量,并将所述第一s子分量传送至所述第四计算模块17;
所述第二计算模块15,用于利用所述h分量,计算出所述签名结果中的第二s子分量,并将所述第二s子分量传送至所述第四计算模块17;
所述第三计算模块16,用于利用所述随机数r’和所述h分量,计算出所述签名结果中的第三s子分量和第四s子分量,并将所述第三s子分量和所述第四s子分量传送至所述第四计算模块17;
所述第四计算模块17,用于利用所述第一s子分量、所述第二s子分量、所述第三s子分量和所述第四s子分量,确定出S′;
所述第五计算模块18,用于利用预设参数d′,计算[S′]d′以得到所述签名结果中的S分量。
可见,本申请实施例在进行SM9数字签名时,分别生成了签名结果中的h分量和S分量。其中,在生成上述h分量和S分量的过程中并没有出现明文形式的签名密钥,并且,本申请中,上述签名结果的S分量被划分成四个子分量来分别进行计算,每个子分量均可以得到编码保护,因此,本申请通过上述方案,能够有效地保证了SM9签名私钥的安全性,即便是在不可信终端上进行上述SM9数字签名过程,也能够有效防止外界破解签名密钥的事件发生。与此同时,本申请中的上述技术方案,还具体以下效果:能够适合在单一终端上独立完成SM9签名过程,无需由多个终端联合起来才能够完成运算过程,从而拓宽了应用场景,并且本申请的技术方案具有标准的签名结果,对应的验签过程与SM9标准算法的验签过程相同,可用于直接替换现有的SM9签名算法。而且,从实际的运行效果来看,本方案所需的存储空间运行效率较高。
在前述实施例公开的技术方案的基础上,本申请实施例对技术方案进行了进一步的说明和优化。具体的:
所述第一计算模块的内部设有第一向量和第一查找表,具体用于利用所述随机数r’、所述第一向量和所述第一查找表计算出所述签名结果中的第一s子分量。也即,本实施例具体可以使用查找表来计算出第一s子分量,以此实现对该计算结果的编码保护。
所述第二计算模块的内部设有第二向量和第二查找表,具体用于利用所述h分量、所述第二向量和所述第二查找表计算出所述签名结果的第二s子分量。也即,本实施例具体可以使用查找表来计算出第二s子分量,以此实现对该计算结果的编码保护。
所述第三计算模块的内部设有第三查找表,具体用于利用所述随机数r’、所述h分量和所述第三查找表,计算出所述签名结果中的第三s子分量和所述第四s子分量。也即,本实施例具体可以使用查找表来计算出第三s子分量和第四s子分量,以此实现对该计算结果的编码保护。
所述第四计算模块的内部设有第四查找表、第五查找表和第六查找表,具体用于利用所述第一s子分量、所述第三s子分量和所述第四查找表计算得到第一临时结果,利用所述第二s子分量、所述第四s子分量和所述第五查找表计算得到第二临时结果,然后利用所述第一临时结果、所述第二临时结果和所述第六查找表计算得到所述S′。也即,本实施例具体可以使用查找表来计算出最终的S分量,以此实现对该计算结果的编码保护。
本实施例中,所述数字签名装置,还可以包括初始化模块;其中,所述初始化模块,包括:
秘密参数生成单元,用于随机生成秘密参数;
第一生成单元,用于利用所述秘密参数生成所述乘法计算器的所述随机数向量;
第二生成单元,用于生成所述第一计算模块内部的所述第一向量和所述第一查找表;
第三生成单元,用于生成所述第二计算模块内部的所述第二向量和所述第二查找表;
第四生成单元,用于生成所述第三计算模块内部的所述第三查找表;
第五生成单元,用于生成所述第四计算模块内部的所述第四查找表、所述第五查找表和所述第六查找表;
信息整理单元,用于保存所述随机数向量、所述第一向量、所述第二向量、所述第一查找表、所述第二查找表、所述第三查找表、所述第四查找表、所述第五查找表和第六查找表,并删除其他信息,以完成初始化操作。
可以理解的是,本实施例中,上述生成所述第一查找表、所述第二查找表、所述第三查找表、所述第四查找表、所述第五查找表和第六查找表的过程,实质上便是所述第一查找表、所述第二查找表、所述第三查找表、所述第四查找表、所述第五查找表和第六查找表各自的初始化过程。
其中,为了保证具有足够的随机数空间,本实施例中的所述第一生成单元具体用于根据随机数空间的实际需求量生成所述随机数向量。
参见图2所示,本申请实施例公开了一种具体的基于SM9白盒的数字签名装置,包括以下部件:
随机数生成器Rand_r、乘法计算器PRO_gr、消息处理器M_H2、第一计算模块TA、第二计算模块TB、第三计算模块Lookup_Table_C、第四计算模块Lookup_table_D和第五计算模块。
其中,基于上述各个部件的签名过程WBSM9_Sig,对应的输入、输出以及运行过程具体如下:
1.输入:待签名消息M;
2.输出:签名(h,S);
3.运行过程:
a)Rand_r部件生成256随机数r′,r′=r0r1…r255,ri∈{0,1},并将r′传送至PRO_gr、TA,Lookup_Table_C部件;
c)M_H2部件计算h=H2(M||w,N),输出h分量,并同时将h传送至TB、Lookup_Table_C部件;其中,N为SM9签名算法参数,表示SM9算法所选的循环群的阶,||表示拼接符号,H2表示SM9签名算法中的函数;
d)TA部件计算s1=TA(r′),并将s1传送至Lookup_Table_D部件;其中,s1表示S分量中的第一S子分量,关于s1=TA(r′)的具体运算过程会在下文进行说明;
e)TB部件计算s2=TB(h),并将s2传送至Lookup_Table_D部件;其中,s2表示S分量中的第二S子分量,关于s2=TB(h)的具体运算过程会在下文进行说明;
f)Lookup_Table_C部件计算(s3,s4)=Lookup_table_C(r′,h),并将s3,s4传送至Lookup_Table_D部件;其中,s3和s4分别表示S分量中的第三S子分量和第四S子分量,(s3,s4)=Lookup_table_C(r′,h)的具体运算过程会在下文进行说明;
g)Lookup_Table_D部件计算S′=Lookup_table_D(s1,s2,s3,s4);其中,S′=Lookup_table_D(s1,s2,s3,s4)的具体运算过程会在下文进行说明。
h)第五计算模块计算S=[S′]d′,也即,计算预设参数d′的S′倍,得到并输出S分量。
其中,与s1=TA(r′)对应的的运算过程中,对应的输入、输出以及运行过程具体如下:
输入:r′=(r255,r254,…,r0),ri∈{0,1};
输出:s1;
运算过程:
其中,Ai=F((Ri+ui)·α),i=0,1,…,255,R0,R1,…,R255为预先选定的256个随机数,与PRO_gr部件中的相同,u0,u1,…,u255为预先选定的256个随机数,α为预先选定的随机数,F=f63||f62||…||f0,fj为随机生成的4比特置换。Lookup_Table_A表示前一实施例公开的所述第一查找表。另外,前一实施例公开的所述第一向量在此处具体可以表示为A=(A0,A1,…,A255)。综上可见,本实施例中,TA部件的输入为r′=(r255,r254,…,r0),ri∈{0,1},输出为签名结果中的第一S子分量。另外,所述第一查找表Lookup_Table_A的初始化过程为:Lookup_Table_A=INITIAL_MADD(F-1,F-1,F)。
另外,与s2=TB(h)对应的运算过程中,对应的输入、输出以及运行过程具体如下:
输入:h=(h255,h254,…,h0);
输出:s2;
运算过程:
其中,Bi=G((-2i+vi)·α),i=0,1,…,255,v0,v1,…,v255为预先选定的256个随机数,α与TA部件中的相同,G=g63||g62||…||g0,gj为随机生成的4比特置换,Lookup_Table_B表示前一实施例中公开的所述第二查找表。另外,前一实施例公开的所述第二向量在此处具体表示为B=(B0,B1,…,B255)。综上可见,本实施例中,TB部件的输入为h分量,输出为签名结果中的第二S子分量。另外,本实施例中,所述第二查找表Lookup_Table_B的初始化过程为:Lookup_Table_B=INITIAL_MADD(G-1,G-1,G)。
进一步的,与(s3,s4)=Lookup_table_C(r′,h)对应的运算过程中,对应的输入、输出以及运行过程具体如下:
其中,T0,i和Ti,j均为位于前一实施例中提到的所述第三查找表中的查找表。
具体的,所述第三查找表为:
T0,0,T0,1,…,T0,63,T1,0,T1,1,…,T1,31,T2,0,T2,1,…,T2,15,
T3,0,T3,1,…,T3,7,T4,0,T4,1,T4,2,T4,3,T5,0,T5,1
参见图3所示,图3示出了所述第三查找表的输入输出信息。其中,查找表T0,j的输入信息为xj=r4jr4j+1r4j+2r4j+3h4jh4j+1h4j+2h4j+3;rj,hj分别为rand_k,r的第j比特。
以下逐一说明Lookup_table_C中每个查找表的输入输出及构造方式。
1)T0,j,j=0,1,…,63
输入:8比特x,记x=x0x1x2x3x4x5x6x7,xi∈{0,1};
输出:256比特y;
构造方式:y=F0,j(x0·αu4j+x1·αu4j+1+x2·αu4j+2+x3·αu4j+3+x4·αv4j+x5·αv4j+1+x6·αv4j+2+x7·αv4j+3),其中uj,vj分别为TA,TB中选定的随机数,F0,j=f0,j,0||f0,j,1||…||f0,j,63,f0,j,k为随机生成的4比特置换,α与TA,TB中的相同。
2)Ti,j,i=1,2,…,5,j=0,1,…,26-i-1
Ti,j的构造过程如下:
Ti,j的运行过程如下:
算法:z=MADD(x,y,Ti,j)。
进一步的,与S′=Lookup_table_D(s1,s2,s3,s4)对应的运算过程中,对应的输入、输出以及运行过程具体如下:
输入:s1,s2,s3,s4;
输出:S′;
运算过程:
S′=Lookup_table_D(s1,s2,s3,s4)
1.tmp1=MADD(s1,s3,Lookup_table_D1)
2.tmp2=MADD(s2,s4,Lookup_table_D2)
3.S′=MADD(tmp1,tmp2,Lookup_table_D3)
其中,Lookup_table_D1、Lookup_table_D2和Lookup_table_D3分别表示前一实施例公开的所述第四查找表、所述第五查找表和所述第六查找表。其中,所述第四查找表、所述第五查找表和所述第六查找表的初始化过程为:
Lookup_table_D3=INITIAL_MADD(F′-1,G′-1,I)
本实施例中,需要进一步指出的是,有关模加运算查找表的初始化过程和运行过程,具体如下:
给定映射F,G,H,其中F=f63||f62||…||f0,G=g63||g62||…||g0,H=h63||h62||…||h0,完成z′=H(F-1(x′)+G-1(y′)mod p)运算,初始化过程即输入映射F-1,G-1,H,生成一系列查找表以实现上述运算过程。
查找表初始化过程如下:
运算过程如下:
算法:
本实施例中,tγ表示一个256比特随机数,update(tγ)表示随机生成256比特随机数,并使用tγ表示该随机数;表示异或运算符;“5,4L”表示将括号内的值看作5比特向量,并截取低4比特的值;“5,1H”表示将括号内的值看作5比特向量,并截取高1比特的值;α与x,y类似,同样表示构造查找表时的输入变量,即遍历(x,y,α),根据上述相应表达式计算出z,并按顺序存储z,从而生成该查找表;tγ′表示256比特随机数,update(tγ′)表示随机生成256比特随机数,并使用tγ′表示该随机数;p′k表示2256-p的第k个4比特值,其中p为SM9签名算法所选参数中的模数。
本实施例中,对图2中的各个部件进行初始化的过程中,对应的输入、输出以及具体初始化过程INITIAL_WBSM9_Sig包括:
1.输入:私钥dA;
2.输出:PRO_gr,A,B,Lookup_table_A,Lookup_table_B,Lookup_table_C与Lookup_table_D,d′;
3.初始化过程:
a)随机生成秘密参数R0,R1,…,R255,α;
c)生成TA,即计算向量A,并生成查找表Lookup_table_A;
d)生成TB,即计算向量B,并生成查找表Lookup_table_B;
e)生成查找表Lookup_table_C;
f)生成查找表Lookup_table_D;
g)计算d′=[α-1]dA
h)存储T1,A,B与Lookup_table_A,Lookup_table_B,Lookup_table_C,Lookup_table_D,d′,删除其它信息,完成初始化。
参见图4所示,本申请实施例还公开了一种基于SM9白盒的数字签名方法,包括:
步骤S11:通过随机数生成器生成随机数r’;
步骤S12:通过乘法计算器利用自身内部的随机数向量和所述随机数r’进行乘法运算,得到相应的乘法结果;
步骤S13:通过消息处理器获取待签名消息,对所述乘法结果和所述待签名消息进行拼接以得到相应的拼接结果,并根据SM9签名算法规范进行杂凑运算以得到签名结果中的h分量;
步骤S14:通过第一计算模块利用所述随机数r’,计算出所述签名结果中的第一s子分量;
步骤S15:通过第二计算模块利用所述h分量,计算出所述签名结果中的第二s子分量;
步骤S16:通过第三计算模块利用所述随机数r’和所述h分量,计算出所述签名结果中的第三s子分量和第四s子分量;
步骤S17:通过第四计算模块利用所述第一s子分量、所述第二s子分量、所述第三s子分量和所述第四s子分量,确定出S′;
步骤S18:通过第五计算模块利用预设参数d′,计算[S′]d′以得到所述签名结果中的S分量。
可见,本申请在进行SM9数字签名时,分别生成了签名结果中的h分量和S分量。其中,在生成上述h分量和S分量的过程中并没有出现明文形式的签名密钥,并且,本申请中,上述签名结果的S分量被划分成四个子分量来分别进行计算,每个子分量均可以得到编码保护,因此,本申请通过上述方案,能够有效地保证了SM9签名私钥的安全性,即便是在不可信终端上进行上述SM9数字签名过程,也能够有效防止外界破解签名密钥的事件发生。与此同时,本申请中的上述技术方案,还具体以下效果:能够适合在单一终端上独立完成SM9签名过程,无需由多个终端联合起来才能够完成运算过程,从而拓宽了应用场景,并且本申请的技术方案具有标准的签名结果,对应的验签过程与SM9标准算法的验签过程相同,可用于直接替换现有的SM9签名算法。而且,从实际的运行效果来看,本方案所需的存储空间较低、运行效率较高。
图5是根据一示例性实施例示出的一种电子设备20的框图。如图5所示,该电子设备20可以包括:处理器21,存储器22。该电子设备20还可以包括多媒体组件23,输入/输出(I/O)接口24,以及通信组件25中的一者或多者。
其中,处理器21用于控制该电子设备20的整体操作,以完成上述的基于SM9白盒的数字签名方法中的全部或部分步骤。存储器22用于存储各种类型的数据以支持在该电子设备20的操作,这些数据例如可以包括用于在该电子设备20上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器22可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件23可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器22或通过通信组件25发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器21和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件25用于该电子设备20与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件25可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备20可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的基于SM9白盒的数字签名方法。
在另一示例性实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,该程序被处理器执行时实现上述的基于SM9白盒的数字签名方法的步骤。例如,该计算机可读存储介质可以为上述包括程序的存储器22,上述程序可由电子设备20的处理器21执行以完成上述的基于SM9白盒的数字签名方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种基于SM9白盒的数字签名装置、方法、存储介质及设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于SM9白盒的数字签名装置,其特征在于,包括随机数生成器、乘法计算器、消息处理器、第一计算模块、第二计算模块、第三计算模块、第四计算模块和第五计算模块;其中,
所述随机数生成器,用于生成随机数r’,并将所述随机数r’传送至所述乘法计算器、所述第一计算模块和所述第三计算模块;
所述乘法计算器,用于利用自身内部的随机数向量和所述随机数r’进行乘法运算,得到相应的乘法结果,并将所述乘法结果传送至所述消息处理器;
所述消息处理器,用于获取待签名消息,对所述乘法结果和所述待签名消息进行拼接以得到相应的拼接结果,并根据SM9签名算法规范进行杂凑运算以得到签名结果中的h分量,然后将所述h分量传送至所述第二计算模块和所述第三计算模块;
所述第一计算模块,用于利用所述随机数r’,计算出所述签名结果中的第一s子分量,并将所述第一s子分量传送至所述第四计算模块;
所述第二计算模块,用于利用所述h分量,计算出所述签名结果中的第二s子分量,并将所述第二s子分量传送至所述第四计算模块;
所述第三计算模块,用于利用所述随机数r’和所述h分量,计算出所述签名结果中的第三s子分量和第四s子分量,并将所述第三s子分量和所述第四s子分量传送至所述第四计算模块;
所述第四计算模块,用于利用所述第一s子分量、所述第二s子分量、所述第三s子分量和所述第四s子分量,确定S′;
所述第五计算模块,用于利用预设参数d′,计算[S′]d′以得到所述签名结果中的S分量,所述预设参数d′是由私钥确定的。
2.根据权利要求1所述的基于SM9白盒的数字签名装置,其特征在于,所述第一计算模块的内部设有第一向量和第一查找表,具体用于利用所述随机数r’、所述第一向量和所述第一查找表计算出所述签名结果中的第一s子分量。
3.根据权利要求2所述的基于SM9白盒的数字签名装置,其特征在于,所述第二计算模块的内部设有第二向量和第二查找表,具体用于利用所述h分量、所述第二向量和所述第二查找表计算出所述签名结果的第二s子分量。
4.根据权利要求3所述的基于SM9白盒的数字签名装置,其特征在于,所述第三计算模块的内部设有第三查找表,具体用于利用所述随机数r’、所述h分量和所述第三查找表,计算出所述签名结果中的第三s子分量和所述第四s子分量。
5.根据权利要求4所述的基于SM9白盒的数字签名装置,其特征在于,所述第四计算模块的内部设有第四查找表、第五查找表和第六查找表,具体用于利用所述第一s子分量、所述第三s子分量和所述第四查找表计算得到第一临时结果,利用所述第二s子分量、所述第四s子分量和所述第五查找表计算得到第二临时结果,然后利用所述第一临时结果、所述第二临时结果和所述第六查找表计算得到所述S′。
6.根据权利要求5所述的基于SM9白盒的数字签名装置,其特征在于,还包括初始化模块;其中,所述初始化模块,包括:
秘密参数生成单元,用于随机生成秘密参数;
第一生成单元,用于利用所述秘密参数生成所述乘法计算器的所述随机数向量;
第二生成单元,用于生成所述第一计算模块内部的所述第一向量和所述第一查找表;
第三生成单元,用于生成所述第二计算模块内部的所述第二向量和所述第二查找表;
第四生成单元,用于生成所述第三计算模块内部的所述第三查找表;
第五生成单元,用于生成所述第四计算模块内部的所述第四查找表、所述第五查找表和所述第六查找表;
信息整理单元,用于保存所述随机数向量、所述第一向量、所述第二向量、所述第一查找表、所述第二查找表、所述第三查找表、所述第四查找表、所述第五查找表和第六查找表,并删除其他信息,以完成初始化操作。
7.根据权利要求6所述的基于SM9白盒的数字签名装置,其特征在于,所述第一生成单元具体用于根据随机数空间的实际需求量生成所述随机数向量。
8.一种基于SM9白盒的数字签名方法,其特征在于,包括:
通过随机数生成器生成随机数r’;
通过乘法计算器利用自身内部的随机数向量和所述随机数r’进行乘法运算,得到相应的乘法结果;
通过消息处理器获取待签名消息,对所述乘法结果和所述待签名消息进行拼接以得到相应的拼接结果,并根据SM9签名算法规范进行杂凑运算以得到签名结果中的h分量;
通过第一计算模块利用所述随机数r’,计算出所述签名结果中的第一s子分量;
通过第二计算模块利用所述h分量,计算出所述签名结果中的第二s子分量;
通过第三计算模块利用所述随机数r’和所述h分量,计算出所述签名结果中的第三s子分量和第四s子分量;
通过第四计算模块利用所述第一s子分量、所述第二s子分量、所述第三s子分量和所述第四s子分量,确定出S′;
通过第五计算模块利用预设参数d′,计算[S′]d′以得到所述签名结果中的S分量,所述预设参数d′是由私钥确定的。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求8所述基于SM9白盒的数字签名方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求8所述基于SM9白盒的数字签名方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911222942.3A CN110958115B (zh) | 2019-12-03 | 2019-12-03 | 基于sm9白盒的数字签名装置、方法、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911222942.3A CN110958115B (zh) | 2019-12-03 | 2019-12-03 | 基于sm9白盒的数字签名装置、方法、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110958115A CN110958115A (zh) | 2020-04-03 |
CN110958115B true CN110958115B (zh) | 2022-08-23 |
Family
ID=69979607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911222942.3A Active CN110958115B (zh) | 2019-12-03 | 2019-12-03 | 基于sm9白盒的数字签名装置、方法、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110958115B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209886A (zh) * | 2016-07-22 | 2016-12-07 | 广州爱九游信息技术有限公司 | web接口数据加密加签方法、装置及服务器 |
CN107196763A (zh) * | 2017-07-06 | 2017-09-22 | 数安时代科技股份有限公司 | Sm2算法协同签名及解密方法、装置与系统 |
US9800411B1 (en) * | 2016-05-05 | 2017-10-24 | ISARA Corporation | Using a secret generator in an elliptic curve cryptography (ECC) digital signature scheme |
CN107409041A (zh) * | 2015-02-05 | 2017-11-28 | 金雅拓股份有限公司 | 用于通过使用查找表实现包括替换盒和线性变换的混合器函数来执行块密码加密的系统和方法 |
CN109194478A (zh) * | 2018-11-19 | 2019-01-11 | 武汉大学 | 一种非对称环境下多方联合生成sm9数字签名的方法 |
CN109450640A (zh) * | 2018-10-24 | 2019-03-08 | 成都卫士通信息产业股份有限公司 | 基于sm2的两方签名方法及系统 |
CN110048839A (zh) * | 2019-04-26 | 2019-07-23 | 山东渔翁信息技术股份有限公司 | 一种数字签名方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT201600076089A1 (it) * | 2016-07-20 | 2018-01-20 | St Microelectronics Srl | Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico |
-
2019
- 2019-12-03 CN CN201911222942.3A patent/CN110958115B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107409041A (zh) * | 2015-02-05 | 2017-11-28 | 金雅拓股份有限公司 | 用于通过使用查找表实现包括替换盒和线性变换的混合器函数来执行块密码加密的系统和方法 |
US9800411B1 (en) * | 2016-05-05 | 2017-10-24 | ISARA Corporation | Using a secret generator in an elliptic curve cryptography (ECC) digital signature scheme |
CN106209886A (zh) * | 2016-07-22 | 2016-12-07 | 广州爱九游信息技术有限公司 | web接口数据加密加签方法、装置及服务器 |
CN107196763A (zh) * | 2017-07-06 | 2017-09-22 | 数安时代科技股份有限公司 | Sm2算法协同签名及解密方法、装置与系统 |
CN109450640A (zh) * | 2018-10-24 | 2019-03-08 | 成都卫士通信息产业股份有限公司 | 基于sm2的两方签名方法及系统 |
CN109194478A (zh) * | 2018-11-19 | 2019-01-11 | 武汉大学 | 一种非对称环境下多方联合生成sm9数字签名的方法 |
CN110048839A (zh) * | 2019-04-26 | 2019-07-23 | 山东渔翁信息技术股份有限公司 | 一种数字签名方法、装置及存储介质 |
Non-Patent Citations (3)
Title |
---|
"Simplification and Hardware Parallel Design of Frobenius Mapping Algorithm Based on SM9";Xiaoshu Cheng et al.;《2019 IEEE 3rd International Conference on Circuits, Systems and Devices (ICCSD)》;20190825;全文 * |
"SM9标识密码算法综述";袁峰 等;《信息安全研究》;20161105;全文 * |
"Study on Secret Sharing for SM2 Digital Signature and Its Application";Fan Ding et al.;《2018 14th International Conference on Computational Intelligence and Security (CIS)》;20181119;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110958115A (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3424175B1 (en) | Converting a boolean masked value to an arithmetically masked value for cryptographic operations | |
US20190229929A1 (en) | Production of cryptographic signatures | |
EP3035587B1 (en) | Hypersphere-based multivariable public key signature/verification system and method | |
CN107004084B (zh) | 用于加密操作的乘法掩码 | |
CN112003696B (zh) | Sm9密钥生成方法、系统、电子设备、装置及存储介质 | |
US20120300930A1 (en) | Single-Round Password-Based Key Exchange Protocols | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
CN112906038B (zh) | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 | |
CN112054896B (zh) | 白盒加密方法、装置、终端及存储介质 | |
WO2020092257A1 (en) | Constant time secure arithmetic-to-boolean mask conversion | |
CN110990896B (zh) | 基于sm2白盒的数字签名装置、方法、存储介质及设备 | |
CN112926075B (zh) | 一种sm9密钥生成方法、装置、设备及存储介质 | |
CN111447059A (zh) | 密文等值测试方法、装置、电子设备、存储介质及系统 | |
CN111901097B (zh) | 一种白盒实现方法、装置、电子设备及计算机存储介质 | |
CN115694822A (zh) | 基于零知识证明的验证方法、装置和系统、设备及介质 | |
JP2021500760A (ja) | 外部監視攻撃からモジュラーインバージョン演算を保護すること | |
CN110971409B (zh) | 椭圆曲线上倍点运算的白盒实现方法、装置、设备及介质 | |
CN110958115B (zh) | 基于sm9白盒的数字签名装置、方法、存储介质及设备 | |
CN111262707A (zh) | 数字签名方法及验证方法、设备、存储介质 | |
TWI701931B (zh) | 具分級機制的數位簽章方法及適用該方法的硬體錢包裝置 | |
KR102364047B1 (ko) | 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치 | |
CN116881950B (zh) | 隐私数据的处理方法、装置、电子设备及可读存储介质 | |
CN110601841B (zh) | Sm2协同签名及解密方法、装置 | |
CN115001741B (zh) | 一种数据加密方法及相关组件 | |
CN113381850B (zh) | 一种sm9用户密钥生成方法、装置、设备及存储介质 |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee after: China Electronics Technology Network Security Technology Co.,Ltd. Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc. |