CN105610583A - 用于抵御错误曲线攻击的ecdsa方法 - Google Patents

用于抵御错误曲线攻击的ecdsa方法 Download PDF

Info

Publication number
CN105610583A
CN105610583A CN201410612835.2A CN201410612835A CN105610583A CN 105610583 A CN105610583 A CN 105610583A CN 201410612835 A CN201410612835 A CN 201410612835A CN 105610583 A CN105610583 A CN 105610583A
Authority
CN
China
Prior art keywords
calculates
ecdsa
calculating
error curve
elliptic curve
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
CN201410612835.2A
Other languages
English (en)
Other versions
CN105610583B (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 Huahong Integrated Circuit Co Ltd
Original Assignee
Shanghai Huahong Integrated Circuit 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 Shanghai Huahong Integrated Circuit Co Ltd filed Critical Shanghai Huahong Integrated Circuit Co Ltd
Priority to CN201410612835.2A priority Critical patent/CN105610583B/zh
Publication of CN105610583A publication Critical patent/CN105610583A/zh
Application granted granted Critical
Publication of CN105610583B publication Critical patent/CN105610583B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明公开了一种用于抵御错误曲线攻击的ECDSA方法,步骤一,随机选择k∈[1,n-1];步骤二,取椭圆曲线的随机一点R,计算M=R+kP;步骤三,计算M-R=(x1,y1),之后把x1转化为整数;步骤四,计算r=x1mod?n,如果r=0,那么跳回步骤一;步骤五,计算e=H(m),其中,H(x)为哈希函数;步骤六,计算s=k-1(e+dr)mod?n,如果s=0,那么跳回步骤一;步骤七,输出签名对(r,s)。本发明可以有效地防止攻击者在ECDSA中通过错误曲线攻击获取用户的私钥。

Description

用于抵御错误曲线攻击的ECDSA方法
技术领域
本发明涉及信息安全领域,特别是涉及一种用于抵御错误曲线攻击的ECDSA(椭圆曲线数字签名算法)方法。
背景技术
椭圆曲线数字签名算法(ECDSA)理论介绍。数字签名对应于手写签名的数字化,可以提供数据来源认证、具有数据完整性及不可否认性的特点。椭圆曲线数字签名算法就是数字签名的椭圆曲线版本。ECDSA具体流程如下:
输入参数组D=(q,FR,S,a,b,P,n,h),私钥d,消息m。其中,q为域的阶,FR为域表示,S为种子,a,b为椭圆曲线参数,P为基点,n为点P的阶,h为余因子。
输出签名对(r,s)。
第1步、随机选择k∈[1,n-1]。
第2步、运算kP=(x1,y1),之后把x1转化为整数,其中,(x1,y1)为计算结果的横坐标与纵坐标的值。
第3步、计算r=x1modn,如果r=0,那么跳回步骤1。
第4步、计算e=H(m),其中,H(x)为哈希函数。
第5步、计算s=k-1(e+dr)modn,如果s=0,那么跳回步骤1。
第6步、输出签名对(r,s)。
那么得到这个签名对的其他用户就可以通过公钥与签名对(r,s)判定是否为确定用户的签名了。
对原ECDSA方案的错误曲线攻击。原ECDSA是有可能通过错误曲线的攻击获取私钥,这对于用户的信息是非常不安全的。假设对基点P的y坐标进行故障攻击,使其坐标从(xp,yp)变为(xp,yp′),记为点P′,设它落在的椭圆曲线为y2=x3+ax+b′,设其中a与之前的值不变,则存在
y ′ p 2 = x p 3 + ax p + b ′
所以
b ′ = y ′ p 2 - x p 3 - ax p .
由签名对可以得到r,从而得到x1,再根据不安全的椭圆曲线参数表达式得到y1。由于这是一条安全性不强的椭圆曲线,那么攻击者很可能在可计算的时间内求解离散对数(知道点P′及(x1,y1))来得到k,再根据已知的s,n,e和r可以推导出私钥d。
在ECDSA抵御错误曲线攻击的一般方法。通常的对错误曲线的攻击的抵御方案就是验算点P是否在原安全的椭圆曲线上,但是验算在工程上一般会做成一个函数,这样攻击者通过向芯片注入毛刺是有可能跳过这步验算。为保证芯片的安全性,就必须多次在运算过程中进行验算,但是过多的验算会极大牺牲芯片的运行效率。
因此如果将运算点乘kP改进,在P遭受到攻击后,无法让攻击者得到正确的错误点乘结果,那么错误曲线攻击就无法成功。
发明内容
本发明要解决的技术问题是提供一种用于抵御错误曲线攻击的ECDSA方法,可以有效地防止攻击者在ECDSA中通过错误曲线攻击获取用户的私钥。
为解决上述技术问题,本发明的用于抵御错误曲线攻击的ECDSA方法,包括如下步骤:
输入参数组D=(q,FR,S,a,b,P,n,h),私钥d,消息m;其中,q为域的阶,FR为域表示,S为种子,a,b为椭圆曲线参数,P为基点,n为点P的阶,h为余因子;
输出签名对(r,s);
步骤1,随机选择k∈[1,n-1];
步骤2,取椭圆曲线的随机一点R,计算M=R+kP;
步骤3,计算M-R=(x1,y1),之后把x1转化为整数;
步骤4,计算r=x1modn,如果r=0,那么跳回步骤1;
步骤5,计算e=H(m),其中,H(x)为哈希函数;
步骤6,计算s=k-1(e+dr)modn,如果s=0,那么跳回步骤1;
步骤7,输出签名对(r,s)。
其中,(x1,y1)为计算结果的横坐标与纵坐标的值。
执行步骤2,在运算M=R+kP时,可按照以下方法计算:
输入:k=(kt-1,...k1,k0)2
输出:R+kP;
定义点Q为一个存储空间,作为存储计算的临时值;
第1步、Q←R;
第2步、对于i从0到t-1,重复执行:
a)若ki=1,则Q=P+Q;
b)P←2P;
第3步、返回Q。
其中,(kt-1,...k1,k0)2为k的二进制表达形式。
这样运算的好处是以一个随机的椭圆曲线上的点作为起点,之后在与基点或基点的几倍点进行点加,如果基点被攻击后并不落在此椭圆曲线上,那么点加运算就会在两个不同的椭圆曲线上进行,而这样步骤2计算出的M是无法通过M-R还原出点kP。因此只有在点P和点R同时注入故障,并使这两点都落在相同的错误曲线上,错误曲线攻击才有可能成功,这样的防护方法无疑极高的增加了攻击者的难度。同时这种方案相对于多次在程序中插入检验P是否落在正确的椭圆曲线上,安全性也会更高。因为在点乘运算中,攻击者不能选择跳过这些点乘程序,否则攻击者无法获取正确的错误结果。因此本发明可以有效地防止攻击者在ECDSA中通过错误曲线攻击获取用户的私钥。
同时本发明的实现不会太多地浪费效率,因为这种方法就比普通点乘方法多了一步:将点乘的结果与点-R进行点加。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
附图是所述抵御错误曲线攻击的ECDSA方法流程图。
具体实施方式
结合附图所示,美国国家标准技术研究院(NIST)推荐了5套参数用于素数域的椭圆曲线密码。本实施例中采用其中的一套参数,具体如下:
在有限域Fp中,有椭圆曲线E,其定义如下:
E:y2=x3+ax2+b
其中
p=0xfffffffffffffffffffffffffffffffeffffffffffffffff;
a=0xfffffffffffffffffffffffffffffffefffffffffffffffc
b=0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1
基点G的坐标为
[0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811]
取点R
[0x79680B8E20EDCDB6B85D1CBFB6E83858CAA7BA83D3C3CFB3,0xEAEF626AA6A8EA293D39ABF2FA32FC04AD3E483844B3CD07]假设私钥d为
d=0x79d280ca6646596b185134d44d99d50dcda801265c2c4d56
步骤一,随机选择k∈[1,n-1];
k=0x74210519e59c80e70fa7e9ab72243049feb8de5cc146b9b1。
步骤二,取椭圆曲线的随机一点R,运算M=R+kP;
M的坐标为
[0x7119607658739F67839D1F4325305BD98FE64A5F8D56C5AD,0x7D46255A6CD166F3F0AEE2FB63A9EFC500034343B2C6752F]。
步骤三,运算M-R=(x1,y1),之后把x1转化为整数;
M-R的坐标为
[0xBC4333CC8AA5F132023C4F6CBD1D628F5CD5DFD0937AEFD,0x70497BA1941D5567FFF1CA91161F211FC8E1493BF9ABA831]。
步骤四,计算r=x1modn,如果r=0,那么跳回步骤一;
r=0xBC4333CC8AA5F132023C4F6CBD1D628F5CD5DFD0937AEFD。
步骤五,计算e=H(m),其中,H(x)为哈希函数;
假设e为
e=0x1BD4ED430B0F384B4E8D458EFF1A8A553286D7AC21CB2F68。
步骤六,计算s=k-1(e+dr)modn;
s=0x9346F7E6558468FB2E0A1241743BE498CA5DEF3CFFEA8B6E。
步骤七,输出签名对(r,s)。
实施步骤二时,从无穷远点作为起点进行点加与两倍点(或多倍点)运算改进为从随机点作为起点进行点加与两倍点(或多倍点)运算,此种方法可适用于二进制扫描法,窗口法等。
实施步骤三时,在未受到错误曲线攻击时,M-R是可以还原出点kP,当受到错误曲线攻击后,M-R是无法还原出点kP。
下面的计算实例证明确实注入到错误曲线故障后,M-R无法还原出点kP。
在有限域Fp中,有椭圆曲线E,其定义如下:
E:y2=x3+ax2+b
其中
p=0xfffffffffffffffffffffffffffffffeffffffffffffffff;
a=0xfffffffffffffffffffffffffffffffefffffffffffffffc
b=0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1
基点P的坐标为
[0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811]取点R
[0x79680B8E20EDCDB6B85D1CBFB6E83858CAA7BA83D3C3CFB3,0xEAEF626AA6A8EA293D39ABF2FA32FC04AD3E483844B3CD07]
若向基点P′注入故障,使其的坐标变为:
[0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,0x07192b95ffc8da78631011ed6b24cdd573f977a11e794810]
假设P′落在新的椭圆曲线E′
E′:y2=x3+ax2+b′
代入P′计算出b′
0x55EEADEDE60ACBF64987C5D09BDA949F16C5EFAA84542990
在椭圆曲线E′运算255P的坐标为:
[0xC639B9A2FF2605C6D6F4CA54BB26E4B4ADC0C0C1838688BD,0xAE44516005A90BA5897BA62C5E3315C75D8D16F6BDE3E1C0]
而使用上述公式计算M=R+255P,再计算M-R得到的坐标为
[0x8175D0910B98A225FE4F84051FA5395E4299A4FEF6D20586,0xF33F896005D5BFB8C18F4E2F8DBA6692745F3572B80D9ADB]
即如果遭受到了错误曲线攻击,kP′的输出是无法被正确获取的。
本发明能使得攻击者进行错误曲线攻击的难度变得非常大,相比于传统的抵御错误曲线攻击的方案,本发明并不显著减少运算效率。
以上通过实施例,对本发明进行了详细的说明,但本发明的保护范围不限于所述的实施例。在不脱离本发明原理的情况下,本领域技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。

