CN101562522A - 抗侧信道攻击的椭圆曲线密码系统实现方法 - Google Patents

抗侧信道攻击的椭圆曲线密码系统实现方法 Download PDF

Info

Publication number
CN101562522A
CN101562522A CNA2009101069412A CN200910106941A CN101562522A CN 101562522 A CN101562522 A CN 101562522A CN A2009101069412 A CNA2009101069412 A CN A2009101069412A CN 200910106941 A CN200910106941 A CN 200910106941A CN 101562522 A CN101562522 A CN 101562522A
Authority
CN
China
Prior art keywords
point
mould
elliptic curve
flow process
doubling
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.)
Pending
Application number
CNA2009101069412A
Other languages
English (en)
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.)
Shenzhen Institute of Advanced Technology of CAS
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
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 Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CNA2009101069412A priority Critical patent/CN101562522A/zh
Publication of CN101562522A publication Critical patent/CN101562522A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种抗侧信道攻击(Side-Channel Attacks,简称SCA)的椭圆曲线密码系统(Elliptic Curve Cryptosystem,简称ECC)的实现方法,属于密码算法领域。在所述的抗侧信道攻击的椭圆曲线密码系统实现方法中,包括在加解密过程中由密钥决定的点乘运算的运算步骤,所述的点乘运算步骤用具有平衡的运算流程的点加与倍点的运算组合完成。通过对点加和倍点的运算流程进行平衡,使得二者的运算时间相同,消耗的功耗也相同,因此消除了二者泄露的侧信道信息的差异,在整个点乘运算过程中,基于点加和倍点的差异的侧信道攻击方法无法再对ECC进行攻击。

Description

抗侧信道攻击的椭圆曲线密码系统实现方法
【技术领域】
本发明涉及密码算法,尤其是涉及一种抗侧信道攻击的椭圆曲线密码系统实现方法。
【背景技术】
密码设备,如智能卡等的应用已经越来越广泛,由于它保护的对象具有较强的私密性,因此其安全性一直备受关注。椭圆曲线密码系统(Elliptic CurveCryptosystem,简称ECC)作为在密码设备中应用较为广泛的一种密码协议,其在数学上具有较强的安全性,但在密码设备上进行实现时,又会面临较多的攻击方式。在众多种攻击方法中,利用密码设备所泄漏的一些侧信道信息来攻破这些密码系统是最有威胁的一种攻击方式,一般把这种攻击叫做侧信道攻击(Side-Channel Attacks,简称SCA)。
功率消耗对于密码设备是一种重要的侧信道信息,因为密码设备执行的计算最终都归结到了对逻辑状态0和1的操作,而当前技术的制约导致当处理逻辑0和逻辑1时会有不同的功率消耗,攻击者能够监测这种功耗的差异并获得有用的侧信道信息。目前针对椭圆曲线密码系统(Elliptic Curve Cryptosystem,简称ECC)的侧信道攻击方式主要是简单功耗分析(Simple Power Analysis,SPA),它的基本思想是功耗与密钥操作数有相关性,在熟悉设备的算法实现的基础上,从少量的功耗曲线,就可直接观察分析出关键数据,甚至能够直接获得密钥。
ECC的密钥d主要参与了ECC系统中的点乘运算:
Figure A20091010694100031
点乘又叫标量乘,是指对椭圆曲线上的一个点P做d次的累加运算,根据d的不同,点乘运算的运算结构也会不一样。目前已有很多种实现点乘运算的方法,其中最简单的实现方法是二进制实现方法,如下所示:
 点乘的二进制实现方法(从高位到低位)
 输入:d=(dn-1,…,d1,d0)2,P∈E(Fp)(dn-1=1)。输出:dP。
 1.Q←P2.i从n-2到0执行2.1Q←2Q;2.2如果di=1执行Q←Q+P;3.返回(Q)。
可见,在计算点乘时,需要先将密钥d表示为二进制,然后对其从高位开始逐位扫描,若该位为0,则只需计算一次倍点运算;若该位为1,则需先进行一次倍点运算,再进行一次点加运算。因此,在这种实现方式中,只要能够区别出点加和倍点运算各自所在的区域,就可以直接获得密钥d的二进制表示形式。
国际公钥密码标准IEEE Std 1363-2000给出了ECC中点加和倍点运算的详细实现方式,但按照这种方式实现的ECC密码设备极易受到SPA的攻击。因为在这个标准中,点加运算与倍点运算具有不同的运算形式,如下所示:
倍点:(X2,Y2,Z2)=2(X1,Y1,Z1),则
X2=M2-2S,Y2=M(S-X2)-T,Z2=2Y1Z1
其中M=3X1 2+aZ1 4,S=4X1Y1 2,T=8Y1 4
点加:(X2,Y2,Z2)=(X0,Y0,Z0)+(X1,Y1,Z1),则
X2=R2-TW2,Y2=1/2(VR-MW3),Z2=Z0Z1W
其中, U 0 = X 0 Z 1 2 , S 0 = Y 0 Z 1 3 , U 1 = X 1 Z 0 2 S 1 = Y 1 Z 0 3 , W = U 0 - U 1 , R = S 0 - S 1 T = U 0 + U 1 , M = S 0 + S 1 , V = TW 2 - 2 X 2
可见,倍点只需要进行10次乘法运算,而点加需要16次乘法运算,而且二者总的运算流程也不一样。因此,在功耗曲线上,无论是运算时间,还是消耗的功耗,二者都是不一样的。图1是采用了投射坐标下素数域中的实现方式后所采集到的一段功耗轨迹。
由图1可见,点加的运算时间比倍点的运算长了百分之十以上;二者的功耗轨迹中的功耗尖峰也存在很大的差异:倍点的尖峰分布几乎是均匀分布的,而点加的尖峰呈现出不同的集中区域,此外,点加和倍点功耗轨迹中的尖峰数目也不一样。
因此,若采用这种方式实现ECC的二进制点乘运算,攻击者将很容易区别出点加和倍点运算所在的功耗区域,因此极易获得ECC的密钥d,如图2所示:
从图2中可直接获得点乘运算所运算的密钥位:“0101”。
【发明内容】
有鉴于此,有必要针对ECC容易被依据点加和倍点的功耗的差异攻击的问题,提供一种抗侧信道攻击的椭圆曲线密码系统实现方法,使攻击者无法再区别出点加和倍点运算所在的区域,从而达到保护密钥的作用。
一种抗侧信道攻击的椭圆曲线密码系统的实现方法,包括在加解密过程中用密钥对选定坐标的有限域上的椭圆曲线上的点进行点乘运算的步骤,在所述点乘运算的运算步骤中包括有序的点加和倍点运算,所述点加运算和倍点运算均用模运算函数实现,所述点加运算和倍点运算的运算流程是平衡的。
优选地,所述的选定坐标包括仿射坐标、投射坐标及其混合坐标。
优选地,所述的有限域包括二进制有限域、素数有限域。
优选地,所述模运算函数包括模加、模减、模半、模乘、模逆和数据转移。
优选地,所述点加运算和倍点运算的运算流程是平衡的,是指点加运算和倍点运算的流程中,包含的模运算函数的个数相同且对应的步骤中的模运算函数的类型相同。
在所述的点加和倍点的平衡运算流程中,由于在实现相同的模运算时,实际参与模运算的数据对模运算的运算时间和功耗的影响可以忽略,即不同的数据进行同样的模运算时,整个模运算耗费的时间和消耗的功耗都不会有明显的差异。因此,总体看来,一个完整的点加运算和一个完整的倍点运算所耗费的时间是一样长的,消耗的总功耗是一样多的,因而无法再区别出点加和倍点运算所在的区域。在不知道密钥的情况下,已经无法再通过一些侧信道信息(如功耗)来找出具体执行点加(或者倍点)运算的区域,如在功耗曲线上执行点加运算的功耗区域,也就无法依据二者功耗的差异对ECC的点乘进行攻击了。
【附图说明】
图1为投射坐标下素数域中的ECC实现方式中所采集到的一段功耗轨迹;
图2为投射坐标下素数域中的ECC实现方式中所采集到的另一段较长的功耗轨迹;
图3为有限域上6种基本操作的模块示意图;
图4为不平衡的点加(a)和倍点(b)运算流程示意图;
图5为有限域上的基本运算的开销示意图(注:该图中各值的大小与实际数值的大小不成比例关系);
图6为平衡的点加(a)和倍点(b)运算流程示意图;
图7为采用表2中的平衡流程实现表3中的二进制点乘运算时采集到的一段功耗轨迹。
【具体实施方式】
在以下抗侧信道攻击的椭圆曲线密码系统实现方法中,通过平衡点加和倍点的运算流程,在密钥参与ECC的点乘运算时,每一个完整的点加运算和每一个完整的倍点运算所耗费的时间是一样长的,消耗的总功耗是一样多的,因而在整个点乘运算过程中已无法再区别出点加和倍点运算所在的区域,也就无法依据二者功耗的差异对ECC的点乘进行攻击了。
在椭圆曲线密码算法标准中,不同的坐标下,椭圆曲线上的点有不同的表示形式,因此选定了坐标后才能设计出相应的模运算函数,常用的坐标有仿射坐标、投射坐标及其混合坐标等。对于在何种有限域上的椭圆曲线也决定了不同的密码算法,常见的有限域有二进制有限域、素数有限域等。
在选定了坐标和有限域之后,首先需要设计该坐标和有限域上的模运算函数,常用的有模加(MA)、模减(MS)、模半(MH)、模乘(MS)、模逆(MI)和数据转移(DT)等操作。由于ECC的有限域运算都是需要进行取模运算的,假设ECC中模的值为p,则数据转移、模加、模减、模半、模乘和模逆运算可分别定义如下:
(1)、数据转移(Date Transfer,简称DT):Tz←Tx,表示直接将Tx送入Tz
(2)、模加运算(Modulo Addition,简称MA):Tz←Tx+Ty(modp),表示Tx与Ty的和对p取模后所得的结果送入Tz
(3)、模减运算(Modulo Subtraction,简称MS):Tz←Tx-Ty(modp),表示Tx与Ty的和对p取模后所得的结果送入Tz
(4)、模半运算(Modulo Half,简称MH):Tz←Tx/2(modp),表示Tx除以2所得的数对p取模后所得的结果送入Tz
(5)、模乘运算(Modulo Multiplication,简称MM):Tz ←Tx×Ty(modp),表示Tx与Ty的乘积对p取模后所得的结果送入Tz
(6)、模逆运算(Modulo Inversion,简称MI):Tz←Tx -1(modp),表示Tx的逆对p取模后所得的结果送入Tz
在不同的工作环境下,不同模运算的开销是不一样的。一般情况下,模乘的运算消耗远大于数据转移、模加、模减和模半的消耗,模逆的开销又大于模乘的。因此,计算点加和倍点的运算开销时常只考虑模乘和模逆的开销,而且,为了较少运算开销,设计时应尽量避免使用开销较大的模逆运算。
由于ECC可以在多种坐标和有限域中实现,而且各种实现方式差异较大,如国际公钥密码标准IEEE Std 1363-2000中投射坐标下素数域上的ECC点加和倍点运算流程中,模逆运算就可以避免。
利用前述设计好的模加(MA)、模减(MS)、模半(MH)、模乘(MS)和数据转移(DT)运算函数,分别逐步实现ECC的点加和倍点运算。
对比点加和倍点运算流程中各步骤的异同,包括对比总的运算步骤的数量和各步骤所进行的模运算。
然后针对点加和倍点运算的不同点,分别在点加和倍点利用模运算函数的运算流程中通过调整模运算函数的顺序和/或增加伪操作使点加和倍点的每一步的模运算函数是相同的类型。
实施例1
以国际公钥密码标准IEEE Std 1363-2000中投射坐标下素数域上的ECC为例,进一步描述本发明所述的抗侧信道攻击的椭圆曲线密码系统实现方法。
如图1所示,将数据转移(DT)、模加(MA)、模减(MS)、模半(MH)、模乘(MM)、模逆(MI)分别用不同的模块表示,即图1(a)表示数据转移(DT)、图1(b)表示模加(MA)和模减(MS)、图1(c)表示模半(MH)、图1(d)表示模乘(MM)以及图1(e)表示模逆(MI)。又由于运算流程中不可避免地需要进行一些条件判断操作,在此可使用图1(f)模块表示这种操作。
根据前述的内容,国际公钥密码标准IEEE Std 1363-2000中,点加运算与倍点运算的运算形式如下所示:
倍点:(X2,Y2,Z2)=2(X1,Y1,Z1),则
              X2=M2-2S,  Y2=M(S-X2)-T,  Z2=2Y1Z1
