CN106452789B - 一种多方位防侧信道攻击的签名方法 - Google Patents
一种多方位防侧信道攻击的签名方法 Download PDFInfo
- Publication number
- CN106452789B CN106452789B CN201610943335.6A CN201610943335A CN106452789B CN 106452789 B CN106452789 B CN 106452789B CN 201610943335 A CN201610943335 A CN 201610943335A CN 106452789 B CN106452789 B CN 106452789B
- Authority
- CN
- China
- Prior art keywords
- key element
- random number
- bit
- result
- 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
Links
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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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
- H04L9/3249—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 using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种多方位防侧信道攻击的签名方法。该方法中包含的技术或类似技术对底数进行掩码,并获得RSA签名或其它公钥系统签名。方案中同时获得两个模幂结果,且幂指数互为反码。模幂实现时,使用了防止输出错误数据的校验技术;不使用跳转语句的模幂算法,操作运算过程中数据或运算结果数据汉明重量相等的技术。本发明有效保护了RSA STD运算过程中已知的容易被攻击的步骤。本发明提供的模幂校验,可完整的使用到RSA CRT运算当中,同时实现模幂及补码幂的算法可类似的移植到SM2的点乘运算中。模幂是否被攻击的校验可以类似的移植到SM2的点乘运算中。
Description
技术领域
本发明涉及信息安全领域,特别涉及一种多方位防侧信道攻击的签名方法。
背景技术
RSA公钥加密算法是信息安全领域中比较主流的公钥密码技术。基于RSA实现的各种Key及智能卡已经广泛应用于金融、通信、社保、交通等各个领域。传统对RSA的攻击主要基于数学中大素数分解算法,而近年来侧信道攻击发展迅速,各种攻击手段层出不穷。
以往对RSA签名的防护主要考虑SPA、DPA、CPA、double攻击及错误攻击。为防止以上攻击,现有方案在RSA签名的模幂计算时一般都掩码指数和底数,使用类似蒙哥马利ladder的方式寻求模乘、模平方在运行时完全一样,并通过计算两次模幂的方式防止错误攻击。但所有的方案均无法防护以上提出的所有攻击方法。并且由于近来攻击工具及攻击方法的改进,以往类似蒙哥马利ladder的方案在实现上很容易因为跳转而被SPA攻击出结果,且如果操作数的汉明重量不一致也容易被攻击。
发明内容
本发明的目的是提供一种多方位防侧信道攻击的签名方法。
本发明提供了一种多方位防侧信道攻击的签名方法和方案,该方法可有效防御对RSA签名的攻击。模幂实现过程中,同时计算出指数的模幂及指数补码的模幂,即一次模幂过程计算出两个模幂的值,且保证功耗上能量均衡。当模幂受到错误攻击时,通过数学运算能判断出模幂运算的数据是否正确。为避免求逆,本发明还提供了私钥负值的STD形式。
为了实现上述目的,本发明提供一种多方位防侧信道攻击的签名方法和方案,包含步骤:
步骤一,输入RSA的模数N、消息M、私钥元素d、公钥元素e,私钥元素d的长度为t比特,公钥元素e的长度小于等于N的比特长,且保证M小于N;
步骤二,生成长度为t比特的随机数trng1,并用所述随机数trng1先后乘公钥元素e和私钥元素d,该运算结果减去当前使用的随机数trng1,并减去私钥元素d,得到数据z1;
步骤三,生成长度为t比特的随机数trng2,以所述随机数trng2为底数,步骤b中得到的数据z1为指数,比特长度为bitlen比特,执行如下操作:
设置3块t比特的空间分别为S0,S1,A,三块空间分别赋值为;S0=S1=1,A=trng2;
i从0到bitlen执行如下过程:
①获得z1的当前比特值;
②如果当前比特为0则计算S0=S0*A,如果当前比特为1,则执行S1=S1*A;
③对A平方并放入A中;
校验S0*S1*X-A是否为0,如果不为0,退出;
步骤四,步骤三中输出结果分别记为S0,S1;
步骤五,生成长度为t比特的随机数trng3,并用该随机数先后乘公钥元素e和私钥元素d,该运算结果减去当前使用的随机数trng3,并加上私钥元素d,得到数据z2;
步骤六,N为模数,trng2为乘法因子对摘要M进行模乘掩码,得到结果记为maskM;
步骤七,以maskM为底数,z2位指数,执行如3中a、b、c操作,获得结果S'0,S'1;
步骤八,计算S1*S'1,并以该结果为底数,公钥元素e为指数,N为模数,执行3中a、b、c三步,得到输出结果S”0,S”1,如果S”1=M,则输出S1*S'1,或者不输出数据。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明的有益效果是,对比大部分防攻击方案,该方案同时掩码了指数和底数,能防护已知SPA(简单能量分析)、DPA(微分能量分析)、CPA(选择明文攻击)。方案中同时输出幂次方及幂指数反码次方,避免了求逆过程的出现,求逆很耗时间。方案中,模幂部分,结果输出部分,分别使用了校验技术,防止错误攻击时错误数据输出技术。
本发明能够防止已知的任何形式的SPA、DPA、CPA等功耗分析攻击;同时防止错误攻击时,输出有效的错误数据。
本发明有效保护了RSA STD运算过程中已知容易被攻击的步骤。本发明提供的模幂校验,也可完整的使用到RSACRT运算当中,同时实现模幂及补码幂的算法可类似的移植到SM2的点乘运算中。对模幂是否被攻击的校验可以类似的移植到SM2的点乘运算中。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种多方位防侧信道攻击的签名方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种多方位防侧信道攻击的签名方法。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
一种多方位防侧信道攻击的签名方法和方案,普通RSA的秘钥分为公钥和私钥,其中e、N为RSA的公钥;d、N为RSA私钥。
普通RSA密钥签名的方法为:Sign(M)=MdmodN。其中M为用户输入的待签名的摘要;N、d私钥,N为模数。
基于基础模幂和模幂校验,一种多方位防侧信道攻击的签名方案如下:
(RSA签名)Sign(M,e,d,N);
生成随机数trng1,计算z1=trng1*(e*d-1)-d;
生成随机数trng,计算(S0,S1)=EXP(trng,z1,N);如果返回1,输出S0,S1继续执行3,否则直接返回0,不输出任何结果;
生成随机数trng2,计算z2=trng2*(e*d-1)+d;
计算maskM=M*trngmodN;
计算(S'0,S'1)=EXP(maskM,z2,N);如果返回1,输出S'0,S'1继续执行6,否则直接返回0,不输出任何结果;
计算(S”0,S”1)=EXP(S1*S’1,e,N),如果S”1=M,则输出S1*S'1,否则直接返回0,不输出任何结果。
普通RSA的秘钥分为公钥和私钥,其中e、N为RSA的公钥;d、N为RSA私钥。
普通RSA密钥签名的方法为:Sign(M)=Mdmod N。其中M为用户输入的待签名的摘要;N、d私钥,N为模数。
首先、我们设计了一种基础模幂算法,从指数低位遍历的方式,同时计算xtmodN和x~tmod N,其中~t是t的补码。
算法一(基础模幂)EXP1(x,t,N):
输出S0、S1;其中s0=x~tmodN,s1=xtmodN。
算法二(模幂校验)EXP2(x,t,N):
3、计算c=S0*S1*x-A
如果c=0,输出s0=x~emod N,s1=xemod N,返回1;否则不输出结果,返回0
基于算法一和算法二,我们设计了一种防侧信道攻击的RSA签名算法如下:
算法三(RSA签名)Sign(M,e,d,N);
生成随机数trng1,计算z1=trng1*(e*d-1)-d
生成随机数trng,计算(s0,s1)=EXP(trng,z1,N);如果返回1,输出s0,s1继续执行3,否则直接返回0,不输出任何结果
生成随机数trng2,计算z2=trng2*(e*d-1)+d
计算maskM=M*trng mod N
计算(S'0,S'1)=EXP(maskM,z2,N);如果返回1,输出s'0,s'1继续执行6,否则直接返回0,不输出任何结果
计算(S”0,S”1)=EXP(S1*S'1,e,N),如果S”1=M,则输出S1*S'1,否则直接返回0,不输出任何结果
实例二
输入RSA的模数N、消息M、私钥元素d的长度为t,公钥元素e的长度为32小于等于N的比特数,且保证M小于N
生成长度为t比特的随机数trng1,并用该随机数先后乘公钥元素e和私钥元素d,该运算结果减去当前使用的随机数trng1,并减去私钥元素d,得到数据z1
生成长度为t比特的随机数trng2,以该数据为底数,2中得到的数据z1为指数(其比特长度为bitlen比特),执行如下操作:
设置3块(分别为S0、S1、A)t比特的空间,三块空间分别赋值为;S0=S1=1,A=trng2
b、i从0到bitlen执行如下过程:
①获得z1的当前比特值
②如果当前比特为0则计算S0=S0*A,如果当前比特为1,则执行S1=S1*A
③对A平方并放入A中
c、校验S0*S1*x-A是否为0,如果不为0,退出
4、过程3中输出结果分别记为S0,S1
5、生成长度为t比特的随机数trng3,并用该随机数先后乘公钥元素e和私钥元素d,该运算结果减去当前使用的随机数trng3,并加上私钥元素d,得到数据z2
6、以N为模数,trng2为乘法因子对摘要M进行模乘掩码,得到结果记为maskM
7、以maskM为底数,z2位指数,执行如3中a、b、c操作,获得结果s'0,s'1
8、计算S1*S'1,并以该结果为底数,e(公钥元素)为指数,N为模数,执行3中a、b、c三步,得到输出结果S”0,S”1,如果S”1=M,则输出S1*S'1,或者不输出数据。
本发明有效保护了RSA STD运算过程中已知的容易被攻击的步骤。本发明提供的模幂校验,也可完整的使用到RSA CRT运算当中,同时实现模幂及补码幂的算法可类似的移植到SM2的点乘运算中。对模幂是否被攻击的校验可以类似的移植到SM2的点乘运算中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (1)
1.一种多方位防侧信道攻击的签名方法,其特征在于,包含:
步骤一,输入RSA的模数N、消息M、私钥元素d、公钥元素e,所述私钥元素d的长度为t比特,所述公钥元素e的长度小于等于N的比特长,且保证M小于N;
步骤二,生成长度为t比特的随机数trng1,并用所述随机数trng1先后乘公钥元素e和私钥元素d,该运算结果减去当前使用的随机数trng1,并减去私钥元素d,得到数据z1;
步骤三,生成长度为t比特的随机数trng2,以所述随机数trng2为底数,步骤二中得到的数据z1为指数,比特长度为bitlen比特,执行如下操作:
设置3块t比特的大小分别为S0,S1,A,分别赋值为;S0=S1=1,A=trng2;
i从0到bitlen执行如下过程:
①获得z1的当前比特值;
②如果当前比特为0则计算S0=S0*A,如果当前比特为1,则执行S1=S1*A;
③对A平方并放入A中;
校验S0*S1*X-A是否为0,其中X=A*A,如果不为0,不输出结果;
若i<bitlen,则返回步骤“①获得z1的当前比特值”;
步骤四,步骤三中输出结果分别记为S0,S1;
步骤五,生成长度为t比特的随机数trng3,并用该随机数先后乘公钥元素e和私钥元素d,该运算结果减去当前使用的随机数trng3,并加上私钥元素d,得到数据z2;
步骤六,N为模数,trng2为乘法因子对摘要M进行模乘掩码,得到结果记为maskM;
步骤七,以maskM为底数,z2为指数,执行如步骤三中①、②、③操作,获得结果S'0,S1';
步骤八,计算S1*S′1,并以该结果为底数,公钥元素e为指数,N为模数,执行步骤三中①、②、③三步,得到输出结果S″0,S″1,如果S″1=M,则输出S1*S′1,否则不输出数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610943335.6A CN106452789B (zh) | 2016-11-02 | 2016-11-02 | 一种多方位防侧信道攻击的签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610943335.6A CN106452789B (zh) | 2016-11-02 | 2016-11-02 | 一种多方位防侧信道攻击的签名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106452789A CN106452789A (zh) | 2017-02-22 |
CN106452789B true CN106452789B (zh) | 2019-06-18 |
Family
ID=58177580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610943335.6A Active CN106452789B (zh) | 2016-11-02 | 2016-11-02 | 一种多方位防侧信道攻击的签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106452789B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107508678B (zh) * | 2017-10-13 | 2020-08-04 | 成都信息工程大学 | 基于机器学习的rsa掩码防御算法的侧信道攻击方法 |
CN109379185B (zh) * | 2018-10-22 | 2021-04-27 | 飞天诚信科技股份有限公司 | 一种安全的rsa运算实现方法及装置 |
CN109831290B (zh) * | 2019-01-24 | 2021-06-11 | 上海交通大学 | 针对基于cave算法认证协议的侧信道分析方法 |
CN110048840B (zh) * | 2019-04-28 | 2021-10-15 | 苏州国芯科技股份有限公司 | 一种基于rsa算法的信息处理方法、系统及相关组件 |
CN112332970A (zh) * | 2019-08-05 | 2021-02-05 | 上海复旦微电子集团股份有限公司 | 攻击sm9签名算法的侧信道分析方法、装置、介质及设备 |
CN114048472B (zh) * | 2022-01-17 | 2022-06-24 | 浙江大学 | 基于线性码掩码和位切片技术的抗旁路攻击的防御方法 |
CN114679281B (zh) * | 2022-03-15 | 2023-12-01 | 北京宏思电子技术有限责任公司 | 一种基于rsa的联合签名生成方法及装置 |
CN117640090B (zh) * | 2024-01-25 | 2024-04-12 | 蓝象智联(杭州)科技有限公司 | 一种身份验证方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8139763B2 (en) * | 2007-10-10 | 2012-03-20 | Spansion Llc | Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004226674A (ja) * | 2003-01-23 | 2004-08-12 | Renesas Technology Corp | 情報処理方法 |
CN101196964B (zh) * | 2006-12-07 | 2010-08-11 | 上海爱信诺航芯电子科技有限公司 | 一种抗旁路攻击算法的芯片 |
CN102468956A (zh) * | 2010-11-11 | 2012-05-23 | 上海华虹集成电路有限责任公司 | 适用于rsa模幂计算的方法 |
CN103490885B (zh) * | 2013-10-14 | 2017-01-04 | 北京华大信安科技有限公司 | 采用中国剩余定理的rsa的计算方法及计算装置 |
CN103580869B (zh) * | 2013-11-06 | 2016-09-21 | 北京华大信安科技有限公司 | 一种crt-rsa签名方法及装置 |
CN104660399B (zh) * | 2013-11-25 | 2018-02-23 | 上海复旦微电子集团股份有限公司 | 一种rsa模幂运算方法和装置 |
CN104811297B (zh) * | 2015-04-23 | 2018-06-12 | 成都信息工程学院 | 针对RSA之M-ary实现模乘余数输入侧信道攻击 |
-
2016
- 2016-11-02 CN CN201610943335.6A patent/CN106452789B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8139763B2 (en) * | 2007-10-10 | 2012-03-20 | Spansion Llc | Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks |
Also Published As
Publication number | Publication date |
---|---|
CN106452789A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106452789B (zh) | 一种多方位防侧信道攻击的签名方法 | |
US8402287B2 (en) | Protection against side channel attacks | |
US9014368B2 (en) | Protection of a modular exponentiation calculation by addition of a random quantity | |
US8767955B2 (en) | Protection of a modular exponentiation calculation by multiplication by a random quantity | |
EP3096488B1 (en) | Hypersphere-based multivariable public key encryption/decryption system and method | |
CN104836670B (zh) | 一种基于随机数未知的sm2签名算法安全性验证方法 | |
EP3230921B1 (en) | Multiplicative masking for cryptographic operations | |
CN104796250B (zh) | 针对RSA密码算法M-ary实现的侧信道攻击方法 | |
CN104917608B (zh) | 一种密钥抗功耗攻击的方法 | |
CN106464483A (zh) | 用于电子部件实现椭圆曲线密码算法的应对方法 | |
CN109214195A (zh) | 一种抗差分功耗攻击的sm2椭圆曲线签名验签硬件系统及方法 | |
CN107896142B (zh) | 一种执行模幂运算的方法及装置、计算机可读存储介质 | |
Campos et al. | Trouble at the CSIDH: protecting CSIDH with dummy-operations against fault injection attacks | |
CN104811297B (zh) | 针对RSA之M-ary实现模乘余数输入侧信道攻击 | |
TW586086B (en) | Method and apparatus for protecting public key schemes from timing, power and fault attacks | |
CN105119929B (zh) | 单一恶意云服务器下的安全模指数外包方法及系统 | |
Barenghi et al. | A novel fault attack against ECDSA | |
CN110048840A (zh) | 一种基于rsa算法的信息处理方法、系统及相关组件 | |
CN103580869B (zh) | 一种crt-rsa签名方法及装置 | |
CN111931176A (zh) | 防御侧信道攻击的方法、装置及可读存储介质 | |
CN105740730A (zh) | 芯片中安全的点乘实现方法 | |
KR20080012634A (ko) | 고속 몽고메리 전력 래더 알고리즘에서 사용되는 폴트 검출동작을 구현하기 위한 이진 유한 영역에서의 포인트 덧셈방법 및 덧셈 연산 장치 | |
US8873745B2 (en) | Protection of a calculation on an elliptic curve | |
Bock | SCA resistent implementation of the Montgomery kP-algorithm | |
Gulen et al. | Side-Channel Resistant 2048-Bit RSA Implementation for Wireless Sensor Networks and Internet of Things |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |