專(zhuān)利名稱(chēng)::一種抵抗簡(jiǎn)單電耗攻擊的模冪計(jì)算方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于公鑰密碼體制的安全執(zhí)行領(lǐng)域,涉及集成電路安全技術(shù)。
背景技術(shù):
:迄今為止,應(yīng)用于各種電子設(shè)備上的公鑰密碼體制主要有兩類(lèi)。第一類(lèi),是基于大整數(shù)分解的密碼體制,例如,RSA體制和Rabin-Williams體制。第二類(lèi),是基于循環(huán)群上離散對(duì)數(shù)的密碼體制,例如,ElGamal體制和數(shù)字簽名算法(DSA)。上述公鑰密碼體制大都需要在模整數(shù)意義上計(jì)算模冪^(modw),這里x,£,和"都是整數(shù)。而在這些公鑰密碼體制中,總有部分模冪中的整數(shù)五需要嚴(yán)格保密?,F(xiàn)代密碼設(shè)備的計(jì)算部件是集成電路芯片。芯片都是由晶體管門(mén)電路組成,電路在執(zhí)行不同的程序操作時(shí),電能消耗有所不同,這一點(diǎn)可以通過(guò)示波器觀察。據(jù)此,Kocher等人提出了電耗分析攻擊。電耗分析攻擊的前提是電耗軌跡與設(shè)備執(zhí)行的指令相關(guān),并與處理的操作數(shù)的值有關(guān)。這樣檢查電耗軌跡能夠暴露正在執(zhí)行的指令和寄存器中數(shù)據(jù)的信息。當(dāng)密碼設(shè)備正在執(zhí)行秘密密鑰操作時(shí),攻擊者有可能推導(dǎo)出秘密密鑰。研究表明,幾乎所有的公鑰密碼系統(tǒng)都潛在存在電耗分析攻擊問(wèn)題,特別是,智能卡這樣的需要外界提供電源的嵌入式設(shè)備受到電耗分析攻擊的威脅尤為巨大。簡(jiǎn)單電耗分析(SPA)攻擊是攻擊者通過(guò)簡(jiǎn)單觀測(cè)秘密密鑰操作的電耗軌跡,直接推導(dǎo)出關(guān)于秘密密鑰保密信息的技術(shù)。SPA攻擊對(duì)攻擊的環(huán)境和攻擊者的設(shè)備要求不高,容易實(shí)現(xiàn),因此,是實(shí)際應(yīng)用中的主要安全威脅。在防止SPA攻擊模冪計(jì)算的技術(shù)方面,主要從防護(hù)算法設(shè)計(jì)和保護(hù)電路設(shè)計(jì)兩方面著手。由于設(shè)備上的公鑰密碼體制需要依靠具體執(zhí)行算法實(shí)現(xiàn),同時(shí)算法容易維護(hù)、更新、修改,因而算法防護(hù)措施得到廣泛重視。防護(hù)算法的設(shè)計(jì)關(guān)鍵在模冪計(jì)算方法。目甜,抵抗SPA攻擊的模冪計(jì)算方法主要思路是程序執(zhí)行路線(xiàn)固定化或隨機(jī)化。典型的方法有始終平方乘計(jì)算方法、Joye改進(jìn)二進(jìn)制計(jì)算方法、Clavier和Joye通用計(jì)算方法。需要指出的是,這些模冪計(jì)算方法常常都是以犧牲效率為代價(jià)的。此外,由于SPA攻擊技術(shù)的發(fā)展,不少現(xiàn)有模冪計(jì)算方法已經(jīng)不能很好抵抗SPA攻擊。
發(fā)明內(nèi)容鑒于抵抗SPA攻擊的模冪計(jì)算方法存在的問(wèn)題備硬件或軟件實(shí)現(xiàn)的抵抗SPA攻擊的模冪計(jì)算方法抵抗SPA攻擊的能力,同時(shí),具有較快的計(jì)算速度源受限的嵌入式設(shè)備應(yīng)用。本發(fā)明采用如下的技術(shù)方案,本發(fā)明目的是提供一種適合密碼設(shè)。本發(fā)明提供的計(jì)算方法具有更強(qiáng)的。因此,特別適合于智能卡等計(jì)算資一種抵抗SPA攻擊的模冪計(jì)算方法,其特征是,當(dāng)潛在受到SPA攻擊的軟件或硬件密碼設(shè)備運(yùn)行公鑰體制時(shí),在需要使用秘密密鑰或保密參數(shù)為指數(shù)計(jì)算模冪情況下,具體執(zhí)行下列歩驟(1)讀取底數(shù)X、指數(shù)£、和模";(2)等分二進(jìn)制表示的指數(shù)£為子串&和£2,其二進(jìn)制表示為《=(\「"2,&/2>廣AJ2,£2=(\「4/2^,「W2V…&",算符「cl表示不小于C的最小整數(shù),A:為指數(shù)E的二進(jìn)制比特串長(zhǎng)度;(3)用固定從右向左二進(jìn)制算法計(jì)算模冪對(duì)(^(mod"),x&(mod")h(4)根據(jù)公式x^c£ll|£2=(s/W)(x£l,").x,(mod"),用模冪對(duì)(x、mod"),/2(mod")}計(jì)算模冪^(modM),算符ll表示連接,算符w—)(x,")表示對(duì)整數(shù)x做w次模"平方操作。作為優(yōu)選實(shí)施方式,本發(fā)明中的步驟(3)具體按照下列步驟執(zhí)行3.1將x賦值給S,并令C(Thd=l;C2=l;C3=l;3.2將S賦值給C2.、+、;3.3從/=2至/=^/2],歩長(zhǎng)為l,執(zhí)行循環(huán)語(yǔ)句S=S.S(mod");C2.62,+v=SC2o,(mod");3.4計(jì)算C,=qC3(mod");C2=C2.C3(mod")。本發(fā)明中的歩驟(3)如果采用硬件實(shí)現(xiàn),提供兩個(gè)模乘法器,實(shí)現(xiàn)步驟如下3.1將X賦值給寄存器S,開(kāi)辟C。,d,C2,C3四個(gè)寄存器,令QH;C尸l;C2=l;C3=l;3.2將S賦值給C2力"+、,并計(jì)算S-S'S(mod");3.3從戶(hù)2至斗yb2"l-l,歩長(zhǎng)為l,在邏輯控制器的控制下利用兩個(gè)模乘法器分別執(zhí)行以下循環(huán)體的兩條語(yǔ)句C2A+v,=S.C2.+6i,(mod");S=S.S(mod");3.4計(jì)算&「i/2l+%,2,=S.C2.62「t,2l+%/2l(mod");3.5計(jì)算C,=.C3(mod");C2=C2'(^(mod")。本發(fā)明所提出的模冪計(jì)算方法是安全的,即攻擊者不能通過(guò)其獲取的計(jì)算方法執(zhí)行信息推斷出需要嚴(yán)格保密的指數(shù)£的任何1比特取值。與同類(lèi)算法相比,本發(fā)明提出的計(jì)算方法各方面的特性非常適合于密碼設(shè)備執(zhí)行,具有更高的安全性,更快的計(jì)算速度。圖1采用兩個(gè)模乘法器實(shí)現(xiàn)固定從右向左二進(jìn)制算法的硬件結(jié)構(gòu)圖;圖2本發(fā)明的抵抗SPA攻擊的模冪計(jì)算方法流程總框圖。具體實(shí)施例方式在對(duì)本發(fā)明的技術(shù)方案做進(jìn)一歩說(shuō)明之前,首先說(shuō)明本發(fā)明所采用的符號(hào)。AAND&表示對(duì)等長(zhǎng)的二進(jìn)制串A和&按位進(jìn)行邏輯與操作,例如,01011011AND11001101=01001001。NOT萬(wàn)表示對(duì)二進(jìn)制串S按位進(jìn)行邏輯非操作,例如,NOT10101101=01010010。表示對(duì)二進(jìn)制串&禾tl&進(jìn)行連接操作,例如,01011011||11001101=0101101111001101。xy(rnodw)表示對(duì)整數(shù)x和y進(jìn)行模乘操作,特殊情況當(dāng)x^時(shí),為模平方操作,即x2(modw)。W(w)0,")表示對(duì)整數(shù)x做w次模"平方操作,例如,W(3)(x,")=((0c)2(mod"))2(modw))(modw)=x(mod。「c"l表示不小于c的最小整數(shù),例如,「5.4>6,(Yl=7。l表示全部位都為1的二進(jìn)制串,即1=111...。下面詳細(xì)介紹本發(fā)明的抵抗SPA攻擊的模冪計(jì)算方法。公鑰密碼體制執(zhí)行中,計(jì)算模冪x^(modw),這里x,£,和"都是整數(shù),其中指數(shù)五需要嚴(yán)格保密。指數(shù)五的二進(jìn)制表示為(6》w…^)2。模冪^(mod")按如下步驟計(jì)算第1步,將指數(shù)五的二進(jìn)制串分成等長(zhǎng)的二進(jìn)制子串&和£2并滿(mǎn)足£=£,^2。如果二進(jìn)制長(zhǎng)度&是奇數(shù)在指數(shù)£的二進(jìn)制串的最高位添加1比特0。兩個(gè)二進(jìn)制子串分別為五尸(^,「^1^,「Ml^…6i,i)2禾口£2=(62,「A/2l62,「i/2l—1…62,!)2。第2步,使用固定從右向左二進(jìn)制算法計(jì)算模冪對(duì)(x、mod"),x£2(mod")}={x£i蕭D(膨妙蕭Z5£2(mod"),x(WOT^),D£2+£1房E2(mod")}。固定從右向左二進(jìn)制算法描述如下輸入X,",A"「i"^,「"2^…Z^)2,五2=(62,^2^2,^2},…6w)2。輸出x£'(modw)和;c&(modw)存儲(chǔ)于寄存器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);/*模乘*/若計(jì)算方法采用硬件實(shí)現(xiàn),且提供兩個(gè)模乘法器,固定從右向左二進(jìn)制算法可做如下變形,其中,計(jì)算第(4)歩一次循環(huán)的高效硬件結(jié)構(gòu)如圖1。輸入x,",A"「H2,i,闊—1…Zy,)2,五2=(^/2,2,「t,,2>l-.,621)2。輸出戶(hù)'(mod")和x&(mod")存儲(chǔ)于寄存器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化,「"—,網(wǎng)(mod");(6)=C3(modw);C2=C2C3(mod");'Hc模平方氣"模平方、'*模乘*//*模乘*/第3步,使用如下公式通過(guò)模冪對(duì)^'(mod"),/2(mod")}計(jì)算模冪x£(modw)的值。Z=x"^-(s/"1)(/1,")./2)(mod")。對(duì)本發(fā)明的模冪計(jì)算方法正確性闡述如下考慮上面計(jì)算模冪^(mod")的方法,可以發(fā)現(xiàn)對(duì)于任意的等長(zhǎng)二進(jìn)制串&和£2有A爿iVi)(JVOr五2)+五iy4iVD五尸&爿7VD((iVOr五2)+五2一&y4A^)l-A禾卩因此,計(jì)算模冪x£i(mod")和x,mod")可以先分別計(jì)算出模冪x£i,D,"2)(mod),£i"A'0£2(mod"),和x^柳&(mod"),再通過(guò)2次模乘得到x"(mod")=x£i扁,巧^力柳^modw^Qx^mock—x^^D^^./nw^mod^觀察固定從右向左二進(jìn)制算法(變形情況完全類(lèi)似),第(1)至(3)步是經(jīng)典從右向左二進(jìn)制算法的擴(kuò)展,可以同時(shí)計(jì)算出^^^印細(xì),巧)(mod"),jc£',('VOT£2)(mod),;c(膨W,A(mod力,和^,&(mod^存儲(chǔ)于寄存器Co,d,C2,和G之中。原因是當(dāng)(^07^|,,)^\(7\^>7^2,,)=1時(shí),SA^+^H);當(dāng)","M)(M9r62,一l時(shí),2'62',+^,產(chǎn)l;當(dāng),7^,,>4備62,產(chǎn)1時(shí),2.62,'+V產(chǎn)2;當(dāng)Zm,,^VZ)62,產(chǎn)1時(shí),2.62,,+=3。因此,固定從右向左二進(jìn)制算法中第(3.2)歩將按照經(jīng)典從右向左二進(jìn)制算法的模式將各個(gè)應(yīng)該計(jì)算的模乘正確存入對(duì)應(yīng)寄存器并最終得到對(duì)應(yīng)結(jié)果。固定從右向左二進(jìn)制算法中第(4)步再通過(guò)2次模乘得到/'(modw)和x,mod)存于寄存器C,和C2。由于£=&||£2且£2的二進(jìn)制長(zhǎng)度為「Wl,有^2「^A+五2,進(jìn)而有x£(mod")=/^■£1+£2(mod")《戶(hù)i)2「W.Z2)(mod)=(w(「W)(^,").x,(mod")。因此,模冪計(jì)算方法的第3步將計(jì)算出模冪x"modw)的值。對(duì)模冪計(jì)算方法技術(shù)效果的詳細(xì)說(shuō)明如下一、模冪計(jì)算方法的SPA安全特性(1)SPA攻擊模型。對(duì)于任意模冪計(jì)算操作,設(shè)定攻擊者可以通過(guò)對(duì)執(zhí)行過(guò)程中的電耗軌跡進(jìn)行分析得到計(jì)算方法的如下信息-1)區(qū)分所有不同程序語(yǔ)句,例如,"if'條件語(yǔ)句。2)區(qū)分模乘和模平方操作。3)發(fā)現(xiàn)操作數(shù)完全相同的所有模乘和所有模平方操作,確定一個(gè)操作數(shù)為固定值的所有模乘操作。(2)模冪計(jì)算方法的SPA安全特性。在以上SPA攻擊模型下,前面提出的模冪計(jì)算方法是安全的,即攻擊者不能通過(guò)其獲取的計(jì)算方法執(zhí)行信息推斷出需要嚴(yán)格保密的指數(shù)五的任何l比特取值?,F(xiàn)在說(shuō)明模冪計(jì)算方法在執(zhí)行的過(guò)程中不會(huì)泄露嚴(yán)格保密的指數(shù)£的任何1比特取值。模冪計(jì)算方法的第1歩不會(huì)泄露指數(shù)£的任何1比特取值,這是因?yàn)榈?歩僅僅是將指數(shù)£分成等長(zhǎng)的兩個(gè)二進(jìn)制子串A和£2。雖然攻擊者可以區(qū)分所有不同程序語(yǔ)句,但不能得到指數(shù)£的任何1比特取值,因?yàn)樵谶@一步所有程序行為都與指數(shù)£的具體取值無(wú)關(guān)。而模冪計(jì)算方法的第3歩對(duì)于任何輸入都是固定地做「々/2,次模平方和1次模乘操作,因此,即使攻擊者具有上述1)至3)的電耗分析攻擊能力也不可能得到指數(shù)E的任何1比特取值。剩下需要討論的就是模冪計(jì)算方法的第2歩的安全問(wèn)題。觀察固定從右向左二進(jìn)制算法(變形情況完全類(lèi)似)可以發(fā)現(xiàn)1)對(duì)于任何輸入,固定從右向左二進(jìn)制算法中的所有程序語(yǔ)句都與需要嚴(yán)格保密的指數(shù)五沒(méi)有任何關(guān)系。因此,雖然攻擊者可以區(qū)分所有不同程序語(yǔ)句,但并不能通過(guò)這一能力分析得出指數(shù)£的任何1比特取值。2)在固定從右向左二進(jìn)制算法中,有兩個(gè)操作與指數(shù)五有關(guān)系,也就是模乘和模平方操作。因?yàn)樵谘h(huán)中任何(、,,62.,)e{(0,0),(0,1),(1,0),(1,1)}(/=2,3,…,「4/21),所以每次循環(huán)有且僅有1次模乘操作。這樣對(duì)于任何指數(shù)£,模乘和模平方操作都以同樣的間隔順序執(zhí)行。雖然攻擊者可以區(qū)分模乘和模平方操作,但這一能力并不能幫助分析出指數(shù)五的任何l比特取值。3)在固定從右向左二進(jìn)制算法中,一次循環(huán)中的模乘操作可寫(xiě)成C廣&C/mod")(/=0,1,2,3)。在寄存器S中的值由前一次循環(huán)中的模平方操作更新,因此,寄存器S中是隨機(jī)值。在寄存器C/;M),1,2,3)中的值由相應(yīng)以往循環(huán)中的模乘操作更新,因此,寄存器C/;M),1,2,3)中也是隨機(jī)值。山于寄存器S和C力H),1,2,3)中存儲(chǔ)的都是隨機(jī)值,所以攻擊者即使能發(fā)現(xiàn)操作數(shù)完全相同的模乘和模平方操作,以及一個(gè)操作數(shù)為固定值的模乘操作,也不能依靠其分析得出指數(shù)£的任何1比特取值。綜合以上,得出在SPA攻擊模型下,攻擊者不能通過(guò)其獲取的模冪計(jì)算方法執(zhí)行信息推斷出需要嚴(yán)格保密的指數(shù)£的任何1比特取值。二、模冪計(jì)算方法的執(zhí)行效率在計(jì)算效率方面,按照評(píng)價(jià)此類(lèi)計(jì)算方法的慣例,不區(qū)分模乘和模平方操作,統(tǒng)一看作模乘操作,其它操作相對(duì)于模乘操作計(jì)算開(kāi)銷(xiāo)可以忽略。由于在模冪計(jì)算方法的第2歩中,任意(、,,62,,)e{(0,0),(0,1),(1,0),(1,1)}2,…,「W2]),因而在每次循環(huán)中,模乘S'Co(modw),S'd(modw),S.C2(mod"),和S.C3(mod")操作之中必有一個(gè)執(zhí)行。在模冪計(jì)算方法的第3歩中,需要「/t/2〕+l次模乘操作。因此,在平均和最差情況下總的模乘數(shù)量都為「yt/2]-l+「yt/2"1-1+2+^/2"1+1=3.「*/2>1次。在同時(shí)提供兩個(gè)模乘法器的情況下,模冪計(jì)算方法的第2步中第(4.1)步和第(4.2)歩并行執(zhí)行,可以看作l次模乘,因此,在平均和最差情況下總的模乘數(shù)量都為1^^/21—2+1+2+^/21+1=2^/21+3次。在存儲(chǔ)效率方面,模冪計(jì)算方法的開(kāi)銷(xiāo)都來(lái)源于第2歩,很顯然,需要5個(gè)寄存器,艮PS禾口CX/=0,1,2,3)。三、同類(lèi)算法比較目前己經(jīng)存在的抵抗SPA攻擊的模冪計(jì)算方法主要包括始終平方乘計(jì)算方法、Joye改進(jìn)二進(jìn)制計(jì)算方法、Clavier和Joye通用計(jì)算方法幾種。可以將這些計(jì)算方法與本發(fā)明提出的計(jì)算方法做簡(jiǎn)要比較,如表1所示。在安全等級(jí)方面,都使用前面提到的SPA攻擊模型加以評(píng)估。計(jì)算方法實(shí)施評(píng)估主要考査計(jì)算方法在具體實(shí)現(xiàn)時(shí)技術(shù)復(fù)雜程度。在計(jì)算效率方面,按照傳統(tǒng)考慮平均和最差的情況,且都假定模冪指數(shù)的二進(jìn)制表示長(zhǎng)度為偶數(shù)L在存儲(chǔ)開(kāi)銷(xiāo)方面,主要考慮計(jì)算方法在做模冪計(jì)算時(shí)需要的寄存器數(shù)量,此外,還考慮需要始終安全存儲(chǔ)的附加數(shù)據(jù)。表l目前典型相關(guān)計(jì)算方法特性比較<table>tableseeoriginaldocumentpage8</column></row><table>從表1可以看出,與同類(lèi)計(jì)算方法比較,本發(fā)明提出的計(jì)算方法各方面的特性非常適合于密碼設(shè)備執(zhí)行。唯一不足之處就是,計(jì)算過(guò)程中寄存器需求略大,但在多數(shù)情況下,安全性,計(jì)算速度,和實(shí)施復(fù)雜度才是評(píng)價(jià)和選擇抵抗SPA攻擊的模冪計(jì)算方法主要考慮的因素。下面舉一個(gè)實(shí)例說(shuō)明抵抗SPA攻擊的模冪計(jì)算方法如何運(yùn)行。根據(jù)目甜對(duì)公鑰密碼系統(tǒng)的安全參數(shù)要求,模冪xE(modn)的各個(gè)操作數(shù)常常為1024比特以上。但本實(shí)例只是為了說(shuō)明計(jì)算方法如何運(yùn)行,為使實(shí)例簡(jiǎn)單明了反映計(jì)算方法各技術(shù)特征,僅選擇32比特的操作數(shù)。若指數(shù)£=3154091967=(10111011111111111001111110111111)2,而底數(shù)x和模"為任意一個(gè)32比特整數(shù),這樣為簡(jiǎn)單可以省略模w的書(shū)寫(xiě)。按照?qǐng)D2的步驟,計(jì)算方法運(yùn)行過(guò)程如下第1歩,將指數(shù)£按二進(jìn)制等分為子串£產(chǎn)(1011101111111111)2=48127和£2=(1001111110111111)2=40895,這里顯然五二^P2。第2歩,在二進(jìn)制子串A和&為輸入時(shí),固定從右向左二進(jìn)制算法變形情況的主要計(jì)算過(guò)程可以由表2描述。第3歩,通過(guò)模冪對(duì){,'448127,/W層"計(jì)算模冪/=/1"£2=(,127)21、柳95=3154051072408953154091967表2當(dāng)E尸(1011101111111111)2和五2-(1001111110111111)2時(shí),固定從右向左二進(jìn)制算法變形情況的運(yùn)行過(guò)程'<table>tableseeoriginaldocumentpage9</column></row><table>權(quán)利要求1.一種抵抗簡(jiǎn)單電耗攻擊的模冪計(jì)算方法,其特征是,當(dāng)潛在受到簡(jiǎn)單電耗攻擊的軟件或硬件密碼設(shè)備運(yùn)行公鑰體制時(shí),在需要使用秘密密鑰或保密參數(shù)為指數(shù)計(jì)算模冪情況下,具體執(zhí)行下列步驟(1)讀取底數(shù)x、指數(shù)E、和模n;(2)等分二進(jìn)制表示的指數(shù)E為子串E1和E2,其二進(jìn)制表示為算符表示不小于c的最小整數(shù),k為指數(shù)E的二進(jìn)制比特串長(zhǎng)度;(3)用固定從右向左二進(jìn)制算法計(jì)算模冪對(duì)(4)根據(jù)公式用模冪對(duì)計(jì)算模冪xE(modn),算符‖表示連接,算符sq(m)(x,n)表示對(duì)整數(shù)x做m次模n平方操作。2.根據(jù)權(quán)利要求1所述的抵抗簡(jiǎn)單電耗攻擊的模冪計(jì)算方法,其特征是,其中的歩驟G)具體按照下列步驟執(zhí)行3.1將x賦值給S,并令C(Tl;d=l;C2=l;C3=h3.2將S賦值給C^,+、;3.3從/=2至/^A/2l,步長(zhǎng)為l,執(zhí)行循環(huán)語(yǔ)句3.4計(jì)算q=qC3(mod");C2=C2C3(mod")。3.根據(jù)權(quán)利要求l所述的抵抗簡(jiǎn)單電耗攻擊的模冪計(jì)算方法,其特征是,其中的歩驟(3)采用硬件實(shí)現(xiàn),提供兩個(gè)模乘法器,實(shí)現(xiàn)歩驟如下3.1將x賦值給寄存器S,開(kāi)辟Co,d,C2,C3四個(gè)寄存器,令Qrl;d=l;C2=l;C3=l;3.2將S賦值給C2AM,,并計(jì)算S=SS(mod");3.3從片2至/^Hb2T"l,歩長(zhǎng)為l,在邏輯控制器的控制下利用兩個(gè)模乘法器分別執(zhí)行以下循環(huán)體的兩條語(yǔ)句C2.62+6|-S.C^a—");S="(mod");3.4計(jì)算C2.6—一—4C,^,一,「",od");3.5計(jì)算Ct=.C3(mod");C2=C2.C3(mod")。全文摘要本發(fā)明屬于公鑰密碼體制的安全執(zhí)行領(lǐng)域,涉及一種抵抗簡(jiǎn)單電耗攻擊的模冪計(jì)算方法,當(dāng)潛在受到簡(jiǎn)單電耗攻擊的軟件或硬件密碼沒(méi)備運(yùn)行公鑰體制時(shí),在需要使用秘密密鑰或保密參數(shù)為指數(shù)計(jì)算模冪情況下,按下列步驟執(zhí)行讀取底數(shù)x、指數(shù)E、和模n;等分二進(jìn)制表示的指數(shù)E為子串E<sub>1</sub>和E<sub>2</sub>,其二進(jìn)制表示為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的最小整數(shù),k為指數(shù)E的二進(jìn)制比特串長(zhǎng)度;用固定從右向左二進(jìn)制算法計(jì)算模冪對(duì){x<sup>E<sub>1</sup></sub>(modn),x<sup>E<sub>2</sup></sub>(modn)};根據(jù)公式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),用模冪對(duì){x<sup>E<sub>1</sup></sub>(modn),x<sup>E<sub>2</sup></sub>(modn)}計(jì)算模冪x<sup>E</sup>(modn),算符‖表示連接,算符sq<sup>(m)</sup>(x,n)表示對(duì)整數(shù)x做m次模n平方操作。本發(fā)明提供的計(jì)算方法具有更強(qiáng)的抵抗SPA攻擊的能力,同時(shí),具有較快的計(jì)算速度。文檔編號(hào)G06F7/60GK101436932SQ20081015423公開(kāi)日2009年5月20日申請(qǐng)日期2008年12月18日優(yōu)先權(quán)日2008年12月18日發(fā)明者孫濟(jì)洲,孫達(dá)志,張加萬(wàn)申請(qǐng)人:天津大學(xué)