其中M=3X1 2+aZ1 4,S=4X1Y1 2,T=8Y1 4
点加:(X2,Y2,Z2)=(X0,Y0,Z0)+(X1,Y1,Z1),则
            X2=R2-TW2,Y2=1/2(VR-MW3),Z2=Z0Z1W
其中, U 0 = X 0 Z 1 2 , S 0 = Y 0 Z 1 3 , U 1 = X 1 Z 0 2 S 1 = Y 1 Z 0 3 , W = U 0 - U 1 , R = S 0 - S 1 T = U 0 + U 1 , M = S 0 + S 1 , V = TW 2 - 2 X 2
分别将点加与倍点运算用模运算函数逐步表示,如表1所示。
表1
Figure A20091010694100082
Figure A20091010694100083
如果T2=0或者T3=0,则返回(1,1,0)。
Figure A20091010694100091
在倍点运算的流程中,第12步得到M(M=3X1 2+aZ1 4)、第14步表示得到Z2、第18步得到S(S=4X1Y1 2)、第22步得到X2、第26步得到T(T=8Y1 4)、第29步
                           
Figure A20091010694100092
如果T4=0{如果T5=0,则返回(0,0,0);否则,返回(1,1,0)}。
得到Y2。经过简单模运算函数的有序逐步的运算,最后得到了倍点结果。同理,点加运算也是如此。从表1中可以看出,倍点运算总共需要30步,点加运算总共需要40步,并且从第4步开始,模运算函数开始有所不同。
将点加与倍点运算的流程用模块有序的表示出来,如图4所示。
图4(a)中完成的是点加运算,(b)中完成的是倍点运算,两个运算流程分别包含了不同数量的模加(MA)或模减(MS)、模半(MH)、模乘(MS)和数据转移(DT)操作,对比图(a)和(b),可见,点加运算与倍点运算的运算总量不同,各步骤所完成的运算也不一样。
图5是不同的模运算函数运算所需时间及消耗功率的示意图。图中DT、MA(MS)、MH、MM和MI的运算时间分别为Δt1、Δt2、Δt3、Δt4和Δt5,相对于非运算时期的工作电势分别为ΔV1、ΔV2、ΔV3、ΔV4和ΔV5。由于模加和模减的运算机理类似,故其运算时间和工作电势基本相同。从图中可以看出不同的模运算函数具有明显不同的时间和功率消耗。
所以如果使用表1所示运算流程来实现点加和倍点运算,二者的功耗轨迹将呈现出极为明显的差异,可能泄露与密钥相关的信息。故此需要逐步对比表1中各步骤的异同,设计点加和倍点的运算流程使其达到平衡,即使二者具有同样多的运算步骤,对应的各步也是相同类型的运算。因此需要在不影响运算结果的情况下调整模运算函数的位置和/或增加一些伪操作,来达到可以使用相似的流程来实现点加和倍点运算的目的。
调整模运算函数的位置的基础是,数据转移(DT)的操作往往是用来保存中间结果的,所以在利用这些中间结果之前,这个操作是可以被放在利用中间结果的模运算函数之前的任意位置的。如图2,结合表1,点加运算流程中的4、5、6步的数据转移操作对7、8、9、10步的模乘运算(MM)来说是可以后移的(除开第6步中的将Z1赋值给T6的操作,因为Z1既可以先赋值给T6,让T6参与运算,也可以直接参与运算,所以当Z1直接参与运算后,第4、5、6步的数据转移在第7、8、9、10步的模乘运算之前还是之后也就没有关系了)。
而增加伪操作的基础是,可以把任何需要对应相同模运算函数类型的地方进行任意中间结果的计算,而这个中间结果不参与且不影响后面关键步骤的计算即可。这样做的代价就是多消耗一些存储空间。比如表2中,第8步,倍点运算为了和点加运算中的数据转移操作有对应的操作,增加了一步将T2赋值给T7的数据转移操作。可以看到T7在后面的运算中都没有参与关键步骤的计算(表中伪操作都用Dn标注,D表示伪操作(dummy operation),n为序号,从1开始计数,Dn表示第n个伪操作),因而不会影响计算的最终结果。这是一种简单的实现方法,但是一般为了节省步骤,可以设计出更好的可以尽量用到这些伪操作的中间结果。
表2是经过调整步骤以及增加伪操作后所得到的具体的模运算函数的操作流程,用相应的模块图表示出来如图4所示。
表2
Figure A20091010694100111
Δ如果T2=0或者T3=0,则返回(1,1,0)。
Figure A20091010694100112
如果T4=0{如果T5=0,则返回(0,0,0);否则,返回(1,1,0)}。
Figure A20091010694100121
图6(a)中完成的是点加运算,(b)中完成的是倍点运算,两个运算流程分别包含了相同数量的模加(MA)或模减(MS)、模半(MH)、模乘(MS)和数据转移(DT)操作,而且均需要45步运算,各步骤所完成的模运算也是一样的。因此,点加运算流程和倍点运算流程达到了很好的平衡,在功耗曲线上将呈现出很大的相似性。
如表2所示,这种平衡的点加和倍点运算流程包括两个流程:点加运算流程和倍点运算流程。这两个运算流程总的运算步骤数相同,均为45步,而且对应的每一步都完成了相同的运算。在设计这两个运算流程时,在保证正确完成点加和倍点运算的基础上,首先需要考虑的是使二者的运算流程一致。由于模加的运算量与模减的运算消耗几乎是一样的,为了减少运算步骤,因此可将点加的运算流程中的一些模减运算与倍点中的模加相对应(如在第21步中,点加运算流程就是利用模减与倍点运算流程中的模加相对应的)。在各种平衡点加和倍点运算流程的实现方式中,表2所示的这种平衡流程兼顾了实现速度的考虑,是投射坐标下素数域上所有的点加和倍点平衡运算流程中较为快速的一种实现方式。
在表2所示运算流程中,标注出来的运算就是所增加的伪操作,可见,倍点运算流程增加了15个伪操作,点加运算流程增加了7个伪操作。这些伪操作的作用就是使点加和倍点的运算流程每一步都达到一致。其实,只要不影响点加和倍点的运算结果,实际参与这些伪操作的运算数是可以随意选定的。在使用表2所示的平衡运算流程在智能卡上实现如表3所示的ECC二进制点乘运算时,点加和倍点运算的功耗曲线将极其相似,如图7所示,攻击者已无法通过SPA区别出功耗曲线中点加和倍点运算所在的区域。
表3
  输入:d=(dn-1,….,d1,d0)2,P∈E(Fp)(dn-1=1)。输出:dP。
  1.Q←P2.i从n-2到0执行2.1Q←2Q;(调用平衡后的倍点运算流程实现)2.2如果di=1执行Q←Q+P;(调用平衡后的点加运算流程实现)3.返回(Q)。
