CN102546160A - 用于椭圆曲线密码防御差分功耗攻击的方法 - Google Patents
用于椭圆曲线密码防御差分功耗攻击的方法 Download PDFInfo
- Publication number
- CN102546160A CN102546160A CN2010105787068A CN201010578706A CN102546160A CN 102546160 A CN102546160 A CN 102546160A CN 2010105787068 A CN2010105787068 A CN 2010105787068A CN 201010578706 A CN201010578706 A CN 201010578706A CN 102546160 A CN102546160 A CN 102546160A
- Authority
- CN
- China
- Prior art keywords
- elliptic curve
- differential power
- power consumption
- attack
- point
- 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
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
Description
技术领域
本发明涉及一种防御差分功耗攻击的方法,特别是涉及一种用于椭圆曲线密码防御差分功耗攻击的方法。
背景技术
Y2+XYZ=X3Z+a2X2Z2+a6Z4
定义无穷远点∞=(1:0:0)。当Z1≠0时,Dahab射影坐标下的点(X1:Y1:Z1)对应仿射坐标下的点是设椭圆曲线E()上任意两个点P,Q,当P,Q使用López Dahab射影坐标表示时,若R=P+Q,R的坐标通过以下公式计算:
如果P=∞则R=∞+Q=Q;
如果Q=∞则R=P+∞=P;
现在不妨设P≠∞且Q≠∞。
记P=(X1:Y1:Z1),Q=(X2:Y2:Z2),R=(X3:Y3:Z3)。
如果P≠Q,则
X3=A(H+D)+B(G+C)
Y3=F(AJ+FG)+(J+Z3)X3
Z3=FZ1Z2
如果P=Q,则
X3=C2+B
Y3=(Y1+a2Z3+B)X3+Z3B
Z3=AC
在以上公式中,当P≠Q时称为点加运算,当P=Q时称为倍点运算。在这里点加运算需要13M+4S,即13次有限域中乘法和4次有限域中平方;而倍点运算需要4M+5S,即4次有限域中乘法和5次有限域中平方。与二进制域上的其它标准射影坐标、Jacobian射影坐标以及仿射坐标相比,这些运算在López Dahab射影坐标下的速度是最快的。
密码设备在进行运算和工作时,不可避免的存在着某些信息的泄漏,比如:时间消耗、能量损失、电磁辐射和出现错误结果等等。把对以上这些泄漏信息的监测与分析和对算法的数学分析结合起来,就成为获取密钥信息、揭示芯片工作原理和最终破译加密芯片的最强大工具。并由此产生了一系列旁路攻击方法,差分功耗攻击就是其中一个极有威胁的攻击。如,对于智能卡中的密码算法,差分功耗攻击则极大地危胁智能卡的安全性。因此,研究防御差分功耗攻击的方法是非常有意义的。
标量乘是椭圆曲线密码的核心运算,通过对标量乘进行差分功耗分析,可以获得密钥。为此人们提出了标量盲化和射影坐标随机化等方法,用来抵抗差分功耗攻击。标量盲化时需要选取较大的随机数,否则会导致不安全。因此一般情况下,标量盲化方法比射影坐标随机化方法更耗时。射影坐标随机化方法的思想是把点P=(X1:Y1:Z1)映射到P′=(θX1:θ2Y1:θZ1),再计算mP′。但是这里θ是有限域中的随机非零点,而且不能取为1,否则映射没有意义。由于θ≠1,从而P′的Z坐标不等于1,这样计算mP′过程中只能调用一般的点加运算公式,其耗时为13M+4S。因此,使用射影坐标随机化方法防御差分功耗攻击,也需要牺牲较多的时间。
发明内容
本发明要解决的技术问题是提供一种用于椭圆曲线密码防御差分功耗攻击的方法,该方法使得点P′的Z坐标可以取1,从而达到以极小的时间代价防御差分功耗攻击,获得更高的安全性。
步骤二,计算同构映射φ(P)=(fuX:fvY:1),并记P′=(X′:Y′:1)=φ(P);其中,u、v是正整数,且v≥2u;f是域中随机选取的非零元变量,且要求fh的Hamming重量(Hamming Weight,汉明重量)值小于其中,h=v-u,v-2u或v+2u;该步骤中P′的Z坐标取1;
步骤三,计算标量乘mP′,并记点R=mP′=(X″:Y″:Z″);
步骤四,计算同构逆映射φ-1(R)=(fvX″:fv+2uY″:fv+uZ″)=mP。
上述步骤三中,可以通过调用以下步骤的算法(称其为算法2)来计算R=mP′:
步骤(1),输入整数m以及P′=(X′:Y′:1);
步骤(3),给点Q赋初始值:Q←∞【即Q=∞=(1:0:0)】;
步骤(4),从i=0到i=s-1循环:
步骤(5),如果mi=1,则计算Q←Q+P′(即Q+P′的值赋予Q);该步骤(5)中是通过点加运算完成的;
步骤(6),计算P′←2P′(即2P′的值赋予P′);该步骤(6)是通过倍点运算完成的;
步骤(7),i←i+1(即i+1的值赋予i);
步骤(8),循环结束后,输出点Q。
最后,点Q的值就等于所求的R=mP′。
如m=9988=2×34×2-39×34+25,其中,本式中的p=3,w=4,i=2、1、0,m′i=2、-39、25;
如m=116019=7×52×3+11×52×2-9×52-6,
其中,本式中的p=5,w=2,i=3、2、1、0,m′i=7、11、-9、-6。
上述步骤(5)中的点加运算和步骤(6)中的倍点运算由以下新公式完成。它们使得mP′的计算能够顺利进行,同时保证了φ-1(R)=mP这个等式成立。
新公式具体如下:
椭圆曲线E()上任意点P′、Q,其中,P′=(X′1:Y′1:Z1),Q=(X′2:Y′2:Z2),并记P′+Q=(X′3:Y′3:Z3);
点加运算公式如下:
如果P′=∞,则P′+Q=∞+Q=Q;
如果Q=∞,则P′+Q=P′+∞=P′;
当P′≠∞且Q≠∞,P′≠Q时,则
X′3=A(H+D)+B(G+C)
Y′3=(AJ+FG)F+(J+fv-uZ3)X′3
Z3=FZ1Z2
倍点运算公式如下:
如果P′=∞,则P′+Q=∞+Q=Q;
如果Q=∞,则P′+Q=P′+∞=P′;
当P′≠∞且Q≠∞,P′=Q,则
X′3=fv-2uC2+B
Y′3=(Y′1 2+a2fv-uZ3+fv-2uB)X′3+fv-uZ3B
Z3=fv-uAC
本发明通过适当的选择f,使得fh的Hamming重量很小(h=v,v-u、v-2u或v+2u,从而以上点加运算和倍点运算公式中的乘以fh可以通过先多项式乘法运算,再约减运算实现。因为多项式的系数为0或1,所以乘以fh可以用移位和异或完成;而当生成二进制域的不可约多项式为三项式或五项式时,约减运算也可以用移位和异或完成。由于移位和异或运算相对于二进制域中的乘法来说其耗时可以忽略不计,因此fh的Hamming重量很小时,乘以fh的耗时也可以忽略不计。
本发明通过在椭圆曲线E()上选择一个非零点P=(X:Y:1),定义同构映射这样椭圆曲线密码中的核心运算标量乘mP,m∈Z的计算就转换为先计算mP′,然后用逆映射φ-1(mP′)映射回mP。由于f是随机选取的变量,从而起到了盲化坐标的作用,进而可以抵抗差分功耗攻击。
传统方法在防御差分功耗攻击的同时,需要额外消耗较多时间,而本发明的方法由于在计算点乘mP时,P′的Z坐标是可以取1的,从而可以调用快速点加运算,其耗时只需要10M+3S,因此能以极小的代价防御差分功耗攻击。
附图说明
图1是在标量乘计算过程中使用本发明的流程图;
图2是算法2标量乘计算的流程图。
具体实施方式
参见图1并结合图2,本发明提供了一个使用防御差分功耗攻击方法的标量乘计算流程来说明本发明的具体实施细节。
美国国家标准技术研究院(NIST)推荐了15套参数用于椭圆曲线密码。本实施例中采用其中的一套参数,具体如下:
E:y2+xy=x3+x2+b
p(t)=t163+t7+t6+t3+1
r=5846006549323611672814742442876390689256843201587
b=0x2 0a601907 b8c953ca 1481eb10 512f7874 4a3205fd
Px=0x3 f0eba162 86a2d57e a0991168 d4994637 e8343e36
Py=0x0 d51fbc6c 71a0094f a2cdd545 b11c5c0c 797324f1
本实施例中的椭圆曲线E()中的n=163,现取十六进制整数m,m=0xe4040cf925d6ff9b8be31e8263dcf0b831bd55ed,随机选取十六进制整数f=0x8,且u=1,v=2。
步骤一,将上述Px、Py,输入到P=(Px:Py:1)中;
步骤二,计算同构映射φ(P)=(X′:Y′:1)=P′,得到
X′=0x3f0eba16286a2d57ea0991168d4994637e8343e36
Y′=0xd51fbc6c71a0094fa2cdd545b11c5c0c797324f1
步骤三,调用算法2(如图2所示),并利用该算法2中的点加运算公式和倍点运算公式,计算R=mφ(P)=(X″:Y″:Z″),得到
X″=0x1ed65436e6213e1991530ad8448a0d596f60da6ea
Y″=0x7d756770b2b7c8820b 1530119ed7e8e3560818c1f
Z″=0x41ac50e945a32e3f263582377a0cf2626b053cc22
步骤四,计算同构逆映射φ-1(R)=(X″′:Y″′:Z″′),得到
X”’=0x35950db9884f866454c2b6112283565bd8369beb7
Y″′=0x56770b2b7c8820b1530119ed7e8e3560818c5be5e
Z″′=0x58a1d28b465c7e4c6b046ef419e4c4d60a7988fb6
为了验证点加运算公式和倍点运算公式的正确性,直接调用算法2计算mP,发现mP=φ-1(R)。从而说明本发明的公式是正确的。因此,本发明可以通过上述的点加运算公式和倍点运算公式,使得算法1中步骤三顺利进行,从而保证了φ-1(R)=mP这个等式成立。
上述步骤中,计算φ-1(R)这个逆映射时并没有用到二进制域中的逆运算,因此,这样定义的逆映射可以很快地计算。另外,本实施例中的fh的Hamming重量很小,乘以fh的耗时忽略不计。而且当计算标量乘mP时,可以把P的Z坐标取为1,即P=(X1:Y1:1),这样点加运算只需要10M+3S,即10次有限域中乘法和3次有限域中平方,比一般点加运算少了3次乘法和1次平方。因此,相对于现有的防御差分功耗攻击时使用的盲化标量的方法,本发明更安全、更快速。
以上通过实施例,对本发明进行了详细的说明,但本发明的保护范围不限于所述的实施例。在不脱离本发明原理的情况下,本领域技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
Claims (8)
2.如权利要求1所述的用于椭圆曲线密码防御差分功耗攻击的方法,其特征在于:所述步骤一中,n>80。
4.如权利要求1所述的用于椭圆曲线密码防御差分功耗攻击的方法,其特征在于:所述步骤二中,P′的Z坐标取1。
5.如权利要求1所述的用于椭圆曲线密码防御差分功耗攻击的方法,其特征在于:所述步骤三中,通过调用以下步骤的算法来计算R=mP′:
步骤(1),输入整数m以及P′=(X′:Y′:1);
步骤(2),把整数m展开成二进制形式
步骤(3),给点Q赋初始值:Q←∞;
步骤(4),从i=0到i=s-1循环:
步骤(5),如果mi=1,则计算Q←Q+P′;
步骤(6),计算P′←2P′;
步骤(7),i←i+1;
步骤(8),循环结束后,输出点Q;
最后,点Q的值就等于所求的R=mP′。
7.如权利要求5所述的用于椭圆曲线密码防御差分功耗攻击的方法,其特征在于:所述步骤(5)是通过点加运算完成的,具体运算公式如下:
如果P′=∞,则P′+Q=∞+Q=Q;
如果Q=∞,则P′+Q=P′+∞=P′;
当P′≠∞且Q≠∞,P′≠Q时,则
X′3=A(H+D)+B(G+C)
Y′3=(AJ+FG)F+(J+fv-uZ3)X′3
Z3=FZ1Z2
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010578706.8A CN102546160B (zh) | 2010-12-08 | 2010-12-08 | 用于椭圆曲线密码防御差分功耗攻击的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010578706.8A CN102546160B (zh) | 2010-12-08 | 2010-12-08 | 用于椭圆曲线密码防御差分功耗攻击的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102546160A true CN102546160A (zh) | 2012-07-04 |
CN102546160B CN102546160B (zh) | 2016-03-02 |
Family
ID=46352182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010578706.8A Active CN102546160B (zh) | 2010-12-08 | 2010-12-08 | 用于椭圆曲线密码防御差分功耗攻击的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102546160B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105450398A (zh) * | 2014-09-23 | 2016-03-30 | 德克萨斯仪器股份有限公司 | 用于使用椭圆曲线密码学的数字认证的加倍、加法和减法操作的齐次原子式 |
CN110798305A (zh) * | 2019-09-24 | 2020-02-14 | 瓦戈科技有限公司 | 一种故障分析防御方法、电子设备、可读存储介质 |
CN112131613A (zh) * | 2020-09-15 | 2020-12-25 | 郑州信大捷安信息技术股份有限公司 | 一种针对sm2算法的掩码运算方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1753357A (zh) * | 2005-08-18 | 2006-03-29 | 复旦大学 | 应用于des加密芯片的差分功耗分析屏蔽电路 |
CN101197668A (zh) * | 2007-12-06 | 2008-06-11 | 上海交通大学 | 基于随机化带符号标量乘法的椭圆曲线抗旁路攻击方法 |
US20080143561A1 (en) * | 2006-12-15 | 2008-06-19 | Yoshikazu Miyato | Operation processing apparatus, operation processing control method, and computer program |
CN101350038A (zh) * | 2008-09-16 | 2009-01-21 | 中国人民解放军国防科学技术大学 | 一种异步分组密码算法协处理器的设计方法 |
-
2010
- 2010-12-08 CN CN201010578706.8A patent/CN102546160B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1753357A (zh) * | 2005-08-18 | 2006-03-29 | 复旦大学 | 应用于des加密芯片的差分功耗分析屏蔽电路 |
US20080143561A1 (en) * | 2006-12-15 | 2008-06-19 | Yoshikazu Miyato | Operation processing apparatus, operation processing control method, and computer program |
CN101197668A (zh) * | 2007-12-06 | 2008-06-11 | 上海交通大学 | 基于随机化带符号标量乘法的椭圆曲线抗旁路攻击方法 |
CN101350038A (zh) * | 2008-09-16 | 2009-01-21 | 中国人民解放军国防科学技术大学 | 一种异步分组密码算法协处理器的设计方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105450398A (zh) * | 2014-09-23 | 2016-03-30 | 德克萨斯仪器股份有限公司 | 用于使用椭圆曲线密码学的数字认证的加倍、加法和减法操作的齐次原子式 |
US10635405B2 (en) | 2014-09-23 | 2020-04-28 | Texas Instruments Incorporated | Homogenous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography |
CN105450398B (zh) * | 2014-09-23 | 2021-02-26 | 德克萨斯仪器股份有限公司 | 一种产生数字签名的方法 |
US11573769B2 (en) | 2014-09-23 | 2023-02-07 | Texas Instruments Incorporated | Homogenous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography |
CN110798305A (zh) * | 2019-09-24 | 2020-02-14 | 瓦戈科技有限公司 | 一种故障分析防御方法、电子设备、可读存储介质 |
CN110798305B (zh) * | 2019-09-24 | 2023-05-30 | 瓦戈科技有限公司 | 一种故障分析防御方法、电子设备、可读存储介质 |
CN112131613A (zh) * | 2020-09-15 | 2020-12-25 | 郑州信大捷安信息技术股份有限公司 | 一种针对sm2算法的掩码运算方法及装置 |
CN112131613B (zh) * | 2020-09-15 | 2022-02-22 | 郑州信大捷安信息技术股份有限公司 | 一种针对sm2算法的掩码运算方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102546160B (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liardet et al. | Preventing SPA/DPA in ECC systems using the Jacobi form | |
CN104937537B (zh) | 包括与标量或求幂的乘法运算的密码学方法 | |
CN101867474B (zh) | 数字签名方法 | |
EP2075689B1 (en) | A technique for Accelerating characteristic 2 Elliptic curve cryptography | |
EP3096488B1 (en) | Hypersphere-based multivariable public key encryption/decryption system and method | |
US20130016828A1 (en) | Protection of a modular exponentiation calculation by multiplication by a random quantity | |
WO2009091746A1 (en) | Representation change of a point on an elliptic curve | |
EP2854330A2 (en) | System and method for multivariate public key encryption/decryption | |
CN104852795A (zh) | 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法 | |
US9948463B2 (en) | Multivariate public key signature/verification system and signature/verification method | |
CN102546160A (zh) | 用于椭圆曲线密码防御差分功耗攻击的方法 | |
US20090024352A1 (en) | Method, Device and System For Verifying Points Determined on an Elliptic Curve | |
EP3503459B1 (en) | Device and method for protecting execution of a cryptographic operation | |
CN103580869B (zh) | 一种crt-rsa签名方法及装置 | |
Urbano-Molano et al. | Design of an elliptic curve cryptoprocessor using optimal normal basis over gf (2 233) | |
Xu et al. | An improved sliding window algorithm for ECC multiplication | |
US20200044818A1 (en) | Elliptic curve cryptography scheme for edwards curves having a differential side-channel attack countermeasure | |
Ajeena et al. | The computational complexity of elliptic curve integer sub-decomposition (ISD) method | |
Herbaut et al. | Random Euclidean addition chain generation and its application to point multiplication | |
Nagai et al. | Elliptic Curve Scalar Multiplication with a Bijective Transform | |
Jalali et al. | Optimized supersingular isogeny key encapsulation on armv8 processors | |
Kitbumrung et al. | ECC dynamic point encoding on mobile device | |
Ravikumar et al. | Secure multiparty electronic payments using ECC algorithm: A comparative study | |
Liu et al. | SPA Resistant Balanced Ternary Segmented Scalar Multiplication. | |
Vetro | Metrics on the set of elliptic curves over Fp |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |