一种抵抗简单电耗攻击的模幂计算方法

文档序号:6466758阅读:139来源:国知局

专利名称::一种抵抗简单电耗攻击的模幂计算方法
技术领域
:本发明属于公钥密码体制的安全执行领域,涉及集成电路安全技术。
背景技术
:迄今为止,应用于各种电子设备上的公钥密码体制主要有两类。第一类,是基于大整数分解的密码体制,例如,RSA体制和Rabin-Williams体制。第二类,是基于循环群上离散对数的密码体制,例如,ElGamal体制和数字签名算法(DSA)。上述公钥密码体制大都需要在模整数意义上计算模幂^(modw),这里x,£,和"都是整数。而在这些公钥密码体制中,总有部分模幂中的整数五需要严格保密。现代密码设备的计算部件是集成电路芯片。芯片都是由晶体管门电路组成,电路在执行不同的程序操作时,电能消耗有所不同,这一点可以通过示波器观察。据此,Kocher等人提出了电耗分析攻击。电耗分析攻击的前提是电耗轨迹与设备执行的指令相关,并与处理的操作数的值有关。这样检查电耗轨迹能够暴露正在执行的指令和寄存器中数据的信息。当密码设备正在执行秘密密钥操作时,攻击者有可能推导出秘密密钥。研究表明,几乎所有的公钥密码系统都潜在存在电耗分析攻击问题,特别是,智能卡这样的需要外界提供电源的嵌入式设备受到电耗分析攻击的威胁尤为巨大。简单电耗分析(SPA)攻击是攻击者通过简单观测秘密密钥操作的电耗轨迹,直接推导出关于秘密密钥保密信息的技术。SPA攻击对攻击的环境和攻击者的设备要求不高,容易实现,因此,是实际应用中的主要安全威胁。在防止SPA攻击模幂计算的技术方面,主要从防护算法设计和保护电路设计两方面着手。由于设备上的公钥密码体制需要依靠具体执行算法实现,同时算法容易维护、更新、修改,因而算法防护措施得到广泛重视。防护算法的设计关键在模幂计算方法。目甜,抵抗SPA攻击的模幂计算方法主要思路是程序执行路线固定化或随机化。典型的方法有始终平方乘计算方法、Joye改进二进制计算方法、Clavier和Joye通用计算方法。需要指出的是,这些模幂计算方法常常都是以牺牲效率为代价的。此外,由于SPA攻击技术的发展,不少现有模幂计算方法已经不能很好抵抗SPA攻击。
发明内容鉴于抵抗SPA攻击的模幂计算方法存在的问题备硬件或软件实现的抵抗SPA攻击的模幂计算方法抵抗SPA攻击的能力,同时,具有较快的计算速度源受限的嵌入式设备应用。本发明采用如下的技术方案,本发明目的是提供一种适合密码设。本发明提供的计算方法具有更强的。因此,特别适合于智能卡等计算资一种抵抗SPA攻击的模幂计算方法,其特征是,当潜在受到SPA攻击的软件或硬件密码设备运行公钥体制时,在需要使用秘密密钥或保密参数为指数计算模幂情况下,具体执行下列歩骤(1)读取底数X、指数£、和模";(2)等分二进制表示的指数£为子串&和£2,其二进制表示为《=(\「"2,&/2>广AJ2,£2=(\「4/2^,「W2V…&",算符「cl表示不小于C的最小整数,A:为指数E的二进制比特串长度;(3)用固定从右向左二进制算法计算模幂对(^(mod"),x&(mod")h(4)根据公式x^c£ll|£2=(s/W)(x£l,").x,(mod"),用模幂对(x、mod"),/2(mod")}计算模幂^(modM),算符ll表示连接,算符w—)(x,")表示对整数x做w次模"平方操作。作为优选实施方式,本发明中的步骤(3)具体按照下列步骤执行3.1将x赋值给S,并令C(Thd=l;C2=l;C3=l;3.2将S赋值给C2.、+、;3.3从/=2至/=^/2],歩长为l,执行循环语句S=S.S(mod");C2.62,+v=SC2o,(mod");3.4计算C,=qC3(mod");C2=C2.C3(mod")。本发明中的歩骤(3)如果采用硬件实现,提供两个模乘法器,实现步骤如下3.1将X赋值给寄存器S,开辟C。,d,C2,C3四个寄存器,令QH;C尸l;C2=l;C3=l;3.2将S赋值给C2力"+、,并计算S-S'S(mod");3.3从戶2至斗yb2"l-l,歩长为l,在逻辑控制器的控制下利用两个模乘法器分别执行以下循环体的两条语句C2A+v,=S.C2.+6i,(mod");S=S.S(mod");3.4计算&「i/2l+%,2,=S.C2.62「t,2l+%/2l(mod");3.5计算C,=.C3(mod");C2=C2'(^(mod")。本发明所提出的模幂计算方法是安全的,即攻击者不能通过其获取的计算方法执行信息推断出需要严格保密的指数£的任何1比特取值。与同类算法相比,本发明提出的计算方法各方面的特性非常适合于密码设备执行,具有更高的安全性,更快的计算速度。图1采用两个模乘法器实现固定从右向左二进制算法的硬件结构图;图2本发明的抵抗SPA攻击的模幂计算方法流程总框图。具体实施例方式在对本发明的技术方案做进一歩说明之前,首先说明本发明所采用的符号。AAND&表示对等长的二进制串A和&按位进行逻辑与操作,例如,01011011AND11001101=01001001。NOT万表示对二进制串S按位进行逻辑非操作,例如,NOT10101101=01010010。表示对二进制串&禾tl&进行连接操作,例如,01011011||11001101=0101101111001101。xy(rnodw)表示对整数x和y进行模乘操作,特殊情况当x^时,为模平方操作,即x2(modw)。W(w)0,")表示对整数x做w次模"平方操作,例如,W(3)(x,")=((0c)2(mod"))2(modw))(modw)=x(mod。「c"l表示不小于c的最小整数,例如,「5.4>6,(Yl=7。l表示全部位都为1的二进制串,即1=111...。下面详细介绍本发明的抵抗SPA攻击的模幂计算方法。公钥密码体制执行中,计算模幂x^(modw),这里x,£,和"都是整数,其中指数五需要严格保密。指数五的二进制表示为(6》w…^)2。模幂^(mod")按如下步骤计算第1步,将指数五的二进制串分成等长的二进制子串&和£2并满足£=£,^2。如果二进制长度&是奇数在指数£的二进制串的最高位添加1比特0。两个二进制子串分别为五尸(^,「^1^,「Ml^…6i,i)2禾口£2=(62,「A/2l62,「i/2l—1…62,!)2。第2步,使用固定从右向左二进制算法计算模幂对(x、mod"),x£2(mod")}={x£i蕭D(膨妙蕭Z5£2(mod"),x(WOT^),D£2+£1房E2(mod")}。固定从右向左二进制算法描述如下输入X,",A"「i"^,「"2^…Z^)2,五2=(62,^2^2,^2},…6w)2。输出x£'(modw)和;c&(modw)存储于寄存器C,和C^中。(1)5"=x;C0-l;C!=1;C2=1;C3=1;(2)C2.fc2i+A||=&(3)for/=2t。「"2](3.1)S=S.S(modw);/*模平方*/(3.2)C化=SC^一',(mod");/*模乘*/(4)C'=C,C3(mod");C2=C2.C3(modw);/*模乘*/若计算方法采用硬件实现,且提供两个模乘法器,固定从右向左二进制算法可做如下变形,其中,计算第(4)歩一次循环的高效硬件结构如图1。输入x,",A"「H2,i,阔—1…Zy,)2,五2=(^/2,2,「t,,2>l-.,621)2。输出戶'(mod")和x&(mod")存储于寄存器C,和q中。(1)(2)(3)(4)S=;c;C0=1;C,=1;C2=1;C3=1;2.*2.1+\1S=SS(modw);for/=2to「A:/2]-r(")C2i2,+hi,=S,C2,(m0");(4.2)S=SS(modw);(5)CA.「'.,2l+v「"2l=S'C化,「"—,网(mod");(6)=C3(modw);C2=C2C3(mod");'Hc模平方气"模平方、'*模乘*//*模乘*/第3步,使用如下公式通过模幂对^'(mod"),/2(mod")}计算模幂x£(modw)的值。Z=x"^-(s/"1)(/1,")./2)(mod")。对本发明的模幂计算方法正确性阐述如下考虑上面计算模幂^(mod")的方法,可以发现对于任意的等长二进制串&和£2有A爿iVi)(JVOr五2)+五iy4iVD五尸&爿7VD((iVOr五2)+五2一&y4A^)l-A禾卩因此,计算模幂x£i(mod")和x,mod")可以先分别计算出模幂x£i,D,"2)(mod),£i"A'0£2(mod"),和x^柳&(mod"),再通过2次模乘得到x"(mod")=x£i扁,巧^力柳^modw^Qx^mock—x^^D^^./nw^mod^观察固定从右向左二进制算法(变形情况完全类似),第(1)至(3)步是经典从右向左二进制算法的扩展,可以同时计算出^^^印細,巧)(mod"),jc£',('VOT£2)(mod),;c(膨W,A(mod力,和^,&(mod^存储于寄存器Co,d,C2,和G之中。原因是当(^07^|,,)^\(7\^>7^2,,)=1时,SA^+^H);当","M)(M9r62,一l时,2'62',+^,产l;当,7^,,>4備62,产1时,2.62,'+V产2;当Zm,,^VZ)62,产1时,2.62,,+=3。因此,固定从右向左二进制算法中第(3.2)歩将按照经典从右向左二进制算法的模式将各个应该计算的模乘正确存入对应寄存器并最终得到对应结果。固定从右向左二进制算法中第(4)步再通过2次模乘得到/'(modw)和x,mod)存于寄存器C,和C2。由于£=&||£2且£2的二进制长度为「Wl,有^2「^A+五2,进而有x£(mod")=/^■£1+£2(mod")《户i)2「W.Z2)(mod)=(w(「W)(^,").x,(mod")。因此,模幂计算方法的第3步将计算出模幂x"modw)的值。对模幂计算方法技术效果的详细说明如下一、模幂计算方法的SPA安全特性(1)SPA攻击模型。对于任意模幂计算操作,设定攻击者可以通过对执行过程中的电耗轨迹进行分析得到计算方法的如下信息-1)区分所有不同程序语句,例如,"if'条件语句。2)区分模乘和模平方操作。3)发现操作数完全相同的所有模乘和所有模平方操作,确定一个操作数为固定值的所有模乘操作。(2)模幂计算方法的SPA安全特性。在以上SPA攻击模型下,前面提出的模幂计算方法是安全的,即攻击者不能通过其获取的计算方法执行信息推断出需要严格保密的指数五的任何l比特取值。现在说明模幂计算方法在执行的过程中不会泄露严格保密的指数£的任何1比特取值。模幂计算方法的第1歩不会泄露指数£的任何1比特取值,这是因为第1歩仅仅是将指数£分成等长的两个二进制子串A和£2。虽然攻击者可以区分所有不同程序语句,但不能得到指数£的任何1比特取值,因为在这一步所有程序行为都与指数£的具体取值无关。而模幂计算方法的第3歩对于任何输入都是固定地做「々/2,次模平方和1次模乘操作,因此,即使攻击者具有上述1)至3)的电耗分析攻击能力也不可能得到指数E的任何1比特取值。剩下需要讨论的就是模幂计算方法的第2歩的安全问题。观察固定从右向左二进制算法(变形情况完全类似)可以发现1)对于任何输入,固定从右向左二进制算法中的所有程序语句都与需要严格保密的指数五没有任何关系。因此,虽然攻击者可以区分所有不同程序语句,但并不能通过这一能力分析得出指数£的任何1比特取值。2)在固定从右向左二进制算法中,有两个操作与指数五有关系,也就是模乘和模平方操作。因为在循环中任何(、,,62.,)e{(0,0),(0,1),(1,0),(1,1)}(/=2,3,…,「4/21),所以每次循环有且仅有1次模乘操作。这样对于任何指数£,模乘和模平方操作都以同样的间隔顺序执行。虽然攻击者可以区分模乘和模平方操作,但这一能力并不能帮助分析出指数五的任何l比特取值。3)在固定从右向左二进制算法中,一次循环中的模乘操作可写成C广&C/mod")(/=0,1,2,3)。在寄存器S中的值由前一次循环中的模平方操作更新,因此,寄存器S中是随机值。在寄存器C/;M),1,2,3)中的值由相应以往循环中的模乘操作更新,因此,寄存器C/;M),1,2,3)中也是随机值。山于寄存器S和C力H),1,2,3)中存储的都是随机值,所以攻击者即使能发现操作数完全相同的模乘和模平方操作,以及一个操作数为固定值的模乘操作,也不能依靠其分析得出指数£的任何1比特取值。综合以上,得出在SPA攻击模型下,攻击者不能通过其获取的模幂计算方法执行信息推断出需要严格保密的指数£的任何1比特取值。二、模幂计算方法的执行效率在计算效率方面,按照评价此类计算方法的惯例,不区分模乘和模平方操作,统一看作模乘操作,其它操作相对于模乘操作计算开销可以忽略。由于在模幂计算方法的第2歩中,任意(、,,62,,)e{(0,0),(0,1),(1,0),(1,1)}2,…,「W2]),因而在每次循环中,模乘S'Co(modw),S'd(modw),S.C2(mod"),和S.C3(mod")操作之中必有一个执行。在模幂计算方法的第3歩中,需要「/t/2〕+l次模乘操作。因此,在平均和最差情况下总的模乘数量都为「yt/2]-l+「yt/2"1-1+2+^/2"1+1=3.「*/2>1次。在同时提供两个模乘法器的情况下,模幂计算方法的第2步中第(4.1)步和第(4.2)歩并行执行,可以看作l次模乘,因此,在平均和最差情况下总的模乘数量都为1^^/21—2+1+2+^/21+1=2^/21+3次。在存储效率方面,模幂计算方法的开销都来源于第2歩,很显然,需要5个寄存器,艮PS禾口CX/=0,1,2,3)。三、同类算法比较目前己经存在的抵抗SPA攻击的模幂计算方法主要包括始终平方乘计算方法、Joye改进二进制计算方法、Clavier和Joye通用计算方法几种。可以将这些计算方法与本发明提出的计算方法做简要比较,如表1所示。在安全等级方面,都使用前面提到的SPA攻击模型加以评估。计算方法实施评估主要考査计算方法在具体实现时技术复杂程度。在计算效率方面,按照传统考虑平均和最差的情况,且都假定模幂指数的二进制表示长度为偶数L在存储开销方面,主要考虑计算方法在做模幂计算时需要的寄存器数量,此外,还考虑需要始终安全存储的附加数据。表l目前典型相关计算方法特性比较<table>tableseeoriginaldocumentpage8</column></row><table>从表1可以看出,与同类计算方法比较,本发明提出的计算方法各方面的特性非常适合于密码设备执行。唯一不足之处就是,计算过程中寄存器需求略大,但在多数情况下,安全性,计算速度,和实施复杂度才是评价和选择抵抗SPA攻击的模幂计算方法主要考虑的因素。下面举一个实例说明抵抗SPA攻击的模幂计算方法如何运行。根据目甜对公钥密码系统的安全参数要求,模幂xE(modn)的各个操作数常常为1024比特以上。但本实例只是为了说明计算方法如何运行,为使实例简单明了反映计算方法各技术特征,仅选择32比特的操作数。若指数£=3154091967=(10111011111111111001111110111111)2,而底数x和模"为任意一个32比特整数,这样为简单可以省略模w的书写。按照图2的步骤,计算方法运行过程如下第1歩,将指数£按二进制等分为子串£产(1011101111111111)2=48127和£2=(1001111110111111)2=40895,这里显然五二^P2。第2歩,在二进制子串A和&为输入时,固定从右向左二进制算法变形情况的主要计算过程可以由表2描述。第3歩,通过模幂对{,'448127,/W層"计算模幂/=/1"£2=(,127)21、柳95=3154051072408953154091967表2当E尸(1011101111111111)2和五2-(1001111110111111)2时,固定从右向左二进制算法变形情况的运行过程'<table>tableseeoriginaldocumentpage9</column></row><table>权利要求1.一种抵抗简单电耗攻击的模幂计算方法,其特征是,当潜在受到简单电耗攻击的软件或硬件密码设备运行公钥体制时,在需要使用秘密密钥或保密参数为指数计算模幂情况下,具体执行下列步骤(1)读取底数x、指数E、和模n;(2)等分二进制表示的指数E为子串E1和E2,其二进制表示为算符表示不小于c的最小整数,k为指数E的二进制比特串长度;(3)用固定从右向左二进制算法计算模幂对(4)根据公式用模幂对计算模幂xE(modn),算符‖表示连接,算符sq(m)(x,n)表示对整数x做m次模n平方操作。2.根据权利要求1所述的抵抗简单电耗攻击的模幂计算方法,其特征是,其中的歩骤G)具体按照下列步骤执行3.1将x赋值给S,并令C(Tl;d=l;C2=l;C3=h3.2将S赋值给C^,+、;3.3从/=2至/^A/2l,步长为l,执行循环语句3.4计算q=qC3(mod");C2=C2C3(mod")。3.根据权利要求l所述的抵抗简单电耗攻击的模幂计算方法,其特征是,其中的歩骤(3)采用硬件实现,提供两个模乘法器,实现歩骤如下3.1将x赋值给寄存器S,开辟Co,d,C2,C3四个寄存器,令Qrl;d=l;C2=l;C3=l;3.2将S赋值给C2AM,,并计算S=SS(mod");3.3从片2至/^Hb2T"l,歩长为l,在逻辑控制器的控制下利用两个模乘法器分别执行以下循环体的两条语句C2.62+6|-S.C^a—");S="(mod");3.4计算C2.6—一—4C,^,一,「",od");3.5计算Ct=.C3(mod");C2=C2.C3(mod")。全文摘要本发明属于公钥密码体制的安全执行领域,涉及一种抵抗简单电耗攻击的模幂计算方法,当潜在受到简单电耗攻击的软件或硬件密码没备运行公钥体制时,在需要使用秘密密钥或保密参数为指数计算模幂情况下,按下列步骤执行读取底数x、指数E、和模n;等分二进制表示的指数E为子串E<sub>1</sub>和E<sub>2</sub>,其二进制表示为E<sub>1</sub>=(b<sub>1,「k/2</sub>b<sub>1,「k/2-1</sub>…b<sub>1,1</sub>)<sub>2</sub>,E<sub>2</sub>=(b<sub>2,「k/2</sub>b<sub>2,「k/2∴-1</sub>…b<sub>2,1</sub>)<sub>2</sub>,算符「c表示不小于c的最小整数,k为指数E的二进制比特串长度;用固定从右向左二进制算法计算模幂对{x<sup>E<sub>1</sup></sub>(modn),x<sup>E<sub>2</sup></sub>(modn)};根据公式x<sup>E</sup>=x<sup>E<sub>1</sup></sub>‖<sup>E<sub>2</sup></sub>=(sq<sup>(「k/2)</sup>(x<sup>E<sub>1</sup></sub>,n)·x<sup>E<sub>2</sup></sub>)(modn),用模幂对{x<sup>E<sub>1</sup></sub>(modn),x<sup>E<sub>2</sup></sub>(modn)}计算模幂x<sup>E</sup>(modn),算符‖表示连接,算符sq<sup>(m)</sup>(x,n)表示对整数x做m次模n平方操作。本发明提供的计算方法具有更强的抵抗SPA攻击的能力,同时,具有较快的计算速度。文档编号G06F7/60GK101436932SQ20081015423公开日2009年5月20日申请日期2008年12月18日优先权日2008年12月18日发明者孙济洲,孙达志,张加万申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1