Claims (2)

1.一种用于抵御错误曲线攻击的ECDSA方法,
输入参数组D=(q,FR,S,a,b,P,n,h),私钥d,消息m;其中,q为域的阶,FR为域表示,S为种子,a,b为椭圆曲线参数,P为基点,n为点P的阶,h为余因子;
步骤一,随机选择k∈[1,n-1];其特征在于,还包括如下步骤:
步骤二,取椭圆曲线的随机一点R,计算M=R+kP;
步骤三,计算M-R=(x1,y1),之后把x1转化为整数;
步骤四,计算r=x1modn,如果r=0,那么跳回步骤一;
步骤五,计算e=H(m),其中,H(x)为哈希函数;
步骤六,计算s=k-1(e+dr)modn,如果s=0,那么跳回步骤一;
步骤七,输出签名对(r,s)。
2.如权利要求1所述的方法,其特征在于:执行步骤2,在运算M=R+kP时,按照以下方法计算:
输入:k=(kt-1,...k1,k0)2
输出:R+kP;
定义点Q为一个存储空间,作为存储计算的临时值;
第1步、Q←R;
第2步、对于i从0到t-1,重复执行:
a)若ki=1,则Q=P+Q;
b)P←2P;
第3步、返回Q。
CN201410612835.2A 2014-11-04 2014-11-04 用于抵御错误曲线攻击的ecdsa方法 Active CN105610583B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410612835.2A CN105610583B (zh) 2014-11-04 2014-11-04 用于抵御错误曲线攻击的ecdsa方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410612835.2A CN105610583B (zh) 2014-11-04 2014-11-04 用于抵御错误曲线攻击的ecdsa方法

Publications (2)

Publication Number Publication Date
CN105610583A true CN105610583A (zh) 2016-05-25
CN105610583B CN105610583B (zh) 2018-10-26

Family

ID=55990131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410612835.2A Active CN105610583B (zh) 2014-11-04 2014-11-04 用于抵御错误曲线攻击的ecdsa方法

Country Status (1)

Country Link
CN (1) CN105610583B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533682A (zh) * 2016-11-10 2017-03-22 上海华虹集成电路有限责任公司 点对点的椭圆曲线数字签名算法及验签方法
CN109067554A (zh) * 2018-10-31 2018-12-21 北京云测信息技术有限公司 抗注入攻击的签名方法、装置、移动终端及存储介质
CN112131616A (zh) * 2020-09-15 2020-12-25 郑州信大捷安信息技术股份有限公司 一种sm2算法的掩码运算方法及装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020122555A1 (en) * 1991-09-17 2002-09-05 Next Computer, Inc. Method and apparatus for digital signature authentication
CN1831754A (zh) * 2005-11-04 2006-09-13 北京浦奥得数码技术有限公司 一种椭圆曲线密码系统及实现方法
EP1729442A2 (en) * 2005-06-03 2006-12-06 Tata Consultancy Services Limited An authentication system executing an elliptic curve digital signature cryptographic process
US20080301458A1 (en) * 2007-03-07 2008-12-04 Nevine Maurice Nassif Ebeid Power Analysis Attack Countermeasure for the ECDSA
CN101330385A (zh) * 2007-06-19 2008-12-24 航天信息股份有限公司 一种提高椭圆曲线密码体制上数字签名验证速度的方法
CN101753306A (zh) * 2009-12-22 2010-06-23 上海大学 运用Montgomery型椭圆曲线的数字签名认证方法
CN101763241A (zh) * 2010-01-20 2010-06-30 西安电子科技大学 实现ecc密码体制中签名算法的大整数求模运算装置及求模方法
CN102131198A (zh) * 2011-03-01 2011-07-20 广州杰赛科技股份有限公司 认证系统中椭圆曲线密码运算装置的实现方法
CN102546650A (zh) * 2012-01-19 2012-07-04 北京工业大学 无线传感器网络与因特网互联通信的端到端安全保障方法
CN103067165A (zh) * 2013-01-17 2013-04-24 广东数字证书认证中心有限公司 公钥密码体制中的外包计算方法、设备和服务器
CN103475473A (zh) * 2013-08-26 2013-12-25 广东数字证书认证中心有限公司 数字签名方法和设备、数字签名中密码运算方法和服务器

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020122555A1 (en) * 1991-09-17 2002-09-05 Next Computer, Inc. Method and apparatus for digital signature authentication
EP1729442A2 (en) * 2005-06-03 2006-12-06 Tata Consultancy Services Limited An authentication system executing an elliptic curve digital signature cryptographic process
CN1831754A (zh) * 2005-11-04 2006-09-13 北京浦奥得数码技术有限公司 一种椭圆曲线密码系统及实现方法
US20080301458A1 (en) * 2007-03-07 2008-12-04 Nevine Maurice Nassif Ebeid Power Analysis Attack Countermeasure for the ECDSA
CN101330385A (zh) * 2007-06-19 2008-12-24 航天信息股份有限公司 一种提高椭圆曲线密码体制上数字签名验证速度的方法
CN101753306A (zh) * 2009-12-22 2010-06-23 上海大学 运用Montgomery型椭圆曲线的数字签名认证方法
CN101763241A (zh) * 2010-01-20 2010-06-30 西安电子科技大学 实现ecc密码体制中签名算法的大整数求模运算装置及求模方法
CN102131198A (zh) * 2011-03-01 2011-07-20 广州杰赛科技股份有限公司 认证系统中椭圆曲线密码运算装置的实现方法
CN102546650A (zh) * 2012-01-19 2012-07-04 北京工业大学 无线传感器网络与因特网互联通信的端到端安全保障方法
CN103067165A (zh) * 2013-01-17 2013-04-24 广东数字证书认证中心有限公司 公钥密码体制中的外包计算方法、设备和服务器
CN103475473A (zh) * 2013-08-26 2013-12-25 广东数字证书认证中心有限公司 数字签名方法和设备、数字签名中密码运算方法和服务器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533682A (zh) * 2016-11-10 2017-03-22 上海华虹集成电路有限责任公司 点对点的椭圆曲线数字签名算法及验签方法
CN109067554A (zh) * 2018-10-31 2018-12-21 北京云测信息技术有限公司 抗注入攻击的签名方法、装置、移动终端及存储介质
CN112131616A (zh) * 2020-09-15 2020-12-25 郑州信大捷安信息技术股份有限公司 一种sm2算法的掩码运算方法及装置
CN112131616B (zh) * 2020-09-15 2022-02-18 郑州信大捷安信息技术股份有限公司 一种sm2算法的掩码运算方法及装置

