CN114257380A - 一种数字签名方法、***及设备 - Google Patents

一种数字签名方法、***及设备 Download PDF

Info

Publication number
CN114257380A
CN114257380A CN202111565694.XA CN202111565694A CN114257380A CN 114257380 A CN114257380 A CN 114257380A CN 202111565694 A CN202111565694 A CN 202111565694A CN 114257380 A CN114257380 A CN 114257380A
Authority
CN
China
Prior art keywords
signature
preset rule
random number
intermediate number
signature part
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
CN202111565694.XA
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.)
Hunan Goke Microelectronics Co Ltd
Original Assignee
Hunan Goke Microelectronics 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 Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN202111565694.XA priority Critical patent/CN114257380A/zh
Publication of CN114257380A publication Critical patent/CN114257380A/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/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

本申请公开了一种数字签名方法、***及设备,包括:获取签名密钥,消息摘要,第一随机数,椭圆曲线点;基于第一预设规则,对所述签名密钥进行运算得到第一中间数,所述第一预设规则包括逆运算;基于所述消息摘要和所述椭圆曲线点运算得到第一签名部分;基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分;基于所述第一签名部分和所述第二签名部分确定数字签名。这样,签名密钥仅参与求逆运算,相对于标准SM2算法中的参与多种运算,降低了被攻击的风险,能够在不影响SM2算法性能的前提下,提升数字签名安全性。

Description

一种数字签名方法、***及设备
技术领域
本申请涉及信息安全技术领域,特别涉及一种数字签名方法、***及设备。
背景技术
SM2算法是一种安全的算法,能确保算法本身不被破译,不可逆向操作。但SM2算法为开源算法,在使用过程中,若密钥信息被获取,也就意味着算法的整个流程可复制。因此,在使用过程中对密钥的保护至关重要。目前,主要的密钥攻击手段为侧信道攻击,如通过获取算法运算过程的能量曲线、电磁曲线等进行模板分析、DPA(能量)等手段得到敏感信息。SM2签名算法的运算过程包括消息和密钥,其中密钥为私有密钥,需为签名机构私有。私钥参与点乘和求逆过程,而这两个过程的能量曲线与其他点加点运算存在很大差异,攻击者通过多次提取点乘或求逆过程就可分析出真实的私钥值。
目前,针对SM2签名过程的密钥保护,常用的方法是通过增加干扰项提高被攻击的难度,如增加无用的求逆过程或点乘,将真实的过程掩藏,其中,达到混淆视听从而增加攻击难度的目的,但这样影响了SM2算法的性能。
发明内容
有鉴于此,本申请的目的在于提供一种数字签名方法、***及设备,能够在不影响SM2算法性能的前提下,提升数字签名安全性。其具体方案如下:
第一方面,本申请公开了一种数字签名方法,所述签名方法应用于SM2算法加密装置中,所述方法包括:
获取签名密钥,消息摘要,第一随机数,椭圆曲线点;
基于第一预设规则,对所述签名密钥进行运算得到第一中间数,所述第一预设规则包括逆运算;
基于所述消息摘要和所述椭圆曲线点运算得到第一签名部分;
基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分;
基于所述第一签名部分和所述第二签名部分确定数字签名。
可选的,
所述第一预设规则为公式S1=(1+dA)-1modn,其中s1为第一中间数,dA为签名密钥,n为模数;
所述第二预设规则为公式s=(s1(k+r)-r)modn,其中k为第一随机数,r为第一签名部分,s为第二签名部分。
可选的,所述方法还包括:
获取第二随机数;
所述基于第一预设规则,对所述签名密钥进行运算得到第一中间数,包括:基于所述第二随机数和所述第一预设规则,对所述签名密钥进行运算得到第一中间数;
所述基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分。
可选的,
基于所述第二随机数和所述第一预设规则,对所述签名密钥进行运算得到第一中间数,包括:
基于公式s1=(r2+r2dA)-1modn运算得到第一中间数,其中r2为第二随机数;
基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:
基于公式s=(s1(k+r)r2-r)modn运算得到第二签名部分。
可选的,基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:
基于第三预设规则对所述第一签名部分和所述第一随机数进行运算得到第二中间数,所述第三预设规则为模加运算;
基于第四预设规则对所述第二随机数、所述第一中间数和所述第二中间数进行运算得到第三中间数,所述第四预设规则为模乘运算;
基于第五预设规则对所述第三中间数和所述第一随机数进行运算得到第二签名部分,所述第五预设规则为模减运算。
可选的,
所述第三预设规则为s2=(k+r)modn,s2为第二中间数;
所述第四预设规则为s3=(s1s2r2)modn,s1为第一中间数,s3为第三中间数;
所述第五预设规则为s=(s3-r)modn,s为第二签名部分。
可选的,所述基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:
基于第三预设规则对所述第一签名部分和所述第一随机数进行运算得到第二中间数,所述第三预设规则为模加运算;
基于第四预设规则对所述第一中间数和所述第二中间数进行运算得到第三中间数,所述第四预设规则为模乘运算;
基于第五预设规则对所述第三中间数和所述第一随机数进行运算得到第二签名部分,所述第五预设规则为模减运算。
可选的,
所述第三预设规则为s2=(k+r)modn,s2为第二中间数;
所述第四预设规则为s3=(s1s2)modn,s1为第一中间数,s3为第三中间数;
所述第五预设规则为s=(s3-r)modn,s为第二签名部分。
第二方面,本申请公开了一种数字签名***,所述签名***应用于SM2算法加密装置中,所述***包括:
获取模块,用于获取签名密钥,消息摘要,第一随机数,椭圆曲线点;
第一中间数运算模块,用于基于第一预设规则,对所述签名密钥进行运算得到第一中间数,所述第一预设规则包括逆运算;
第一签名部分运算模块,用于第二基于所述消息摘要和所述椭圆曲线点运算得到第一签名部分;
第二签名部分运算模块,用于基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分;
数字签名确定模块,用于基于所述第一签名部分和所述第二签名部分确定数字签名。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的数字签名方法。
可见,本申请先获取签名密钥,消息摘要,第一随机数,椭圆曲线点,之后基于第一预设规则,对所述签名密钥进行运算得到第一中间数,所述第一预设规则包括逆运算,以及基于所述消息摘要和所述椭圆曲线点运算得到第一签名部分,然后基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,最后基于所述第一签名部分和所述第二签名部分确定数字签名。这样,签名密钥仅参与求逆运算,相对于标准SM2算法中的参与多种运算,降低了被攻击的风险,能够在不影响SM2算法性能的前提下,提升数字签名安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种数字签名方法流程图;
图2为本申请提供的一种标准SM2算法流程图;
图3为本申请提供的一种数字签名装置结构示意图;
图4为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,针对SM2签名过程的密钥保护,常用的方法是通过增加干扰项提高被攻击的难度,如增加无用的求逆过程或点乘,将真实的过程掩藏,其中,达到混淆视听从而增加攻击难度的目的,但这样影响了SM2算法的性能。为此,本申请提供了一种数字签名方案,能够在不影响SM2算法性能的前提下,提升数字签名安全性。
参见图1所示,本申请实施例公开了一种数字签名方法,所述签名方法应用于SM2算法加密装置中,所述方法包括:
步骤S11:获取签名密钥,消息摘要,第一随机数,椭圆曲线点。
其中,本申请实施例在计算待签名消息的数字签名时,可以先对待签名消息进行压缩运算,得到消息摘要,在一些实施例中,可以利用密码杂凑函数对包含杂凑值和待签名消息的消息数据进行压缩,得到消息摘要。
在具体的实施方式中,本申请实施例可以获取待签名消息,并基于公式
Figure BDA0003421891390000051
计算得到消息摘要,其中,e为消息摘要,M为待签名的消息,ZA为关于用户A的可辨别标识、部分椭圆曲线***参数和用户A公钥的杂凑值,Hv为消息摘要长度为v比特的密码杂凑函数。并且,可以产生第一随机数k∈[1,n-1]。
步骤S12:基于第一预设规则,对所述签名密钥进行运算得到第一中间数,所述第一预设规则包括逆运算。
其中,所述第一预设规则为公式S1=(1+dA)-1modn,其中s1为第一中间数,dA为签名密钥,也即用户A的私钥,n为模数。
步骤S13:基于所述消息摘要和所述椭圆曲线点运算得到第一签名部分。
在具体的实施方式中,可以基于(x1,y1)=[k]G计算出椭圆曲线点,其中,G为椭圆曲线的一个基点,其阶为素数,(x1,y1)为椭圆曲线点。
本申请实施例可以基于所述消息摘要和所述椭圆曲线点的横坐标的坐标值运算得到第一签名部分。
进一步的,可以基于r=(e+x1)modn得到第一签名部分,其中,x1为所述椭圆曲线点的x轴坐标值,r为第一签名部分。
步骤S14:基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分。
其中,所述第二预设规则为公式s=(s1(k+r)-r)modn,其中k为第一随机数,r为第一签名部分,s为第二签名部分。
步骤S15:基于所述第一签名部分和所述第二签名部分确定数字签名。
在具体的实施方式中,可以得到数字签名[r,s]。
参见图2所示,图2为本申请实施例提供的一种标准SM2算法流程图。其中,签名密钥参与运算的公式为:
s=((1+dA)-1(k-rdA))modn;
从上式可以看出,标准SM2算法流程中dA会直接参与到(1+dA)-1的求逆运算以及rdA的点乘运算中。进一步的,可以对标准SM2算法中签名密钥参与运算的公式进行等价转换:
s=((1+dA)-1(k-rdA))modn
=((1+dA)-1(k+r-r-rdA))modn
=((1+dA)-1((k+r)-r(1+rdA)))modn
=((1+dA)-1(k+r)-((1+dA)-1r(1+rdA)))modn
=((1+dA)-1(k+r)-r)modn
这样进行转换,转换后dA仅参与求逆运算,基于此,本申请实施例先基于第一预设规则,对所述签名密钥进行运算得到第一中间数,所述第一预设规则包括逆运算,然后基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分。因为第一预设规则中对dA进行了求逆运算得到了第一中间数,而第二预设规则则只需要对第一中间数、第一签名部分及第一随机数进行计算,不包括dA的运算,实现了对SM2签名过程密钥运算过程的优化,优化后的SM2运算过程中密钥只参与求逆运算,在不影响SM2运算性能的前提下,有效保护SM2私钥不易被外部侧信道攻击手段攻击,达到提高SM2签密私钥安全性的目的。
在一些实施例中,所述基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,具体包括:
步骤001:基于第三预设规则对所述第一签名部分和所述第一随机数进行运算得到第二中间数,所述第三预设规则为模加运算;
步骤002:基于第四预设规则对所述第一中间数和所述第二中间数进行运算得到第三中间数,所述第四预设规则为模乘运算;
步骤003:基于第五预设规则对所述第三中间数和所述第一随机数进行运算得到第二签名部分,所述第五预设规则为模减运算。
其中,所述第三预设规则为s2=(k+r)modn,s2为第二中间数;所述第四预设规则为s3=(s1s2)modn,s1为第一中间数,s3为第三中间数;所述第五预设规则为s=(s3-r)modn,s为第二签名部分。
也即,本申请实施例可以基于公式S1=(1+dA)-1modn、r=(e+x1)modn、s2=(k+r)modn、s3=(s1s2)modn、s=(s3-r)modn计算,得到数字签名的第一签名部分和第二签名部分。
需要指出的是,从能量曲线上各个操作类型的曲线有较大差异,而同一类型运算的曲线有很大相似性。因此,本申请为了保护标准算法中的第一签名部分,也即确定第二签名部分的中间变量,防止通过模加操作截取第一签名部分的信息。将第一签名部分的计算过程放置在S1=(1+dA)-1modn和s2=(k+r)modn之间,这样,两次模加操作能做到很好的掩护效应,让攻击难度提升。
进一步的,本申请实施例可以获取第二随机数;相应的,所述基于第一预设规则,对所述签名密钥进行运算得到第一中间数,包括:基于所述第二随机数和所述第一预设规则,对所述签名密钥进行运算得到第一中间数;所述基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分。
在一种具体的实施方式中,基于所述第二随机数和所述第一预设规则,对所述签名密钥进行运算得到第一中间数,包括:基于公式s1=(r2+r2dA)-1modn运算得到第一中间数,其中r2为第二随机数;基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:基于公式s=(s1(k+r)r2-r)modn运算得到第二签名部分。
需要指出的是,对s=((1+dA)-1(k+r)-r)modn中的求逆运算可以进一步进行随机化掩码操作,如下:
s=((1+dA)-1(k+r)-r)modn
=((r2)-1(1+dA)-1(k+r)r2-r)modn
=((r2+r2dA)-1(k+r)r2-r)modn
基于此,本申请实施例先基于公式s1=(r2+r2dA)-1modn运算得到第一中间数,其中r2为第二随机数;然后基于公式s=(s1(k+r)r2-r)modn运算得到第二签名部分。这样,通过随机化掩码后,dA只直接参与了r2dA的运算,而r2为随机数,因此点乘运算的运算结果因随机数r2每次不同而出现差异,从电磁攻击或模板攻击等侧信道攻击的方法来看,攻击的难度极大的提高,从而密钥dA的安全性大大的提高了。
进一步的,在一些实施例中,基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,具体包括:
步骤011:基于第三预设规则对所述第一签名部分和所述第一随机数进行运算得到第二中间数,所述第三预设规则为模加运算;
步骤012:基于第四预设规则对所述第二随机数、所述第一中间数和所述第二中间数进行运算得到第三中间数,所述第四预设规则为模乘运算;
步骤013:基于第五预设规则对所述第三中间数和所述第一随机数进行运算得到第二签名部分,所述第五预设规则为模减运算。
其中,所述第三预设规则为s2=(k+r)modn,s2为第二中间数;所述第四预设规则为s3=(s1s2r2)modn,s1为第一中间数,s3为第三中间数;所述第五预设规则为s=(s3-r)modn,s为第二签名部分。
也即,本申请实施例可以基于公式s1=(r2+r2dA)-1modn、r=(e+x1)modn、s2=(k+r)modn、s3=(s1s2r2)modn、s=(s3-r)modn计算,得到数字签名的第一签名部分和第二签名部分。
可见,本申请实施例为了保护第一签名部分,也即,确定第二签名部分的中间变量,防止通过模加操作截取第一签名部分的信息。确定第一签名部分的公式隐藏到s2的运算前,这样两次模加操作能做到很好的掩护效应,让攻击难度提升。
以SOC芯片为例,基于公式s1=(r2+r2dA)-1modn、r=(e+x1)modn、s2=(k+r)modn、s3=(s1s2r2)modn、s=(s3-r)modn编译SM2签名算法程序,其中,对于第二随机数r2,可调用SOC芯片自带的产生随机数功能产生,也可调用算法库(如C库)中自带的软件随机数接口产生。并且,编辑测试用例测试SM2签名结果是否正常。本申请提供的方案在不影响SM2算法性能的前提下,提升了安全性。
进一步的,在一些实施例中,所述第四预设规则可以包括s’3=(s2r2)modn、s3=(s1s’3)modn,也即,可以基于公式s1=(r2+r2dA)-1modn、r=(e+x1)modn、s2=(k+r)modn、s’3=(s2r2)modn、s3=(s1s’3)modn、s=(s3-r)modn计算,得到数字签名的第一签名部分和第二签名部分。
参见图3所示,本申请实施例公开了一种数字签名***,所述签名***应用于SM2算法加密装置中,所述***包括:
获取模块11,用于获取签名密钥,消息摘要,第一随机数,椭圆曲线点;
第一中间数运算模块12,用于基于第一预设规则,对所述签名密钥进行运算得到第一中间数,所述第一预设规则包括逆运算;
第一签名部分运算模块13,用于第二基于所述消息摘要和所述椭圆曲线点运算得到第一签名部分;
第二签名部分运算模块14,用于基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分;
数字签名确定模块15,用于基于所述第一签名部分和所述第二签名部分确定数字签名。
可见,本是申请实施例中签名密钥仅参与求逆运算,相对于标准SM2算法中的参与多种运算,降低了被攻击的风险,能够在不影响SM2算法性能的前提下,提升数字签名安全性。
其中,所述第一预设规则为公式S1=(1+dA)-1modn,其中s1为第一中间数,dA为签名密钥,n为模数;所述第二预设规则为公式s=(s1(k+r)-r)modn,其中k为第一随机数,r为第一签名部分,s为第二签名部分。
进一步的,所述***还包括:第二随机数获取模块,用于获取第二随机数。
相应的,第一中间数运算模块12,具体用于基于所述第二随机数和所述第一预设规则,对所述签名密钥进行运算得到第一中间数;第二签名部分运算模块14,具体用于基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分。
并且,第一中间数运算模块12,具体用于基于公式s1=(r2+r2dA)-1modn运算得到第一中间数,其中r2为第二随机数;第二签名部分运算模块14,具体用于基于公式s=(s1(k+r)r2-r)modn运算得到第二签名部分。
在一种实施方式中,第二签名部分运算模块14,具体包括:
第二中间数运算子模块,用于基于第三预设规则对所述第一签名部分和所述第一随机数进行运算得到第二中间数,所述第三预设规则为模加运算;
第三中间数运算子模块,用于基于第四预设规则对所述第二随机数、所述第一中间数和所述第二中间数进行运算得到第三中间数,所述第四预设规则为模乘运算;
第二签名部分运算子模块,用于基于第五预设规则对所述第三中间数和所述第一随机数进行运算得到第二签名部分,所述第五预设规则为模减运算。
其中,所述第三预设规则为s2=(k+r)modn,s2为第二中间数;所述第四预设规则为s3=(s1s2r2)modn,s1为第一中间数,s3为第三中间数;所述第五预设规则为s=(s3-r)modn,s为第二签名部分。
在另一种实施方式中,第二签名部分运算模块14,具体包括:
第二中间数运算子模块,用于基于第三预设规则对所述第一签名部分和所述第一随机数进行运算得到第二中间数,所述第三预设规则为模加运算;
第三中间数运算子模块,用于基于第四预设规则对所述第一中间数和所述第二中间数进行运算得到第三中间数,所述第四预设规则为模乘运算;
第二签名部分运算子模块,用于基于第五预设规则对所述第三中间数和所述第一随机数进行运算得到第二签名部分,所述第五预设规则为模减运算。
其中,所述第三预设规则为s2=(k+r)modn,s2为第二中间数;所述第四预设规则为s3=(s1s2)modn,s1为第一中间数,s3为第三中间数;所述第五预设规则为s=(s3-r)modn,s为第二签名部分。
参见图4所示,本申请实施例公开了一种电子设备20,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,前述实施例公开的数字签名方法。
关于上述数字签名方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
并且,所述存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储方式可以是短暂存储或者永久存储。
另外,所述电子设备20还包括电源23、通信接口24、输入输出接口25和通信总线26;其中,所述电源23用于为所述电子设备20上的各硬件设备提供工作电压;所述通信接口24能够为所述电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种数字签名方法、***及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种数字签名方法,其特征在于,所述签名方法应用于SM2算法加密装置中,所述方法包括:
获取签名密钥,消息摘要,第一随机数,椭圆曲线点;
基于第一预设规则,对所述签名密钥进行运算得到第一中间数,所述第一预设规则包括逆运算;
基于所述消息摘要和所述椭圆曲线点运算得到第一签名部分;
基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分;
基于所述第一签名部分和所述第二签名部分确定数字签名。
2.根据权利要求1所述的数字签名方法,其特征在于,
所述第一预设规则为公式S1=(1+dA)-1modn,其中s1为第一中间数,dA为签名密钥,n为模数;
所述第二预设规则为公式s=(s1(k+r)-r)mod n,其中k为第一随机数,r为第一签名部分,s为第二签名部分。
3.根据权利要求1所述的数字签名方法,其特征在于,所述方法还包括:
获取第二随机数;
所述基于第一预设规则,对所述签名密钥进行运算得到第一中间数,包括:基于所述第二随机数和所述第一预设规则,对所述签名密钥进行运算得到第一中间数;
所述基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分。
4.根据权利要求3所述的数字签名方法,其特征在于,
基于所述第二随机数和所述第一预设规则,对所述签名密钥进行运算得到第一中间数,包括:
基于公式s1=(r2+r2dA)-1modn运算得到第一中间数,其中r2为第二随机数;
基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:
基于公式s=(s1(k+r)r2-r)mod n运算得到第二签名部分。
5.根据权利要求3所述的数字签名方法,其特征在于,基于所述第二随机数和所述第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:
基于第三预设规则对所述第一签名部分和所述第一随机数进行运算得到第二中间数,所述第三预设规则为模加运算;
基于第四预设规则对所述第二随机数、所述第一中间数和所述第二中间数进行运算得到第三中间数,所述第四预设规则为模乘运算;
基于第五预设规则对所述第三中间数和所述第一随机数进行运算得到第二签名部分,所述第五预设规则为模减运算。
6.根据权利要求5所述的数字签名方法,其特征在于,
所述第三预设规则为s2=(k+r)modn,s2为第二中间数;
所述第四预设规则为s3=(s1s2r2)mod n,s1为第一中间数,s3为第三中间数;
所述第五预设规则为s=(s3-r)mod n,s为第二签名部分。
7.根据权利要求1所述的数字签名方法,其特征在于,所述基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分,包括:
基于第三预设规则对所述第一签名部分和所述第一随机数进行运算得到第二中间数,所述第三预设规则为模加运算;
基于第四预设规则对所述第一中间数和所述第二中间数进行运算得到第三中间数,所述第四预设规则为模乘运算;
基于第五预设规则对所述第三中间数和所述第一随机数进行运算得到第二签名部分,所述第五预设规则为模减运算。
8.根据权利要求7所述的数字签名方法,其特征在于,
所述第三预设规则为s2=(k+r)modn,s2为第二中间数;
所述第四预设规则为s3=(s1s2)mod n,s1为第一中间数,s3为第三中间数;
所述第五预设规则为s=(s3-r)mod n,s为第二签名部分。
9.一种数字签名***,其特征在于,所述签名***应用于SM2算法加密装置中,所述***包括:
获取模块,用于获取签名密钥,消息摘要,第一随机数,椭圆曲线点;
第一中间数运算模块,用于基于第一预设规则,对所述签名密钥进行运算得到第一中间数,所述第一预设规则包括逆运算;
第一签名部分运算模块,用于第二基于所述消息摘要和所述椭圆曲线点运算得到第一签名部分;
第二签名部分运算模块,用于基于第二预设规则,对所述第一中间数、第一签名部分及第一随机数进行运算得到第二签名部分;
数字签名确定模块,用于基于所述第一签名部分和所述第二签名部分确定数字签名。
10.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至8任一项所述的数字签名方法。
CN202111565694.XA 2021-12-20 2021-12-20 一种数字签名方法、***及设备 Pending CN114257380A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111565694.XA CN114257380A (zh) 2021-12-20 2021-12-20 一种数字签名方法、***及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111565694.XA CN114257380A (zh) 2021-12-20 2021-12-20 一种数字签名方法、***及设备

