CN108259506A - Sm2白盒密码实现方法 - Google Patents

Sm2白盒密码实现方法 Download PDF

Info

Publication number
CN108259506A
CN108259506A CN201810133887.XA CN201810133887A CN108259506A CN 108259506 A CN108259506 A CN 108259506A CN 201810133887 A CN201810133887 A CN 201810133887A CN 108259506 A CN108259506 A CN 108259506A
Authority
CN
China
Prior art keywords
signature
parameter
rows
basic
certificate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810133887.XA
Other languages
English (en)
Other versions
CN108259506B (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong 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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201810133887.XA priority Critical patent/CN108259506B/zh
Publication of CN108259506A publication Critical patent/CN108259506A/zh
Application granted granted Critical
Publication of CN108259506B publication Critical patent/CN108259506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

一种SM2白盒密码实现方法,以签名参数对消息进行签名后采用验证参数对消息与签名进行验证,其中:签名参数中包含由SM2椭圆曲线公钥密码算法为基础生成的基本参数以及由基本参数构建得到的签名参数表;验证参数中包含SM2椭圆曲线公钥密码算法为基础生成的基本参数以及由基本参数构建得到的验证参数表。本发明可应用于任何需使用数字签名方案的场景,实现数据来源的确认、数据完整性的保护、交易信息签名者不可抵赖性等安全需求,能保证攻击者不能破解签名私钥。

Description

SM2白盒密码实现方法
技术领域
本发明涉及的是一种信息安全领域的数字签名技术,具体是设计了国家商用密码SM2签名算法的一种白盒实现方法,该方法特别适用于各种手机钱包、第三方支付平台等软件。
背景技术
SM2是国家密码管理局发布的椭圆曲线公钥密码算法,可用于公钥加密、数字签名等。在实际应用中,攻击者通过一些技术手段可对SM2算法实施白盒攻击,破解签名私钥。例如,攻击者通过木马植入、分析程序漏洞、盗取移动终端等途径,可对移动终端上的SM2算法进行二进制追踪、观察算法执行结果、控制算法使用随机数、开展程序静态分析、修改和改变运行状态等,破解签名私钥,伪造对虚假消息的签名。
发明内容
本发明针对现有技术存在的上述不足,提出一种SM2签名算法的白盒实现方法,该方法的安全性强于已有方案,即在白盒攻击下签名私钥不可破解,这种不可破解性具有严格的理论保证。因此,本方法首先可应用于任何需使用数字签名方案的场景,实现数据来源确认、数据完整性保护、消息与签名不可抵赖等安全需求。本发明特别适用于签名算法运行于移动终端的场景。在移动终端存在程序漏洞、木马侵入、设备被盗取等安全风险下,本方法仍能保证攻击者不能破解签名私钥。
本发明是通过以下技术方案实现的:
本发明以签名参数对消息进行签名后采用验证参数对消息与签名进行验证,其中:签名参数中包含由SM2椭圆曲线公钥密码算法为基础生成的基本参数以及由基本参数构建得到的签名参数表;验证参数中包含SM2椭圆曲线公钥密码算法为基础生成的基本参数以及由基本参数构建得到的验证参数表。
所述的SM2椭圆曲线公钥密码算法,即国家密码管理局颁布的《SM2椭圆曲线公钥密码算法》。
所述的基本参数包括:数域Fq、椭圆曲线方程E、SM2椭圆曲线基点G=(xG,yG)、签名私钥dA、验证公钥PA=[dA]·G,其中:[k]表示kmodn,n为基点G在椭圆曲线群中的阶。
所述的构建是指:使用SM2椭圆曲线基点G、签名私钥dA、验证公钥PA、n、新增参数λ生成第一签名参数表T1、第二签名参数表T2、第三签名参数表T3、验证参数表T4,生成表后删除dA
所述的新增参数λ为第一签名参数表T1、第二签名参数表T2的行数,其值优选为大于2log(nN)的整数,其中:N为一个签名私钥在其使用周期内可能签名的消息数上界,log为底数为2的对数运算。
所述的签名参数是指:(G,PA,T1,T2,T3),即SM2椭圆曲线基点G、验证公钥PA、第一签名参数表T1、第二签名参数表T2、第三签名参数表T3
所述的验证参数是指:(G,PA,T4),即基点G、验证公钥PA和验证参数表T4
所述的第一签名参数表T1共λ行,其第i行值为[ui]·G,其中:i=1,2,…,λ,ui是Zn上独立均匀随机数,Zn为模n剩余类,·为椭圆曲线群上点乘运算。
所述的第二签名参数表T2共λ行,其第i行值为[(1+dA)-1·ui],其中:i=1,2,…,λ,u1,…,uλ即是生成T1时所用的随机数。
所述的第三签名参数表T3共l行,其中l表示n的二进制表示长度,第i行值为[(1+dA)-1·dA·2i-1+randi],其中:i=1,2,…,l,randi是Zn上独立均匀随机数。
所述的验证参数表T4共l行,其第i行值为[randi](G+PA),其中:i=1,2,…,l,rand1,…,randl即是生成T3时所用的随机数。
所述的签名过程:使用签名参数(G,PA,T1,T2,T3)对消息M进行签名,生成签名(r,s'),具体步骤包括:
1)按文档《SM2椭圆曲线公钥密码算法》定义生成ZA,计算其中:H为杂凑函数;
所述的ZA是用户的可辨识标识、部分椭圆曲线系统参数、用户公钥的杂凑值。
2)均匀随机生成λ比特0-1随机串k,将k表示为k=kλkλ-1......k1;对所有满足ki=1的i值,将表T1中对应的i行值相加,得到
3)计算r=(e+x1)modn,当r=0或[r]·G+(x1,y1)=0EC或(x1,y1)=[r]·PA时重执行步骤2),否则执行步骤4),其中:0EC指椭圆曲线群的幺元;
4)对所有满足ki=1的i值,将表T2中对应的i行值相加,得到
5)记r的二进制表示为rlrl-1......r1,对所有满足ri=1的i值,将表T3中对应的i行值相加得计算s'=s1-s2',生成签名(r,s')。
所述的验证过程:使用验证参数(G,PA,T4)对消息与签名对(M,(r,s'))进行验证,具体步骤包括:
1)当r不属于[1,n-1]时签名验证不通过,否则令计算
2)计算[s']·(G+PA)+[r]·PA。记r的二进制表示rlrl-1......r1,对所有满足ri=1的i值,将表T4中对应的i行值相加,得到[δ]·(G+PA),其中:
3)计算(x1,y1)=[s']·(G+PA)+[r]·PA+[δ]·(G+PA),当(x1,y1)=[r]·PA或[r]·G+(x1,y1)=0EC时签名验证不通过,否则执行步骤4);
4)计算R=(e+x1)modn,当R=r时签名验证通过,否则验证不通过。
技术效果
与现有SM2签名算法标准实现相比,本发明具有白盒攻击下的签名私钥不可破解性,对任意攻击者,即使该攻击者能获得本白盒方法的签名方和验证方程序(含签名参数和验证参数),则无论其进行何种攻击与分析(如对软件实现控制代码执行攻击,对硬件实现进行电路分析、侧信道攻击等),该攻击者均不能计算出签名私钥。
附图说明
图1为实施例1示意图。
具体实施方式
实施例1
如图1所示,本实施例涉及签名方和验证方,签名方生成白盒方法所有参数,将验证参数发给验证方,本地保留签名参数。当需对消息M签名时,签名方使用签名参数生成签名(r,s'),将消息与签名发给验证方,验证方使用验证参数对签名的有效性进行验证。在典型的移动支付应用中,签名方为智能移动终端,验证方为第三方支付平台,消息M为单笔交易记录,签名方对其发起的交易记录签名,将交易记录和签名发给验证方,验证方验证签名的有效性,实现交易记录的真实性和不可抵赖性等。
本实施例签名和验证过程具体实施如下,签名方预先生成基本参数:数域Fq、椭圆曲线方程E、椭圆曲线基点G、签名私钥dA、验证公钥PA、λ,通过基本参数生成表T1,T2,T3,T4,生成表后删除dA。以(G,PA,T1,T2,T3)作为签名参数,其中T1,T2,T3不公开,公开(G,PA,T4)作为验证参数。签名方通过签名参数对消息进行签名后将消息与签名发送至验证方,验证方使用验证参数对签名进行验证。
本实施例具体包括以下步骤:
步骤1:按照《SM2椭圆曲线公钥密码算法》设置数域Fq、椭圆曲线方程E、基点G=(xG,yG),生成其它基本参数;由基本参数生成签名参数与验证参数;杂凑函数H使用商用密码标准SM3算法,该算法参见《SM3密码杂凑算法》。确定签名方标识ID,ZA按《SM2椭圆曲线公钥密码算法》定义生成。
步骤2:对消息M,签名方按发明内容中所述签名步骤由签名参数(G,PA,T1,T2,T3)生成签名(r,s'),将消息M与签名(r,s')发给验证方。
步骤3:收到消息M与签名(r,s')时,验证方按发明内容所述验证步骤由验证参数(G,PA,T4)验证(r,s')的有效性。
与现有SM2签名算法标准实现相比,本方法在白盒攻击下签名私钥dA不可破解,而SM2签名算法的标准实现在白盒攻击下是不安全的。攻击者可实施多种白盒攻击破解签名私钥,例举三种破解方式:
第一,当SM2签名算法的标准实现对签名密钥dA未作任何保护时,若攻击者能观测内存,则其可直接读取dA
第二,考察现有SM2签名算法的运行:对于消息M,SM2首先计算计算均匀生成随机数k∈[1,n-1];计算(x1,y1)=[k]·G;计算r=(e+x1)modn,若r=0或r+k=n,则返回至选择随机数k的步骤再重新计算,否则计算s=(1+dA)-1·(k-r·dA)modn,若s=0,则返回至选择随机数k的步骤再重新计算,否则最终签名为(r,s)。若攻击者能观测到SM2算法生成(r,s)用的随机数k,则可如下破解dA(即使dA被保护):由s=(1+dA)-1·(k-r·dA)modn,得(1+dA)·s=(k-r·dA)modn,进而(r+s)·dA=(k-s)modn,因此dA=(k-s)·(r+s)-1modn,dA被破解。
第三,当攻击者能控制SM2签名算法使用同一随机数k对两消息M1和M2进行签名(即使k被保护),则可如下破解dA(即使dA被保护):令(r1,s1)为M1的签名、(r2,s2)为M2的签名(注此处s1是现有SM2签名算法输出s的实施例,而不是指本方法内容中的s1),则s1=[(1+dA)-1(k-r1dA)]、s2=[(1+dA)-1(k-r2dA)],则[s1(1+dA)]=[k-r1dA]、[s2(1+dA)]=[k-r2dA],两式相减消去k可得[(s1-s2)(1+dA)]=[(r2-r1)dA],移项有[s1-s2]=[(r2+s2-r1-s1)dA],因此计算出dA=[(r2+s2-r1-s1)-1(s1-s2)],dA被破解。
而本方法在白盒攻击下签名私钥dA不可破解,dA的不可破解性可严格归约至椭圆曲线离散对数问题的困难性,因此具有可证明安全性。椭圆曲线离散对数问题(ECDLP)定义如下:给定基点G=(xG,yG)和[u]·G,其中u是1到n-1之间随机数,目标是计算u。目前针对ECDLP问题只有指数算法,即当前最快的计算ECDLP问题的算法运行时间是n的二进制表示长度的指数级。例如,当选择SM2的推荐参数时,n可表示为256位二进制数,即n的二进制表示长度为256,则当前最快计算ECDLP问题算法的时间复杂度为2256级,因此学术界认为ECDLP是困难问题。本方案具有以下安全性:任何攻击者在获得方案所有参数(G,PA,T1,T2,T3,T4)(包含签名方和验证方所有参数)后如果能在有效时间破解出签名私钥dA,则ECDLP问题可在有效时间内计算。但这与ECDLP问题的困难性矛盾,因而不存在能破解签名私钥的攻击者。
通过以下方法取得可证安全性:当给定基点G=(xG,yG)和[u]·G要计算u时,利用G和[u]·G构造出符合要求的随机(PA,T1,T2,T3,T4)(针对某未知的签名私钥dA,dA与u可有效转换),因此,如果存在攻击算法在获得(G,PA,T1,T2,T3,T4)时能破解dA,则可调用该算法,给其输入(G,PA,T1,T2,T3,T4)得到dA,再由dA计算出u,从而解决ECDLP问题,导出矛盾。
由签名私钥的不可破解性有如下结论:对任意攻击者,即使该攻击者能获得本方法的签名方和验证方程序(含签名参数和验证参数),则无论其进行何种攻击与分析(如对软件实现控制代码执行攻击,对硬件实现进行电路分析、侧信道攻击等),该攻击者均不能计算出dA
实施例2
在本实施例中,签名方预先生成基本参数:数域Fq、椭圆曲线方程E、椭圆曲线基点G、签名私钥dA、验证公钥PA、λ,通过基本参数生成表T1,T2,T3,T4,生成表后删除dA。以(G,PA,T1,T2,T3)作为签名参数,其中T1,T2,T3不公开,公开(G,PA,T4)作为验证参数。签名方通过签名参数对消息进行签名后输出消息与签名至验证方,验证方使用验证参数对签名进行验证。
本实施例具体包括以下步骤:
步骤1:按照《SM2椭圆曲线公钥密码算法》设置数域Fq、椭圆曲线方程E、基点G=(xG,yG),生成其它基本参数;由基本参数生成签名参数与验证参数;杂凑函数H使用商用密码标准SM3算法,该算法参见《SM3密码杂凑算法》,其输入是长度小于264比特的消息,输出是长度为256比特的杂凑值;签名方标识ID选为“1234567812345678”,ZA按《SM2椭圆曲线公钥密码算法》定义生成。
签名方签名消息M=“The xel'naga are a seemingly extinct race ofextragalactic scientists.They arrived in the Milky Way Galaxy in theirworldships,and there they began manipulating various species,intending tocreate something with purity of form and purity of essence,as a necessarypart of their life cycle.They first modified the protoss,an intelligentpsychic species they discovered on the outlying world of Aiur.To their joy,they discovered the protoss had both purity of form and essence.However,thexel'naga pushed their creation too far,causing their psychic link todisappear and their purity of essence to vanish.The protoss fell into madnessas the xel'naga abandoned them.”
M长度为679字节(注:M消息末有一个空格)。
步骤2:随机生成私钥dA,计算公钥PA=[dA]·G=(px,py),具体值如下:
dA
=CE8AF24E40BF5167F0831CE40FEF5E94C8430793972DF60E69CB4D1DA8302FD8
px
=62534F07D3FBB38B3289C29E852AE89BD41BBF7627FF34EDA1B075B6BD171B75
py
=5FFE87DB80787516699849D45BE8A60D4D7318F2A2C24DCA3340DF446AE1455A
选λ=560,按发明内容所述生成表T1,T2,T3,T4,由于表格行数较大,因此T1,T2,T3,T4的具体内容这里省略,注:本实施例的输出签名依赖于T1,T2,T3,T4的值。
在签名中,随机生成k
=8CEE95B7FE75DC0108C38FF7549192CC534ABE6B168EE6A20B53856B2DD4E5761E63326A472498A3EB40D7A8C497AAF00F7CFD4FF644A7B35DF31B05FD6214856B94FA2D425C
步骤3:生成消息M的签名(r,s')如下:
r=3B9A2269A23CBC7DBBF32C0B60911C8E7F1EF7C70AFE46FEBECA9CEEFD4C0CF9
s'
=78BA9AA25260AF8C3597368AFAE5EE0604D5A7CF6EA123D69053F8D5AA96D399
步骤4:签名方将消息M与签名(r,s')发给验证方。
步骤5:当验证方收到签名方的消息M与签名(r,s')时,采用验证算法验证签名,在本实施例中验证通过。
针对消息M,本实施例在λ不同取值下、在多个不同手机平台上进行多次签名和验证算法,统计签名与验证时间,实验结果如下所示:
上述手机配置如下:
设备 CPU 内存 操作系统
摩托Moto G ARMv7 Cortex-A7 1G Android 7.1.2
LG Nexus 5 ARMv7 Krait 400 2G Android 5.0
华为荣耀4A ARMv7 MSM8909 2G Android 5.1
三星Galaxy S7 edge ARMv8 MSM8996 3G Android 7.0
苹果iPhone 6 ARM v8 1G iOS 8.4
苹果iPhone 5c ARM v7 1G iOS 9.0.1
笔记本电脑 Intel i5-6200U 2G Ubuntu 16.04
服务器E5 Intel E5-2643 32G Ubuntu 14.04
从上表中,本方法的签名与验证时间符合应用需求;与SM2标准实现运行时间对比来看,本方法的签名时间约是SM2标准实现的2-3倍,验证时间约为2倍。在此强调的是,本方法优点是通过在原有SM2算法上增加若干保护机制使得在白盒攻击下签名私钥dA不可破解。
实施例3
相比较于实施例1,本实施例中生成表格T1,T2,T3,T4之后,改变表格行之间的对应关系。例如,使用排序算法f和g分别对表格T2和T4的行进行排序。在查表T2或T4过程中,对于查找的第i行,需要转为查找第f(i)或g(i)行。
实施例4
相比较于实施例1,本实施例中生成表格T1,T2,T3,T4之后,可使用置换改变表格行。例如,使用置换算法f更新表格T2的行。在查表T2过程中,对于查找的第i行,查找第f(i)行。
实施例5
在验证方和签名方彼此信任、共同生成签名的实际应用时,验证方和签名方可共同合作生成表格T1,T2,T3,T4
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。

Claims (11)

1.一种SM2白盒密码实现方法,其特征在于,以签名参数对消息进行签名后采用验证参数对消息与签名进行验证,其中:签名参数中包含由SM2椭圆曲线公钥密码算法为基础生成的基本参数以及由基本参数构建得到的签名参数表;验证参数中包含SM2椭圆曲线公钥密码算法为基础生成的基本参数以及由基本参数构建得到的验证参数表。
2.根据权利要求1所述的方法,其特征是,所述的基本参数包括:数域Fq、椭圆曲线方程E、SM2椭圆曲线基点G=(xG,yG)、n、签名私钥dA、验证公钥PA=[dA]·G,其中:[k]表示kmodn,n为基点G在椭圆曲线群中的阶。
3.根据权利要求1所述的方法,其特征是,所述的构建是指:使用SM2椭圆曲线基点G、签名私钥dA、验证公钥PA、n、新增参数λ生成第一签名参数表T1、第二签名参数表T2、第三签名参数表T3、验证参数表T4,生成表后删除dA
4.根据权利要求3所述的方法,其特征是,所述的新增参数λ为第一签名参数表T1、第二签名参数表T2的行数,其值优选为大于2log(nN)的整数,其中:N为一个签名私钥在其使用周期内可能签名的消息数上界。
5.根据权利要求1所述的方法,其特征是,所述的签名参数是指:(G,PA,T1,T2,T3),即SM2椭圆曲线基点G、验证公钥PA、第一签名参数表T1、第二签名参数表T2、第三签名参数表T3
所述的验证参数是指:(G,PA,T4),即基点G、验证公钥PA和验证参数表T4
6.根据上述任一权利要求所述的方法,其特征是,所述的第一签名参数表T1共λ行,其第i行值为[ui]·G,其中:i=1,2,…,λ:独立均匀随机选择数ui∈Zn,Zn为模n剩余类,·为椭圆曲线群上点乘运算;
所述的第二签名参数表T2共λ行,其第i行值为[(1+dA)-1·ui],其中:i=1,2,…,λ,u1,…,uλ即是生成T1时所用的随机数;
所述的第三签名参数表T3共l行,其中l表示n的二进制表示长度,第i行值为[(1+dA)-1·dA·2i-1+randi],其中:i=1,2,…,l,独立均匀随机选择数randi∈Zn
所述的验证参数表T4共l行,其第i行值为[randi](G+PA),其中:i=1,2,…,l,rand1,…,randl即是生成T3时所用的随机数。
7.根据权利要求6所述的方法,其特征是,使用签名参数(G,PA,T1,T2,T3)对消息M进行签名,生成签名(r,s'),具体步骤包括:
1)按文档《SM2椭圆曲线公钥密码算法》定义生成ZA,计算其中:H为杂凑函数;
2)均匀随机生成λ比特0-1随机串k,将k表示为k=kλkλ-1......k1;对所有满足ki=1的i值,将表T1中对应的i行值相加,得到
3)计算r=(e+x1)modn,当r=0或[r]·G+(x1,y1)=0EC或(x1,y1)=[r]·PA时重执行步骤2),否则执行步骤4),其中:0EC指椭圆曲线群的幺元;
4)对所有满足ki=1的i值,将表T2中对应的i行值相加,得到
5)记rlrl-1......r1为r的二进制表示,对所有满足ri=1的i值,将表T3中对应的i行值相加得到计算s'=s1-s2'并生成签名(r,s')。
8.根据权利要求6所述的方法,其特征是,使用验证参数(G,PA,T4)对消息与签名对(M,(r,s'))进行验证,具体步骤包括:
1)当r不属于[n-1]时签名验证不通过,否则令计算
2)计算[s']·(G+PA)+[r]·PA。记rlrl-1......r1为r的二进制表示,对所有满足ri=1的i值,将表T4中对应的i行值相加,得到[δ]·(G+PA),其中:
3)计算(x1,y1)=[s']·(G+PA)+[r]·PA+[δ]·(G+PA),当(x1,y1)=[r]·PA或[r]·G+(x1,y1)=0EC时,签名验证不通过,否则执行步骤4);
4)计算R=(e+x1)modn,当R=r时签名验证通过,否则验证不通过。
9.根据权利要求7或8所述的方法,其特征是,使用排序算法f和g分别对表格T2和T4的行进行排序,当需要查找第i行条目时,转为查找第f(i)或g(i)行。
10.根据权利要求7或8所述的方法,其特征是,使用置换算法f更新表格T2的行,当需要查找第i行条目时,查找第f(i)行。
11.一种实现上述任一权利要求所述方法的系统,其特征在于,包括:签名方和验证方,其中:签名方包含用于保存签名参数的存储模块以及用于签名的计算模块;验证方包含用于保存验证参数的存储模块和用于验证签名的计算模块。
CN201810133887.XA 2018-02-08 2018-02-08 Sm2白盒密码实现方法 Active CN108259506B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810133887.XA CN108259506B (zh) 2018-02-08 2018-02-08 Sm2白盒密码实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810133887.XA CN108259506B (zh) 2018-02-08 2018-02-08 Sm2白盒密码实现方法

Publications (2)

Publication Number Publication Date
CN108259506A true CN108259506A (zh) 2018-07-06
CN108259506B CN108259506B (zh) 2019-04-26

Family

ID=62745008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810133887.XA Active CN108259506B (zh) 2018-02-08 2018-02-08 Sm2白盒密码实现方法

Country Status (1)

Country Link
CN (1) CN108259506B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109672539A (zh) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统
CN110971409A (zh) * 2019-12-03 2020-04-07 成都卫士通信息产业股份有限公司 椭圆曲线上倍点运算的白盒实现方法、装置、设备及介质
CN110990896A (zh) * 2019-12-03 2020-04-10 成都卫士通信息产业股份有限公司 基于sm2白盒的数字签名装置、方法、存储介质及设备
WO2021025631A1 (en) * 2019-08-05 2021-02-11 Securify Bilisim Teknolojileri Ve Guvenligi Egt. Dan. San. Ve Tic. Ltd. Sti. A method for generating digital signatures
CN113132110A (zh) * 2019-12-31 2021-07-16 上海证锘信息科技有限公司 抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475473A (zh) * 2013-08-26 2013-12-25 广东数字证书认证中心有限公司 数字签名方法和设备、数字签名中密码运算方法和服务器
US20140153716A1 (en) * 2008-03-05 2014-06-05 Irdeto Corporate B.V. White-box implementation
CN104168115A (zh) * 2014-08-19 2014-11-26 同济大学 前向安全的不可拆分数字签名方法
CN104852805A (zh) * 2015-05-11 2015-08-19 中国科学院软件研究所 一种抵抗基于格的错误攻击的sm2签名算法防护方法
CN106612182A (zh) * 2016-12-22 2017-05-03 中国电子科技集团公司第三十研究所 一种基于余数系统的sm2白盒数字签名实现方法
CN106685662A (zh) * 2016-12-23 2017-05-17 中国电子科技集团公司第三十研究所 一种基于余数系统的商密sm2加密算法的白盒软件实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140153716A1 (en) * 2008-03-05 2014-06-05 Irdeto Corporate B.V. White-box implementation
CN103475473A (zh) * 2013-08-26 2013-12-25 广东数字证书认证中心有限公司 数字签名方法和设备、数字签名中密码运算方法和服务器
CN104168115A (zh) * 2014-08-19 2014-11-26 同济大学 前向安全的不可拆分数字签名方法
CN104852805A (zh) * 2015-05-11 2015-08-19 中国科学院软件研究所 一种抵抗基于格的错误攻击的sm2签名算法防护方法
CN106612182A (zh) * 2016-12-22 2017-05-03 中国电子科技集团公司第三十研究所 一种基于余数系统的sm2白盒数字签名实现方法
CN106685662A (zh) * 2016-12-23 2017-05-17 中国电子科技集团公司第三十研究所 一种基于余数系统的商密sm2加密算法的白盒软件实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHONG ZENG 等: "An Improved Side-Channel Attack based on Support Vector Machine", 《2014 10TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY》 *
肖雅莹: "白盒密码及AES与SMS4算法的实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109672539A (zh) * 2019-03-01 2019-04-23 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统
CN109672539B (zh) * 2019-03-01 2021-11-05 深圳市电子商务安全证书管理有限公司 Sm2算法协同签名及解密方法、装置及系统
WO2021025631A1 (en) * 2019-08-05 2021-02-11 Securify Bilisim Teknolojileri Ve Guvenligi Egt. Dan. San. Ve Tic. Ltd. Sti. A method for generating digital signatures
CN110971409A (zh) * 2019-12-03 2020-04-07 成都卫士通信息产业股份有限公司 椭圆曲线上倍点运算的白盒实现方法、装置、设备及介质
CN110990896A (zh) * 2019-12-03 2020-04-10 成都卫士通信息产业股份有限公司 基于sm2白盒的数字签名装置、方法、存储介质及设备
CN110971409B (zh) * 2019-12-03 2023-05-23 成都卫士通信息产业股份有限公司 椭圆曲线上倍点运算的白盒实现方法、装置、设备及介质
CN113132110A (zh) * 2019-12-31 2021-07-16 上海证锘信息科技有限公司 抵抗对区块链用户私钥白盒攻击的椭圆曲线数字签名方案

Also Published As

Publication number Publication date
CN108259506B (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN108259506B (zh) Sm2白盒密码实现方法
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
Khan et al. Chaotic hash-based fingerprint biometric remote user authentication scheme on mobile devices
Kasianchuk et al. Rabin's modified method of encryption using various forms of system of residual classes
US10110386B2 (en) Implicitly certified digital signatures
CN106357701A (zh) 云存储中数据的完整性验证方法
CN112560091B (zh) 数字签名方法、签名信息的验证方法、相关装置及电子设备
CN111130795A (zh) 一种基于区块链技术的多级签名方法
DE102019108095A1 (de) Ausführen einer kryptografischen Operation
US20220131707A1 (en) Digital Signature Method, Signature Information Verification Method, Related Apparatus and Electronic Device
CN109831306B (zh) 基于多个密钥池的抗量子计算环签名方法和系统
EP3020159A1 (en) Electronic signature system
CN113704357A (zh) 一种基于区块链的智慧城市数据共享方法及系统
CN103220146A (zh) 基于多变量公钥密码体制的零知识数字签名方法
Yang et al. Fine-grained outsourced data deletion scheme in cloud computing
CN105787390A (zh) 一种数据完整性的验证方法及其系统
Tian et al. DIVRS: Data integrity verification based on ring signature in cloud storage
KR102444193B1 (ko) Ring-LWR기반 양자내성 서명 방법 및 그 시스템
Chande et al. An improvement of a elliptic curve digital signature algorithm
Stallings Digital signature algorithms
Shinohara et al. Trends in Post-Quantum Cryptography: Cryptosystems for the Quantum Computing Era
Wang et al. An improved digital signature algorithm and authentication protocols in cloud platform
CN111368317A (zh) 一种计算机数据加密系统及方法
CN109687967B (zh) 电子签名方法和设备
CN110661816A (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