在图7中,二进制点乘所运算的密钥位为“0101”。由于采用了平衡的点加和倍点运算流程,使用SPA已经无法从图中猜测出点加运算或者倍点运算所在的区域,也就无法获知所运算的密钥位,从而很好地保护了密钥。(注:由于采集功耗曲线时受到一些不可避免的外界因素的影响,图7所示功耗曲线的相似性受到一定的干扰,但攻击者仍无法通过SPA区别出点加和倍点运算所在的区域。)

Claims (5)

1、一种抗侧信道攻击的椭圆曲线密码系统实现方法,包括在加解密过程中由密钥决定的点乘运算的运算步骤,在所述点乘运算的运算步骤中包括有序的点加和倍点运算,所述点加运算和倍点运算均用模运算函数实现,其特征在于,所述点加运算和倍点运算的运算流程是平衡的。
2、根据权利要求1所述的抗侧信道攻击的椭圆曲线密码系统实现方法,其特征在于,所述的选定坐标包括仿射坐标、投射坐标及其混合坐标。
3、根据权利要求1所述的抗侧信道攻击的椭圆曲线密码系统实现方法,其特征在于,所述的有限域包括二进制有限域、素数有限域。
4、根据权利要求1所述的抗侧信道攻击的椭圆曲线密码系统实现方法,其特征在于,所述模运算函数包括模加、模减、模半、模乘、模逆和数据转移运算。
5、根据权利要求1所述的抗侧信道攻击的椭圆曲线密码系统实现方法,其特征在于,所述点加运算和倍点运算的运算流程是平衡的,是指点加运算和倍点运算的流程中,包含的模运算函数的个数相同且对应的步骤中的模运算函数的类型相同。
CNA2009101069412A 2009-05-06 2009-05-06 抗侧信道攻击的椭圆曲线密码系统实现方法 Pending CN101562522A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2009101069412A CN101562522A (zh) 2009-05-06 2009-05-06 抗侧信道攻击的椭圆曲线密码系统实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2009101069412A CN101562522A (zh) 2009-05-06 2009-05-06 抗侧信道攻击的椭圆曲线密码系统实现方法

Publications (1)

Publication Number Publication Date
CN101562522A true CN101562522A (zh) 2009-10-21

Family

ID=41221154

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2009101069412A Pending CN101562522A (zh) 2009-05-06 2009-05-06 抗侧信道攻击的椭圆曲线密码系统实现方法

Country Status (1)

Country Link
CN (1) CN101562522A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924600A (zh) * 2010-07-30 2010-12-22 中国科学院软件研究所 检测密码模块抵御能量分析攻击能力的方法
CN102446088A (zh) * 2011-09-20 2012-05-09 中国科学院深圳先进技术研究院 椭圆曲线标量乘的并行处理方法及系统
CN103023659A (zh) * 2013-01-08 2013-04-03 武汉大学 一种参数位宽可扩展的ecc加密硬件装置
CN103441846A (zh) * 2013-08-12 2013-12-11 国家密码管理局商用密码检测中心 一种对p域的ecc算法选择明文侧信道能量分析方法
CN104285378A (zh) * 2012-04-25 2015-01-14 英赛瑟库尔公司 具有免受侧信道攻击保护的循环冗余校验方法
CN104579651A (zh) * 2013-10-28 2015-04-29 上海复旦微电子集团股份有限公司 椭圆曲线密码点乘运算的方法和装置
CN104917608A (zh) * 2015-05-19 2015-09-16 清华大学 一种密钥抗功耗攻击的方法
CN105450398A (zh) * 2014-09-23 2016-03-30 德克萨斯仪器股份有限公司 用于使用椭圆曲线密码学的数字认证的加倍、加法和减法操作的齐次原子式
CN106161022A (zh) * 2015-03-31 2016-11-23 上海复旦微电子集团股份有限公司 基于ecc密码模块的防攻击方法及装置
CN106712949A (zh) * 2015-11-12 2017-05-24 中国科学院声学研究所 一种基于Montgomery的分段计算标量乘方法
CN107104785A (zh) * 2016-02-22 2017-08-29 埃沙尔公司 测试电路对侧信道分析的抵抗力的方法
CN107241198A (zh) * 2017-08-01 2017-10-10 北京智慧云测科技有限公司 一种椭圆曲线算法的安全性评估方法及装置
CN108123790A (zh) * 2016-11-30 2018-06-05 深圳先进技术研究院 一种侧信道攻击方法及装置
CN108875416A (zh) * 2018-06-22 2018-11-23 北京智芯微电子科技有限公司 椭圆曲线多倍点运算方法和装置
CN113225187A (zh) * 2021-04-14 2021-08-06 中国人民解放军战略支援部队信息工程大学 一种面向椭圆曲线密码芯片的抗能量攻击补偿方法及系统

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924600B (zh) * 2010-07-30 2013-01-02 中国科学院软件研究所 检测密码模块抵御能量分析攻击能力的方法
CN101924600A (zh) * 2010-07-30 2010-12-22 中国科学院软件研究所 检测密码模块抵御能量分析攻击能力的方法
CN102446088A (zh) * 2011-09-20 2012-05-09 中国科学院深圳先进技术研究院 椭圆曲线标量乘的并行处理方法及系统
CN104285378A (zh) * 2012-04-25 2015-01-14 英赛瑟库尔公司 具有免受侧信道攻击保护的循环冗余校验方法
CN103023659B (zh) * 2013-01-08 2015-06-10 武汉大学 一种参数位宽可扩展的ecc加密硬件装置
CN103023659A (zh) * 2013-01-08 2013-04-03 武汉大学 一种参数位宽可扩展的ecc加密硬件装置
CN103441846A (zh) * 2013-08-12 2013-12-11 国家密码管理局商用密码检测中心 一种对p域的ecc算法选择明文侧信道能量分析方法
CN103441846B (zh) * 2013-08-12 2016-08-10 国家密码管理局商用密码检测中心 一种对p域的ecc算法选择明文侧信道能量分析方法
CN104579651A (zh) * 2013-10-28 2015-04-29 上海复旦微电子集团股份有限公司 椭圆曲线密码点乘运算的方法和装置
CN104579651B (zh) * 2013-10-28 2018-08-24 上海复旦微电子集团股份有限公司 椭圆曲线密码点乘运算的方法和装置
CN105450398A (zh) * 2014-09-23 2016-03-30 德克萨斯仪器股份有限公司 用于使用椭圆曲线密码学的数字认证的加倍、加法和减法操作的齐次原子式
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
CN105450398B (zh) * 2014-09-23 2021-02-26 德克萨斯仪器股份有限公司 一种产生数字签名的方法
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
CN106161022A (zh) * 2015-03-31 2016-11-23 上海复旦微电子集团股份有限公司 基于ecc密码模块的防攻击方法及装置
CN104917608A (zh) * 2015-05-19 2015-09-16 清华大学 一种密钥抗功耗攻击的方法
CN104917608B (zh) * 2015-05-19 2018-04-20 清华大学 一种密钥抗功耗攻击的方法
CN106712949A (zh) * 2015-11-12 2017-05-24 中国科学院声学研究所 一种基于Montgomery的分段计算标量乘方法
CN107104785A (zh) * 2016-02-22 2017-08-29 埃沙尔公司 测试电路对侧信道分析的抵抗力的方法
CN108123790A (zh) * 2016-11-30 2018-06-05 深圳先进技术研究院 一种侧信道攻击方法及装置
CN108123790B (zh) * 2016-11-30 2021-01-19 深圳先进技术研究院 一种侧信道攻击方法及装置
CN107241198A (zh) * 2017-08-01 2017-10-10 北京智慧云测科技有限公司 一种椭圆曲线算法的安全性评估方法及装置
CN108875416A (zh) * 2018-06-22 2018-11-23 北京智芯微电子科技有限公司 椭圆曲线多倍点运算方法和装置
WO2019242562A1 (zh) * 2018-06-22 2019-12-26 北京智芯微电子科技有限公司 椭圆曲线多倍点运算方法和装置
US11003769B2 (en) 2018-06-22 2021-05-11 Beijing Smartchip Microelectronics Technology Comp Elliptic curve point multiplication operation method and apparatus
CN113225187A (zh) * 2021-04-14 2021-08-06 中国人民解放军战略支援部队信息工程大学 一种面向椭圆曲线密码芯片的抗能量攻击补偿方法及系统

Similar Documents

Publication Publication Date Title
CN101562522A (zh) 抗侧信道攻击的椭圆曲线密码系统实现方法
Coron et al. On boolean and arithmetic masking against differential power analysis
CN107040362B (zh) 模乘设备和方法
CN101632255B (zh) 密码方法
CN101213513B (zh) 保护数据处理装置免受密码攻击或分析的设备和方法
Ghosh et al. Petrel: Power and Timing Attack Resistant Elliptic Curve Scalar Multiplier Based on Programmable ${\rm GF}(p) $ Arithmetic Unit
CN101840325B (zh) 椭圆曲线上的抗故障计算
US6914986B2 (en) Countermeasure method in an electronic component using a public key cryptography algorithm on an elliptic curve
CN104937537A (zh) 包括与标量或求幂的乘法运算的密码学方法
EP2264939B1 (en) Encrypting method having countermeasure function against power analyzing attacks
Karakoyunlu et al. Efficient and side-channel-aware implementations of elliptic curve cryptosystems over prime fields
AU2801901A (en) Information processing device, information processing method and smartcard
CN105790939A (zh) 一种vlsi实现加速器的素数域椭圆曲线密码系统
GB2399904A (en) Side channel attack prevention in data processing by adding a random multiple of the modulus to the plaintext before encryption.
Batina et al. Flexible hardware design for RSA and elliptic curve cryptosystems
Le et al. Randomizing the montgomery powering ladder
Hedabou et al. A comb method to render ECC resistant against Side Channel Attacks
KR100731575B1 (ko) 전력분석공격에 대응하는 암호화 방법
Prouff et al. Provably secure S-box implementation based on Fourier transform
Tunstall et al. Correlation power analysis of large word sizes
US20140177824A1 (en) System and method for securing scalar multiplication against differential power attacks
Izu et al. Fast elliptic curve multiplications resistant against side channel attacks
Ghosh et al. Security of prime field pairing cryptoprocessor against differential power attack
Jia et al. A unified method based on SPA and timing attacks on the improved RSA
CN105373366B (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20091021