Publications (1)

Publication Number Publication Date
CN114257380A true CN114257380A (zh) 2022-03-29

Family

ID=80796131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111565694.XA Pending CN114257380A (zh) 2021-12-20 2021-12-20 一种数字签名方法、***及设备

Country Status (1)

Country Link
CN (1) CN114257380A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844650A (zh) * 2022-05-24 2022-08-02 北京宏思电子技术有限责任公司 一种设备签名方法及***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120069994A1 (en) * 2010-09-16 2012-03-22 Stmicroelectronics S.R.L. Method for genertaing a digital signature
CN103427997A (zh) * 2013-08-16 2013-12-04 西安西电捷通无线网络通信股份有限公司 一种生成数字签名的方法及装置
CN103546288A (zh) * 2013-09-25 2014-01-29 中国科学院数据与通信保护研究教育中心 Sm2数字签名生成算法的实现方法及装置
CN109309569A (zh) * 2018-09-29 2019-02-05 北京信安世纪科技股份有限公司 基于sm2算法的协同签名的方法、装置及存储介质
CN112118111A (zh) * 2020-09-04 2020-12-22 中国科学院大学 一种适用于门限计算的sm2数字签名方法
US20210028946A1 (en) * 2019-07-25 2021-01-28 EMC IP Holding Company LLC Blinding Techniques for Protection of Private Keys in Message Signing Based on Elliptic Curve Cryptography
CN113158258A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于椭圆曲线的协同签名方法、装置和***

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120069994A1 (en) * 2010-09-16 2012-03-22 Stmicroelectronics S.R.L. Method for genertaing a digital signature
CN103427997A (zh) * 2013-08-16 2013-12-04 西安西电捷通无线网络通信股份有限公司 一种生成数字签名的方法及装置
CN103546288A (zh) * 2013-09-25 2014-01-29 中国科学院数据与通信保护研究教育中心 Sm2数字签名生成算法的实现方法及装置
CN109309569A (zh) * 2018-09-29 2019-02-05 北京信安世纪科技股份有限公司 基于sm2算法的协同签名的方法、装置及存储介质
US20210028946A1 (en) * 2019-07-25 2021-01-28 EMC IP Holding Company LLC Blinding Techniques for Protection of Private Keys in Message Signing Based on Elliptic Curve Cryptography
CN112118111A (zh) * 2020-09-04 2020-12-22 中国科学院大学 一种适用于门限计算的sm2数字签名方法
CN113158258A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于椭圆曲线的协同签名方法、装置和***

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844650A (zh) * 2022-05-24 2022-08-02 北京宏思电子技术有限责任公司 一种设备签名方法及***
CN114844650B (zh) * 2022-05-24 2023-12-01 北京宏思电子技术有限责任公司 一种设备签名方法及***

Similar Documents

Publication Publication Date Title
Bauer et al. Horizontal collision correlation attack on elliptic curves: –Extended Version–
EP3424175B1 (en) Converting a boolean masked value to an arithmetically masked value for cryptographic operations
US7603560B2 (en) Method and apparatus for digital signature authentication
US7908641B2 (en) Modular exponentiation with randomized exponent
EP2813029B1 (en) System and method for generating and protecting cryptographic keys
CN107004084B (zh) 用于加密操作的乘法掩码
EP3874364A1 (en) Constant time secure arithmetic-to-boolean mask conversion
Al-Kadei et al. Speed up image encryption by using RSA algorithm
JP2004501385A (ja) 楕円曲線暗号化方法
CN113158258A (zh) 一种基于椭圆曲线的协同签名方法、装置和***
CN114257380A (zh) 一种数字签名方法、***及设备
JP2006259735A (ja) Simd処理を用いた楕円曲線点8倍化
Arunachalam et al. FPGA implementation of time-area-efficient Elliptic Curve Cryptography for entity authentication
CN112906059B (zh) 代理签名和验证方法、装置、***及存储介质
CN112769539B (zh) 一种生成rsa密钥并协同rsa签名和解密的方法及***
CN114567448A (zh) 一种协同签名方法以及协同签名***
CN117910024B (zh) 密钥生成方法及装置、电子设备和存储介质
EP4024755B1 (en) Secured performance of an elliptic curve cryptographic process
WO2023151171A1 (zh) 抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置
CN117278213B (zh) 基于多项式承诺的方法、电子设备及可读存储介质
CN117155539B (zh) 模拟射频电路网表的混淆及其复原方法、装置、终端及介质
Han et al. Algorithm-Based Countermeasures against Power Analysis Attacks for Public-Key Cryptography SM2
CN115426113A (zh) 一种数字签名运算方法及知识产权ip核
US20230396436A1 (en) Masked decomposition of polynomials for lattice-based cryptography
CN116827547A (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