CN103441846A - 一种对p域的ecc算法选择明文侧信道能量分析方法 - Google Patents
一种对p域的ecc算法选择明文侧信道能量分析方法 Download PDFInfo
- Publication number
- CN103441846A CN103441846A CN2013103481117A CN201310348111A CN103441846A CN 103441846 A CN103441846 A CN 103441846A CN 2013103481117 A CN2013103481117 A CN 2013103481117A CN 201310348111 A CN201310348111 A CN 201310348111A CN 103441846 A CN103441846 A CN 103441846A
- Authority
- CN
- China
- Prior art keywords
- coordinate
- point
- energy
- territory
- side channel
- 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
一种对P域的ECC算法选择明文侧信道能量分析方法,涉及到密码算法实现、侧信道能量分析等领域。本发明为了对ECC算法未加防御方法的实现和某些加入防御方法的实现进行侧信道能量分析,提出了一种新型的对素数域上的椭圆曲线基于选择明文的侧信道能量分析方法,使得ECC算法中标量乘的运算产生能量消耗差异,以获取密钥信息。技术方案要点是:所述方法包括以下步骤:(1)采集两组kP运算时的能量迹;(2)基于上步得到的能量迹进行侧信道能量分析,识别出隐藏的点加操作;(3)映射到能量迹上,实施侧信道能量分析,推断出k的密钥序列。本发明为对P域的ECC算法选择明文侧信道能量分析实施提供了理论依据。
Description
技术领域
本发明提供了一种对P域的ECC算法选择明文侧信道能量分析方法,涉及到密码算法实现、侧信道能量分析等领域。为了对椭圆曲线密码算法(ECC)进行侧信道能量分析,分析和获取受保护的密钥k,本发明提供了一种基于素数有限域Fp,针对椭圆曲线密码算法中kP标量运算的选择明文侧信道能量分析方法,即k保持不变,输入特殊点P进行能量分析,一种对P域的ECC算法选择明文侧信道能量分析方法。
背景技术
自从20世纪80年代,Miller和Koblitz将椭圆曲线引入密码学,椭圆曲线在密码学中的作用越来越大。ECC算法基于椭圆曲线离散对数问题(ECDLP):在一个循环群G中,g为生成元,且g的阶为n,对于给定的元素y=gx∈G,求x的值。令p为素数,Fp(包含p个元素)为模p的有限域,E(Fp)为域Fp上椭圆曲线E上所有点的集合。若点G∈E(Fp),且G的阶n为素数,nG=O(O为椭圆曲线E上的无穷远点),则由G生成的循环群<G>={O,G,2G,…,(n-1)G}为E(Fp)的循环子群。在ECC算法中,素数p、域Fp上的椭圆曲线方程、基点G及阶n均为公开参数。
有限域Fp的椭圆曲线为平面曲线,由满足Weierstrass方程:y2+a1xy+a3y=x3+a2x2+a4x+a6的点组成,其中ai∈Fp,i∈{1,2,3,4,6}。本发明中有限域特征(char)Fp≠2,3,则Weierstrass方程可简化成y2=x3+a4x+a6,此时有限域Fp上椭圆曲线E的点的集合为:
E(Fp)={(x,y)|y2=x3+a4x+a6,a4,a6∈Fp}∪{O} (1)
椭圆曲线上定义的加法运算使用弦切线法则,则E(Fp)为加法交换群,无穷远点O为单位元,P(x,y)+P(x,-y)=O。对E(Fp)上两点P、Q之和P+Q,若P≠Q,连接P、Q的直线交E于点R′,则R′关于x轴的对称点R即为P+Q之和,称为点加运算(A)。若P=Q,做P点的切线交E于点R′,则R′关于x轴的对称点R即为则2P,称为点倍运算(D)。由椭圆曲线上的点加和点倍的几何意义,可以推断出E(Fp)在仿射坐标下运算法则,具体如下:
点加:令P=(x1,y1)∈E(Fp),Q=(x2,y2)∈E(Fp),且P≠Q,则R(x3,y3)=P+Q,
点倍:令P=(x1,y1)∈E(Fp),P≠-P,则R(x3,y3)=2P,
由于仿射坐标系统中引入了无穷远点,才使椭圆曲线点集构成了加法群。仿射坐标下的椭圆曲线包含无穷远点,实现较为不便,另外在点加和点倍运算需要进行求逆运算,而一般情况下求逆运算要比乘法运算耗时得多,因此,ECC算法实际实现时,通常将仿射坐标映射成标准射影坐标、雅克比坐标及混合坐标等方式。
设仿射坐标(x,y)映射为标准射影坐标(X,Y,Z),则Fp上椭圆曲线方程在标准射影坐标系下可以简化为Y2Z=X3+a4XZ2+a6Z3。若(x,y)∈E(Fp), 且(x,y)≠O,Z∈Fp,且Z≠0,则X=xZ,Y=yZ。如(x,y)→(x,y,1)即为标准射影坐标值。若(x,y)=O,则Z=0,对应的标准射影坐标为(0,1,0)。将映射关系代入式(2)-(5)可得标准射影坐标的运算法则。
点加:令P=(X1,Y1,Z1),Q=(X2,Y2,Z2),且P≠Q,A=X2Z1-X1Z2,B=Y2Z1-Y1Z2,C=B2Z1Z2-A2(X2Z1+X1Z2),则R(X3,Y3,Z3)=P+Q,
X3=AC (6)
Y3=B(A2X1Z2-C)-A3Y1Z2 (7)
Z3=A3Z1Z2 (8)
点倍:令P=(X1,Y1,Z1),且P≠-P,A=a4Z1 2+3X1 2,B=Y1Z1,C=X1Y1B,D=A2-8C,则R(X3,Y3,Z3)=2P,
X3=2BD (9)
Y3=A(4C-D)-8Y1 2B2 (10)
Z3=8B3 (11)
设仿射坐标(x,y)映射为雅克比坐标(X,Y,Z),则Fp上椭圆曲线方程在标准射影坐标系下可以简化为Y2=X3+a4XZ4+a6Z6。若(x,y)∈E(Fp),且(x,y)≠0,Z∈Fp,且Z≠0,则X=xZ2,Y=yZ3。如(x,y)→(x,y,1)即为雅克比坐标值。若(x,y)=O,则Z=0,标准射影坐标为(1,1,0)。将映射关系代入式(2)-(5)可得雅克比坐标的运算法则。
点加:今P=(X1,Y1,Z1),Q=(X2,Y2,Z2),且P≠Q,A=X2Z1 2-X1Z2 2,B=Y2Z1 3-Y1Z2 3,则R(X3,Y3,Z3)=P+Q,
X3=B2-A2(X2Z1 2+X1Z2 2) (12)
Z3=AZ1Z2 (14)
点倍:令P=(X1,Y1,Z1),且P≠-P,A=3X1 2+a4Z1 4,B=X1Y1 2,则R(X3,Y3,Z3)=2P,
X3=A2-8B (15)
Y3=A(4B-X3)-8Y1 4 (16)
Z3=2Y1Z1 (17)
雅克比-仿射坐标用于简化雅克比坐标中运算,对于运算中的两点P、Q,令其中一点Q的坐标为雅克比坐标Q(X,Y,Z),另外P点坐标为仿射坐标P(x,y),映射到雅克比坐标值为P(x,y)→P(x,y,1),代入到雅克比坐标的运算法则,可简化整个运算过程。具体运算如下:
点加:令Q=(X1,Y1,Z1),P=(x2,y2,1),且P≠Q,A=x2Z1 2-X1,B=y2Z1 3-Y1,,则R(X3,Y3,Z3)=P+Q,
X3=B2-2A2X1-A3 (18)
Y3=B(A2X1-X3)-A3Y1 (19)
Z3=AZ1 (20)
点倍:令P=(x1,y1,1),且P≠-P,A=3x1 2+a4,B=x1y1 2,则R(X3,Y3,Z3)=2P,
X3=A2-8B (21)
Y3=A(4B-x3)-8y1 4 (22)
Z3=2y1 (23)
在ECC算法中,标量乘kP定义为k个相同点P之和,kP是ECC中与密钥相关的基本运算,侧信道能量分析通常针对kP进行。kP具有多种实现算法,其中最基本的是二进制算法。下表为kP的二进制算法,密钥比特的处理顺序从左到右:
输入:k=(kn-1,…,k1,k0)2(kn-1=1),P∈E(Fp)
输出:kP
1.Q=P
2.i=n-2到0,重复执行
2.1Q=2Q//点倍
2.2若ki=1,则Q=Q+P//点加
3.返回(Q)
本文中所介绍的方法以从左到右二进制算法为例进行说明,其他类似实现算法可参照推导得到。
相比较RSA算法,ECC算法密钥长度短、计算数据量小、运算速度快、灵活性好,在没有协处理器的情况下,易于在芯片中实现。另外,目前还没有找到求解ECDLP问题的有效算法,因此在算法安全性上要远高于RSA算法。ECC密码算法基于其自身特点,在许多应用中取代了传统的RSA算法,因此研究其在算法实现上的安全性问题显得格外重要。
近年来,多种对密码算法实现的侧信道攻击方法已广为人知,通常这些攻击的目标都是获取密码运算中的密钥。侧信道攻击通常可分为侵入式攻击、半侵入式攻击和非侵入式攻击。非侵入式攻击中的侧信道能量分析由于实施便捷、实施代价低而被广泛使用。侧信道能量分析基于密码算法实现的能量消耗与运算数据和执行的操作之间的相关性,通过分析采集到的能量迹,经统计分析而获取密码设备内部执行密码运算操作的相关信息。侧信道能量分析方法一般包括:简单能量分析(SPA)、差分能量分析(DPA)、相关能量分析(CPA)和高阶差分能量分析(HODPA)等。
对于普通的标量乘二进制算法,由于点倍和点加运算的执行时间及能量消耗不一样,无法抵抗侧信道能量分析。攻击者可采集标量乘运算的能量迹进行侧信道能量分析,识别出点倍和点加运算,即可判断出实际运算的密钥比特序列。如:若能量迹中点倍后进行点加,则当前密钥比特值为1,若点倍后再进行点倍,则当前密钥比特为0。为了防御侧信道能量分析,密码算法实现通常会加入各种手段来隐藏点加和点倍运算的能量特征,比如标量乘运算过程使用相同的指令序列进行点加和点倍运算,此时使用通常的侧信道能量分析方法很难区分出点加和点倍运算,攻击者也无法获取密钥比特序列的相关信息。
发明内容
为了对ECC算法未加防御方法的实现和某些加入防御方法的实现进行侧信道能量分析,本发明提出了一种新型的对素数域上的椭圆曲线基于选择明文的侧信道能量分析方法,使得ECC算法中标量乘的点加和点倍运算产生明显的能量消耗差异,以获取密钥信息。
所述方法包括以下步骤:(1)采集两组kP运算时的能量迹,第一组获得能量迹矩阵为 第二组获得能量迹矩阵为 (2)基于上步得到的能量迹进行侧信道能量分析,识别出隐藏的点加操作;(3)由上步中点加运算中存在差异部分,映射到能量迹上,对能量迹进行处理分析,分别对上述采集的两组能量迹矩阵W和W′求均值,得到平均能量迹AVE=(a1,…,at,…,aT)和 其中 对两条平均能量迹AVE和AVE′进行比较,ΔAVE=|AVE-AVE′|=(Δa1,…,Δat,,…,ΔaT),若出现某些Δam~Δan段相比其他时间点的平均差值都大,即可判断该部分为构造坐标y1直接参与影响的运算,继而区分出能量迹上的点加运算,根据二进制点乘算法,就可以推断出k的密钥序列。
所述的步骤(1)中仿射坐标下具体过程是采集两组能量迹集,每组各为N条,每条能量迹的输入点P各不相同,P点坐标随机选择,第1组中选择的输入点P满足P(x1,y1)∈{(x,y)|(x,y)∈E(Fp),0<y<p/2},第2组中选择的输入点P满足P(x1,y1)∈{(x,y)|(x,y)∈E(Fp),p/2<y<p}。
所述的步骤(2)中仿射坐标下ECC的能量分析的具体过程是:在二进制算法点加运算Q=Q+P中,P(x1,y1)为选择明文输入,Q(x2,y2)由P(x1,y1)经过多次点加和点倍得到,由式
点加公式可得P+Q=(x3,y3)的分步计算式:
x3=A3-x2;A5=x1-x3;M3=M1×A5;y3=M3-y1 (24)
式(24)共需要进行1次模逆,3次域乘法,6次域加法,其中,y1直接参与运算为第1步A1,并且A1的运算结果参与到第4步M1中,
构造相同数量的两组具有不同y1坐标的P点输入,其中一组的 另外一组的y1分别在区间(0,p/2)、(p/2,p)内随机分 布,由于y2经过多次域上运算得到,可视为在(0,p)范围内随机分布,对A1运算步骤的实现通常会对A1的输出结果进行正负检查,然后将负值通过加上p调整为正值,在这种情况下如果A1运算结果为负,则运算过程中会增加一个加法操作,从而造成能量消耗的差异,分析如下:
当 时:
当 时:
所述的步骤(1)中标准射影坐标下具体过程是采集两组能量迹集,每组各为N条,每条能量迹的输入点P各不相同,P点坐标随机选择,第1组中选择的输入点P满足P(X1,Y1,Z1)Y1∈{(X,Y,Z)∈E(Fp),0<Y<p/2},第2组中选择的输入点P满足P(X1,Y1,Z1)Y1∈{(X,Y,Z)∈E(Fp),p/2<Y<p}。
所述的步骤(2)中标准射影坐标下ECC的能量分析的具体过程是: 在标准射影坐标下,由仿射坐标(x,y)与标准射影坐标(X,Y,Z)的映射关系(x,y)→(X=xZ,Y=yZ,Z),X,Y,ZFp,可知P(x1,y1)→P(X1,Y1,Z1)、Q(x2,y2)→Q(X2,Y2,Z2),根据式
X3=AC (6)
Y3=B(A2X1Z2-C)-A3Y1Z2 (7)
Z3=A3Z1Z2 (8)
可得标准射影坐标点加P+Q=R(X3,Y3,Z3)的分布运算式:
λ1=X2Z1;λ2=X1Z2;λ3=λ1-λ2;λ4=Y2Z1;λ5=Y1Z2;
Z3=λ10λ8
式(28)共使用了15次域乘法和6次域加法。Y1=y1Z1modp,Z1为固定值c1,通常设置为1,y1间接参与λ5=Y1Z2modp乘法运算,由此,可构造相同数量的两组具有不同Y1=y1Z1modp坐标的P点输入,其中一组的 另外一组的由于Z2经过多次域上运算得到,可视为在(0,p)范围内随机分布,对大量不同的kP运算,由于Z1固定,有:
λ5=Y1Z2的运算复杂度的差异为与消耗的能量差异直接相关,分别通过对Y1坐标处于区间(0,p/2)和(p/2,p)的P点的λ5=Y1Z2运算的能量消耗进行观察,并对大量能量迹分别求均值后进行比较,即可推断出隐藏的点加操作,同时,由于点倍运算的中间点Q始终变化,点倍运算中涉及到Q点Y2坐标的操作消耗的能量不会出现统计特性。
所述的步骤(1)中雅克比坐标下具体过程是采集两组能量迹集,每组各为N条,每条能量迹的输入点P各不相同,P点坐标随机选择,第1组中选择的输入点P满足P(X1,Y1,Z1)Y1∈{(X,Y,Z)∈E(Fp),0<Y<p/2},第2组中选择的输入点P满足P(X1,Y1,Z1)Y1∈{(X,Y,Z)∈E(Fp),p/2<Y<p}。
所述的步骤(2)中雅克比坐标下ECC的能量分析的具体过程是:在雅克比坐标下,由仿射坐标(x,y)与雅克比坐标(X,Y,Z)的映射关系(x,y)→(X=xZ2,Y=yZ3,Z),X,Y,Z∈Fp,可知P(x1,y1)→P(X1,Y1,Z1)、Q(x2,y2)→Q(X2,Y2,Z2),根据式
X3=B2-A2(X2Z1 2+X1Z2 2) (12)
可得雅克比坐标点加P+Q=R(X3,Y3,Z3)运算步骤:
λ3=X2Z1 2,λ2=X1Z2 2,λ3=λ1-λ2,λ4=Y2Z1 3,λ5=Y1Z2 3,
λ6=λ4-λ5,λ7=λ1+λ2,λ8=λ4+λ5,X3=λ6 2-λ7λ3 2, (29)
式(29)共使用了16次域乘法和7次域加法。Y1=Y1Z1 3modp,Z1为固定 值c1,y1间接参与λ5=Y1Z2 3modp乘法运算,由此,可构造相同数量的两组具有不同Y1=y1Z1 3modp坐标的P点输入,其中一组的另外一组的由于Z2 3经过多次域上运算得到,可视为在(0,p)范围内随机分布。
当时,多次λ5=Y1Z2 3的平均运算复杂度为:
λ5=Y1Z2 3的运算复杂度的差异为与消耗的能量差异直接相关,分别通过对Y1坐标处于区间(0,p/2)和(p/2,p)的P点的λ5=Y1Z2 3运算的能量消耗进行观察,并对大量能量迹分别求均值后进行比较,即可推断出隐藏的点加操作,同时,由于点倍运算的中间点Q始终变化,点倍运算中涉及到Q点Y2坐标的操作消耗的能量不会出现统计特性。
所述的步骤(1)中雅克比-仿射坐标下具体过程是采集两组能量迹集,每组各为N条,每条能量迹的输入点P各不相同,P点坐标随机选择,第1组中选择的输入点P满足P(x1,y1)∈{(x,y)|(x,y)∈E(Fp),0<y<p/2},第2组中选择的输入点P满足P(x1,y1)∈{(x,y)|(x,y)∈E(Fp),p/2<y<p}。
所述的步骤(2)中雅克比-仿射坐标下ECC的能量分析的具体过程是:雅克比-仿射坐标点加中的Q(x2,y2)→Q(X2,Y2,Z2)为雅克比坐标,P(x1,y1)为仿 射坐标,映射为雅克比坐标P(X,Y,Z)=P(x1,y1,1),根据式
X3=B2-2A2X1-A3 (18)
Y3=B(A2X1-X3)-A3Y1 (19)
可得雅克比-仿射坐标点加P+Q=R(X3,Y3,Z3)运算迭代式:
λ1=x1Z2 2;λ2=X2-λ1;λ3=y1Z2 3;λ4=Y2-λ3;Z3=λ2Z2;
λ5=λ2 2;λ6=λ2λ5;λ7=X2λ5;X3=λ4 2-2λ7+λ6; (30)
λ8=λ7-X3;Y3=λ8λ4-λ6Y2
式(30)共使用了11次域乘法和6次域加法,y1直接参与第3步λ3=y1Z2 3modp乘法运算,由此,可构造相同数量的两组具有不同y1坐标的P点输入,其中一组的另外一组的由于经过多次域上运算得到,可视为在(0,p)范围内随机分布。
λ3=y1Z2 3的运算复杂度的差异为与消耗的能量差异直接相关,分别通过对y1坐标处于区间(0,p/2)和(p/2,p)的P点的λ3=y1Z2 3运算的能量消耗进行观察,并对大量能量迹分别求均值后进行比较,即可推断出隐藏的点加操作,同时,由于点倍运算的中间点Q始终变化,点倍运算中涉及到Q点Y2坐标的操作消耗的能量不会出现统计特性。
所述的二进制算法运算如下,其中密钥比特的处理顺序从左到右:
输入:k=(kn-1,…,k1,k0)2(kn-1=1),P∈E(Fp)
输出:kP
(1)Q=P
(2)i=n-2到0,重复执行
(2.1)Q=2Q//点倍
(2.2)若ki=1,则Q=Q+P//点加
(3)返回(Q)
所述的式(24)的具体迭代步骤如下:
(1)T1=y2-y1(2)T2=x2-x1(3)T2=T2 -1(4)T2=T1T2 -1(5)x3=T2 2
(6)x3=x3-x1(7)x3=x3-x2(8)T1=x1-x3(9)y3=T1T2(10)y3=y3-y1
所述的式(28)的具体迭代步骤如下:
(1)T1=X2Z1(2)T2=X1Z2(3)T3=T1-T2(4)T4=Y2Z1(5)T5=Y1Z2(6)T4=T4-T5(7)T6=T3 2(8)T1=T1+T2(9)T1=T6T1(10)T7=Z1Z2(11)C=T4 2(12)C=CT7(13)C=C-T1(14)X3=T3C(15)T2=T2T6(16)T6=T6T3(17)T5=T6T5(18)Y3=T2-C(19)Y3=Y3T4(20)T3=Y3-T5(21)Z3=T6T7
所述的式(29)的具体迭代步骤如下:
(1)T1=Z1 2(2)T2=T1X2(3)T3=Z2 2(4)T4=T3X1(5)T5=T2-T4(6)T1=T1Z1(7)T1=T1Y2(8)T3=T3Z2(9)T3=T3Y1(10)T6=T1-T3(11)T2=T2+T4(12)T4=T5 2(13)T2=T2T4(14)X3=T6 2(15)X3=X3-T2(16)T4=T4T5(17)T1=T1+T3(18)T4=T4T1(19)Y3=T2-2X3(20)Y3=Y3T6(21)(22)Z3=Z1Z2(23)Z3=Z3T5
所述的式(30)的具体迭代步骤如下:
(1)T1=Z2 2(2)T2=T1Z2(3)T1=x1T1(4)T2=y1T2(5)T1=X2-T1(6)T2=Y2-T2(7)Z3=T1Z2(8)T3=T1 2(9)T4=T1T3(10)T3=T3X2(11)T1=2T3(12)X3=T2 2(13)X3=X3-T1(14)X3=X3+T4(15)T3=T3-X3(16)T3=T3T2(17)T4=T4Y2(18)Y3=T3-T4
对于使用相同的指令序列进行点加和点倍运算的密码模块,仅通过常用的侧信道能量分析方法很难区分出点加和点倍运算,本发明创新性地提出选择明文侧信道分析方法,简单可行。
本发明有如下优点:
(1)本发明针对隐藏功耗特征的ECC算法实现,创新地提出了选择明文的侧信道能量分析方法,使用本发明提出的新方法能够更有效、全面地对ECC密码算法实现进行侧信道能量分析;
(2)本发明通过分析算法运算中的功耗泄漏点,采集大量的能量迹求均值进行比较,即可分析出正确密钥,方法简单、易行,攻击成功率高。
(3)本发明在4种常用坐标的点加运算都可以实现选择明文侧信道分析,方法全面,可行性强。
附图说明
图1为本发明的一种对P域的ECC算法选择明文侧信道能量分析方法的椭圆曲线上点加运算几何表示图;
图2为本发明的一种对P域的ECC算法选择明文侧信道能量分析方法的椭圆曲线上点倍运算几何表示图;
图3为本发明的一种对P域的ECC算法选择明文侧信道能量分析方法 的选择明文侧信道能量分析流程;
图4为本发明的一种对P域的ECC算法选择明文侧信道能量分析方法的仿射坐标下,k=7时软件实现的kP运算采集到的功耗整体轮廓。
图5为本发明的一种对P域的ECC算法选择明文侧信道能量分析方法的仿射坐标下,k=7时软件实现的kP运算点加运算的功耗特征。
图6为本发明的一种对P域的ECC算法选择明文侧信道能量分析方法的仿射坐标下,k=7时软件实现的kP平均向量重叠后的波形及部分放大图。
图7为本发明的一种对P域的ECC算法选择明文侧信道能量分析方法的雅克比-仿射坐标下,k=7时kP运算功耗的整体轮廓。
图8为本发明的一种对P域的ECC算法选择明文侧信道能量分析方法的雅克比-仿射坐标下,k=7时kP运算中点加运算的功耗波形。
具体实施方式
下面结合实施例对本发明做进一步地说明:
本发明以仿射坐标、雅克比-仿射坐标下的能量分析为例,其他坐标下的能量分析与其一致。
仿射坐标系下ECC软件实现的选择明文能量分析
令kP运算中的k=7,整个运算的顺序为点倍-点加-点倍-点加。任意选取P(x,y)∈{(x,y)|(x,y)∈E(Fp),0<y<p/2},采集1200条整个运算的功耗能量迹集(即W);任意选取P(x,y)∈{(x,y)|(x,y)∈E(Fp),p>y>p/2},采集1200条整个运算的功耗能量迹集(即W′)。
对能量迹进行信号处理后,分别对两组能量迹集求平均值,获得两条 能量迹向量AVE和AVE′。图4为平均向量的整体轮廓,无法区分出点加和点倍运算。由密钥可知点加为第2次和第4次,放大波形如图5所示。
将AVE和AVE′进行重叠分析对比,图6中具有较高值的波形是y>p/2的平均能量迹。由此可证明通过对P坐标的构造,可以使ECC算法中的点加部分显示出较大的能量迹区分度,从而识别ECC密钥运算中的点加步骤,恢复密钥。
雅克比-仿射坐标下ECC硬件实现的选择明文能量分析
同理,令kP运算中的k=7,整个运算的顺序为点倍-点加-点倍-点加。任意选取P(x,y)∈{(x,y)|(x,y)∈E(FP),0<y<p/2},采集2500条整个运算的功耗能量迹集(即W);任意选取P(x,y)∈{(x,y)|(x,y)∈E(FP),p>y>p/2},,采集2500条整个运算的功耗能量迹集(即W′),整体功耗轮廓如图7所示,包括两次点加点倍,图8为点加部分的放大图,共包括11个峰值,主要体现了11个乘法运算的功耗特征。
对能量迹进行信号处理后,分别对两组能量迹集求平均值,获得两条能量迹向量AVE和AVE′。
将AVE和AVE′进行重叠分析对比,由于硬件实现的ECC算法对不同y值P点的点加运算能量消耗特征不明显,无法靠肉眼直接判断,在此统计对第二次点加运算中涉及的11次模乘运算分别的能量消耗值的差异。统计值如下表所示,在雅克比-仿射坐标ECC硬件实现的点加运算步骤中,由于选择明文P点的y坐标直接参与第4次模乘,通过对不同y坐标的构造,在模乘运算消耗的能量中体现了与其它模乘较大的能量消耗差异,由此可以识别出kP运算中的点加运算,进而推断出密钥比特。
模乘编号 | <p/2点的能量消耗 | >p/2点的能量消耗 | 能量消耗的差异 |
M1 | 34.210846 | 34.193375 | -0.0005 |
M2 | 31.65519 | 31.637566 | -0.0006 |
M3 | 27.302038 | 27.287497 | -0.0005 |
M4 | 28069105 | 28.11611 | 0.00117 |
M5 | 27.62477 | 27.602726 | -0.0008 |
M6 | 29.530966 | 29.529814 | 0.0000 |
M7 | 29.179401 | 29.16139 | -0.0006 |
M8 | 29.386608 | 29.377132 | -0.0003 |
M9 | 24.827814 | 24.828201 | 0.0000 |
M10 | 28.08244 | 28.05752 | -0.0009 |
M11 | 30.13278 | 30.14534 | 0.0004 |
点加运算采用不同输入点的能耗差异 。
Claims (7)
1.一种对P域的ECC算法选择明文侧信道能量分析方法,其特征在于,所述方法包括以下步骤:(1)采集两组kP运算时的能量迹,第一组获得能量迹矩阵为第二组获得能量迹矩阵为 (2)基于上步得到的能量迹进行侧信道能量分析,识别出隐藏的点加操作;(3)由上步中点加运算中存在差异部分,映射到能量迹上,对能量迹进行处理分析,分别对上述采集的两组能量迹矩阵W和W′求均值,得到平均能量迹AVE=(a1,…,at,…,aT)和AVE′=(a′1,…,a′t,…,a′T)其中 对两条平均能量迹AVE和AVE′进行比较,ΔAVE=|AVE-AVE′|=(Δa1,…,Δat,,…,ΔaT),若出现某些Δam~Δan段相比其他时间点的平均差值都大,即判断该部分为构造坐标y1直接参与影响的运算,继而区分出能量迹上的点加运算,根据二进制点乘算法,就可以推断出k的密钥序列。
2.根据权利要求1所述的一种对P域的ECC算法选择明文侧信道能量分析方法,其特征在于,步骤(1)具体过程是采集两组能量迹集,每组各为N条,每条能量迹的输入点P各不相同,P点x坐标随机选择,一个x坐标对应两个不同的y坐标,且这两个y相加等于P,利用这一特性可构造选择明文,在仿射坐标下和雅克比-仿射混合坐标下,第1组中选择的输入点P满足P(x1,y1)∈{(x,y)|(x,y)∈E(Fp),0<y<p/2},第2组中选择的输入点P满足P(x1,y1)∈{(x,y)|(x,y)∈E(Fp),p/2<y<p};在标准射影坐标和雅克比坐标下,第1组中选择的输入点P满足P(X1,Y1,Z1)Y1∈{(X,Y,Z)∈E(Fp),0<Y<p/2},第2组中选择的输入点P满足P(X1,Y1,Z1)Y1∈{(X,Y,Z)∈E(Fp),p/2<Y<p}。
3.根据权利要求1所述的一种对P域的ECC算法选择明文侧信道能量分析方法,其特征在于,步骤(2)中仿射坐标下ECC的能量分析的具体过程是:在二进制算法点加运算Q=Q+P中,P(x1,y1)为选择明文输入,Q(x2,y2)由P(x1,y1)经过多次点加和点倍得到,由式
点加公式可得P+Q=(x3,y3)的分步计算式:
x3=A3-x2;A5=x1-x3;M3=M1×A5;y3=M3-y1
式(3)共需要进行1次模逆,3次域乘法,6次域加法,其中,y1直接参与运算为第1步A1,并且A1的运算结果参与到第4步M1中,
构造相同数量的两组具有不同y1坐标的P点输入,其中一组的 另外一组的y1分别在区间(0,p/2)、(p/2,p)内随机分布,由于y2经过多次域上运算得到,视为在(0,p)范围内随机分布,对A1运算步骤的实现通常会对A1的输出结果进行正负检查,然后将负值通过加上p调整为正值,在这种情况下如果A1运算结果为负,则运算过程中会增加一个加法操作,从而造成能量消耗的差异,分析如下:
当时:
4.根据权利要求1所述的一种对P域的ECC算法选择明文侧信道能量分析方法,其特征在于,步骤(2)中标准射影坐标下ECC的能量分析的具体过程是:在标准射影坐标下,由仿射坐标(x,y)与标准射影坐标(X,Y,Z)的映射关系(x,y)→(X=xZ,Y=yZ,Z),X,Y,Z∈Fp,得到P(x1,y1)→P(X1,Y1,Z1)、Q(x2,y2)→Q(X2,Y2,Z2),根据式
X3=AC (4)
Y3=B(A2X1Z2-C)-A3Y1Z2 (5)
Z3=A3Z1Z2 (6)
得标准射影坐标点加P+Q=R(X3,Y3,Z3)的分布运算式:
λ1=X2Z1;λ2=X1Z2;λ3=λ1-λ2;λ4=Y2Z1;λ5=Y1Z2;
λ6=λ4-λ5;λ7=λ1+λ2;λ8=Z1Z2;λ10=λ9λ3;(7)
X3=λ3λ11;Y3=λ6(λ9λ2-λ11)-λ10λ5;
Z3=λ10λ8
式(7)共使用了15次域乘法和6次域加法。Y1=y1Z1modp,Z1为固定值c1,通常设置为1,y1间接参与λ5=Y1Z2modp乘法运算,由此构造相同数量的两组具有不同Y1=y1Z1坐标的P点输入,其中一组的另外一组的由于Z2经过多次域上运算得到,视为在(0,p)范围内随机分布,对大量不同的kP运算,有:
5.根据权利要求1所述的一种对P域的ECC算法选择明文侧信道能量分析方法,其特征在于,步骤(2)中雅克比坐标下ECC的能量分析的具体过程是:在雅克比坐标下,由仿射坐标(x,y)与雅克比坐标(X,Y,Z)的映射关系(x,y)→(X=xZ2,Y=yZ3,Z),X,Y,Z∈Fp,可知P(x1,y1)→P(X1,Y1,Z1)、Q(x2,y2)→Q(X2,Y2,Z2),根据式
X3=B2-A2(X2Z1 2+X1Z2 2) (8)
得到雅克比坐标点加P+Q=R(X3,Y3,Z3)运算步骤:
λ1=X2Z1 2;λ2=X1Z2 2;λ3=λ1-λ3;λ4=Y2Z1 3;λ5=Y1Z2 3;
式(10)共使用了16次域乘法和7次域加法,Y1=y1Z1 3modp,Z1为固定值c1,y1间接参与λ5=Y1Z2 3modp乘法运算,由此构造相同数量的两组具有不同坐标的P点输入,其中一组的另外一组的 由于Z2 3经过多次域上运算得到,可视为在(0,p)范围内随机分布,
6.根据权利要求1所述的一种对P域的ECC算法选择明文侧信道能量分析方法,其特征在于,步骤(2)中雅克比-仿射坐标下ECC的能量分析的具体过程是:雅克比-仿射坐标点加中的Q(x2,y2)→Q(X2,Y2,Z2)为雅克比坐标,P(x1,y1)为仿射坐标,映射为雅克比坐标P(X,Y,Z)=P(x1,y1,1),根据式
X3=B2-2A2X1-A3 (11)
Y3=B(A2X1-X3)-A3Y1 (12)
得到雅克比-仿射坐标点加P+Q=R(X3,Y3,Z3)运算迭代式:
λ1=x1Z2 2;λ2=X2-λ1;λ3=y1Z2 3;λ4=Y2-λ3;Z3=λ2Z2;
λ5=λ2 2;λ6=λ2λ5;λ7=X2λ5;X3=λ4 2-2λ7+λ6; (13)
λ8=λ7-X3;Y3=λ8λ4-λ6Y2
式(13)共使用了11次域乘法和6次域加法,y1直接参与第3步λ3=y1Z2 3域乘法运算,由此,可构造相同数量的两组具有不同y1坐标的P点输入,其中一组的另外一组的由于经过多次域上运算得到,可视为在(0,p)范围内随机分布,
7.根据权利要求3、4、5或6所述的一种对P域的ECC算法选择明文侧信道能量分析方法,其特征在于,式(24)的具体迭代步骤如下:
(1)T1=y2-y1(2)T2=x2-x1(3)T2=T2 -1(4)T2=T1T2 -1(5)x3=T2 2
(6)x3=x3-x1(7)x3=x3-x2(8)T1=x1-x3(9)y3=T1T2(10)y3=y3-y1
式(28)的具体迭代步骤如下:
(1)T1=X2Z1(2)T2=X1Z2(3)T3=T1-T2(4)T4=Y2Z1(5)T5=Y1Z2(6)T4=T4-T5(7)T6=T3 2(8)T1=T1+T2(9)T1=T6T1(10)T7=Z1Z2(11)C=T4 2(12)C=CT7(13)C=C-T1(14)X3=T3C(15)T2=T2T6(16)T6=T6T3(17)T5=T6T5(18)Y3=T2-C(19)Y3=T3T4(20)T3=Y3-T5(21)Z3=T6T7
式(29)的具体迭代步骤如下:
(1)T1=Z2 2(2)T2=T1X2(3)T3=Z1 2(4)T4=T3X1(5)T5=T2-T4(6)T1=T1Z2(7)T1=T1Y2(8)T3=T3Z1(9)T3=T3Y1(10)T6=T1-T3(11)T2=T2+T4(12)T4=T5 2(13)T2=T2T4(14)X3=T6 2(15)X3=X3-T2(16)T4=T4T5(17)T1=T1+T3(18)T4=T4T1(19)Y3=T2-2X3(20)Y3=Y3T5 (22)Z3=Z1Z2(23)Z3=Z3T5
式(30)的具体迭代步骤如下:
(1)T1=Z2 2(2)T2=T1Z2(3)T1=x1T1(4)T2=y1T2(5)T1=X2-T1(6)T2=Y2-T2(7)Z3=T1Z2(8)T3=T1 2(9)T4=T1T3(10)T3=T3X2(11)T1=2T3(12)X3=T2 2(13)X3=X3-T1(14)X3=X3+T4(15)T3=T3-X3(16)T3=T3T2(17)T4=T4Y2(18)T3=T3-T4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310348111.7A CN103441846B (zh) | 2013-08-12 | 2013-08-12 | 一种对p域的ecc算法选择明文侧信道能量分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310348111.7A CN103441846B (zh) | 2013-08-12 | 2013-08-12 | 一种对p域的ecc算法选择明文侧信道能量分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103441846A true CN103441846A (zh) | 2013-12-11 |
CN103441846B CN103441846B (zh) | 2016-08-10 |
Family
ID=49695515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310348111.7A Active CN103441846B (zh) | 2013-08-12 | 2013-08-12 | 一种对p域的ecc算法选择明文侧信道能量分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103441846B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161022A (zh) * | 2015-03-31 | 2016-11-23 | 上海复旦微电子集团股份有限公司 | 基于ecc密码模块的防攻击方法及装置 |
CN106464483A (zh) * | 2014-02-12 | 2017-02-22 | 智能Ic卡公司 | 用于电子部件实现椭圆曲线密码算法的应对方法 |
CN107204856B (zh) * | 2017-08-01 | 2019-10-22 | 北京智慧云测科技有限公司 | 一种检测椭圆曲线算法漏洞的方法及装置 |
CN112968761A (zh) * | 2021-03-15 | 2021-06-15 | 北京理工大学 | 一种针对密码算法的人工智能侧信道分析方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090034720A1 (en) * | 2007-07-11 | 2009-02-05 | Yoo-Jin Baek | Method of countering side-channel attacks on elliptic curve cryptosystem |
CN101494537A (zh) * | 2009-02-27 | 2009-07-29 | 深圳先进技术研究院 | 密码安全芯片侧信道安全程度量化评测方法 |
CN101562522A (zh) * | 2009-05-06 | 2009-10-21 | 深圳先进技术研究院 | 抗侧信道攻击的椭圆曲线密码系统实现方法 |
CN103166752A (zh) * | 2013-01-25 | 2013-06-19 | 国家密码管理局商用密码检测中心 | 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用 |
-
2013
- 2013-08-12 CN CN201310348111.7A patent/CN103441846B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090034720A1 (en) * | 2007-07-11 | 2009-02-05 | Yoo-Jin Baek | Method of countering side-channel attacks on elliptic curve cryptosystem |
CN101494537A (zh) * | 2009-02-27 | 2009-07-29 | 深圳先进技术研究院 | 密码安全芯片侧信道安全程度量化评测方法 |
CN101562522A (zh) * | 2009-05-06 | 2009-10-21 | 深圳先进技术研究院 | 抗侧信道攻击的椭圆曲线密码系统实现方法 |
CN103166752A (zh) * | 2013-01-25 | 2013-06-19 | 国家密码管理局商用密码检测中心 | 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用 |
Non-Patent Citations (1)
Title |
---|
姚剑波: "《密码芯片侧信道攻击仿真环境的设计与实现》", 《计算机工程与应用》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106464483A (zh) * | 2014-02-12 | 2017-02-22 | 智能Ic卡公司 | 用于电子部件实现椭圆曲线密码算法的应对方法 |
US10374790B2 (en) | 2014-02-12 | 2019-08-06 | Secure-Ic Sas | Countermeasure method for an electronic component implementing an elliptic curve cryptography algorithm |
CN106464483B (zh) * | 2014-02-12 | 2019-12-03 | 智能Ic卡公司 | 用于电子部件实现椭圆曲线密码算法的应对方法、电子电路和电子系统 |
CN106161022A (zh) * | 2015-03-31 | 2016-11-23 | 上海复旦微电子集团股份有限公司 | 基于ecc密码模块的防攻击方法及装置 |
CN107204856B (zh) * | 2017-08-01 | 2019-10-22 | 北京智慧云测科技有限公司 | 一种检测椭圆曲线算法漏洞的方法及装置 |
CN112968761A (zh) * | 2021-03-15 | 2021-06-15 | 北京理工大学 | 一种针对密码算法的人工智能侧信道分析方法 |
CN112968761B (zh) * | 2021-03-15 | 2022-04-19 | 北京理工大学 | 一种针对密码算法的人工智能侧信道分析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103441846B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fouque et al. | Fault attack on elliptic curve Montgomery ladder implementation | |
Joux et al. | Cover and Decomposition Index Calculus on Elliptic Curves Made Practical: Application to a Previously Unreachable Curve over | |
Goundar et al. | Scalar multiplication on Weierstraß elliptic curves from Co-Z arithmetic | |
Feix et al. | Side-channel analysis on blinded regular scalar multiplications | |
CN103825722A (zh) | 一种sm4密码算法的二阶侧信道能量分析方法 | |
CN103647637A (zh) | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 | |
CN103457719A (zh) | 一种对sm3密码算法hmac模式的侧信道能量分析方法 | |
CN103441846A (zh) | 一种对p域的ecc算法选择明文侧信道能量分析方法 | |
CN104852795A (zh) | 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法 | |
Teske | An elliptic curve trapdoor system | |
Bessalov et al. | Computing of odd degree isogenies on supersingular twisted Edwards curves | |
Reyad et al. | On pseudo-random number generators using elliptic curves and chaotic systems | |
Whelan et al. | Side channel analysis of practical pairing implementations: Which path is more secure? | |
WO2004112306A2 (en) | Method for defence against differential power analysis attacks | |
CN104796250A (zh) | 针对RSA密码算法M-ary实现的侧信道攻击方法 | |
Goundar et al. | Co-Z addition formulæ and binary ladders on elliptic curves | |
CN104967509B (zh) | 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法 | |
Hedabou et al. | Countermeasures for preventing comb method against SCA attacks | |
CN104811297A (zh) | 针对RSA之M-ary实现模乘余数输入侧信道攻击 | |
Choie et al. | Implementation of Tate pairing on hyperelliptic curves of genus 2 | |
Hedabou et al. | A comb method to render ECC resistant against Side Channel Attacks | |
CN104811295A (zh) | 一种对具备掩码防护的祖冲之密码算法进行侧信道能量分析方法 | |
Dubeuf et al. | ECDSA passive attacks, leakage sources, and common design mistakes | |
KR100731575B1 (ko) | 전력분석공격에 대응하는 암호화 방법 | |
CN104717060A (zh) | 一种攻击椭圆曲线加密算法的方法和攻击设备 |
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 |