Also Published As

Publication number Publication date
CN105610583B (zh) 2018-10-26

Similar Documents

Publication Publication Date Title
Wang Quantum resistant random linear code based public key encryption scheme RLCE
CN104852805B (zh) 一种抵抗基于格的错误攻击的sm2签名算法防护方法
JP7123959B2 (ja) 楕円曲線点乗算デバイス及び方法
US10142105B2 (en) Hypersphere-based multivariable public key encryption/decryption system and method
US11431471B2 (en) Data encryption and decryption
CN104836670B (zh) 一种基于随机数未知的sm2签名算法安全性验证方法
Su et al. A public key cryptosystem based on three new provable problems
CN106357701A (zh) 云存储中数据的完整性验证方法
US7218735B2 (en) Cryptography method on elliptic curves
EP2553866A1 (en) System and method for protecting cryptographic assets from a white-box attack
EP2813029A1 (en) System and method for generating and protecting cryptographic keys
CN108259506B (zh) Sm2白盒密码实现方法
EP3457619A1 (en) Nonce to message binding in digital signature generation
Nagaraj et al. Image encryption using elliptic curve cryptograhy and matrix
US9948463B2 (en) Multivariate public key signature/verification system and signature/verification method
CN111447065A (zh) 一种主动安全的sm2数字签名两方生成方法
CN105610583A (zh) 用于抵御错误曲线攻击的ecdsa方法
US20110029784A1 (en) Method of processing data protected against fault injection attacks and associated device
KR102067053B1 (ko) 다변수 2차 다항식 기반 포스트 양자 서명 스킴의 안전성 검증 장치 및 방법
Haraty et al. Hardening the elgamal cryptosystem in the setting of the second group of units.
Kaminaga et al. Crashing modulus attack on modular squaring for rabin cryptosystem
Khan et al. Modified Niederreiter type of GPT cryptosystem based on reducible rank codes
ElKassar et al. Hardening the ElGamal Cryptosystem in the Setting of the Second Group of Units
Ma et al. Iterative side-channel cube attack on KeeLoq
Liu Security analysis of liu-zhang-deng digital signature scheme

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