亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

防止對(duì)rsa算法進(jìn)行能量分析攻擊的方法

文檔序號(hào):6540479閱讀:383來(lái)源:國(guó)知局
專利名稱:防止對(duì)rsa算法進(jìn)行能量分析攻擊的方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路安全技術(shù)領(lǐng)域,特別是涉及一種防止基于能量分析對(duì)RSA算法進(jìn)行攻擊的方法,能夠利用冗余運(yùn)算防御對(duì)RSA算法芯片的能量攻擊。
背景技術(shù)
利用集成電路技術(shù)實(shí)現(xiàn)的RSA算法通常用于身份認(rèn)證和安全存儲(chǔ)。因此,RSA密鑰的安全性對(duì)于用戶而言具有十分重要的意義。RSA是由以研究加密算法而著名的美國(guó)RSA實(shí)驗(yàn)室中的三個(gè)發(fā)明人的名字命名的一種公開(kāi)密鑰算法。目前,較為常見(jiàn)的獲取RSA密鑰的手段是對(duì)集成電路實(shí)現(xiàn)的RSA算法進(jìn)行物理攻擊以獲取其中的密鑰。常見(jiàn)的物理攻擊方法包括時(shí)間分析攻擊法、電磁輻射法和能量分析攻擊法,其中能量分析攻擊法是最為有效的攻擊方法。
1998年,Kocher等人提出了簡(jiǎn)單能量分析(SPA,Simple PowerAnalysis)和差分能量分析(DPA,Differential Power Analysis)方法,有人利用這兩種方法成功地對(duì)RSA進(jìn)行了攻擊。
集成電路的制造使用了大量的CMOS(Complementary Metal-Oxide-Semiconductor Transistor互補(bǔ)金屬氧化物半導(dǎo)體)管,這導(dǎo)致了執(zhí)行不同的指令所消耗的能量不同。另外,對(duì)0或1的存儲(chǔ)也能反映出能量消耗的不同。這樣,在程序運(yùn)行過(guò)程中,能量的變化會(huì)反映出所運(yùn)行的指令的內(nèi)容,這就是基于能量分析而進(jìn)行攻擊的基礎(chǔ)。
簡(jiǎn)單能量分析是在RSA算法芯片進(jìn)行加密和解密過(guò)程中,直接測(cè)量芯片的能量消耗狀況,在固定的時(shí)刻進(jìn)行采樣以獲得足夠多的樣本值。通過(guò)對(duì)加密和解密所消耗的能量進(jìn)行分析,把這些能量與相應(yīng)的密鑰對(duì)應(yīng)起來(lái),從而達(dá)到攻擊的目的。
差分能量分析是通過(guò)統(tǒng)計(jì)分析和糾錯(cuò)技術(shù)從采集的能量信息中抽取出與密鑰相關(guān)的信息。通常情況下,簡(jiǎn)單能量分析需要知道目標(biāo)代碼的應(yīng)用細(xì)節(jié)。因此,只有在保證一定信噪比的情況下,簡(jiǎn)單能量分析才能有效。而差分能量分析對(duì)信噪比的要求要小得多,但需要得到大量的不同樣本的能量消耗值,以及對(duì)所對(duì)應(yīng)的樣本進(jìn)行統(tǒng)計(jì)分析才能得到相應(yīng)的密鑰。
模冪數(shù)運(yùn)算是RSA中最根本的運(yùn)算,模冪數(shù)運(yùn)算可以分解成多個(gè)模平方運(yùn)算和模乘運(yùn)算。進(jìn)行模平方運(yùn)算和模乘運(yùn)算所消耗的能量是有差異的。模冪數(shù)運(yùn)算可以從指數(shù)的高位到低位進(jìn)行,也可以從指數(shù)的低位到高位進(jìn)行。以從高位到低位的方式為例進(jìn)行說(shuō)明,假設(shè)計(jì)算MemodN,設(shè)指數(shù)e共n位長(zhǎng),計(jì)算模冪數(shù)流程如圖1所示。
在已知公鑰基礎(chǔ)上對(duì)RSA芯片進(jìn)行能量攻擊方法通常是取大量的隨機(jī)數(shù)進(jìn)行簽名和加密運(yùn)算,并且采集每次運(yùn)算的能量信號(hào)。假設(shè)對(duì)n個(gè)隨機(jī)數(shù)進(jìn)行運(yùn)算,在j時(shí)刻,RSA芯片對(duì)第i個(gè)隨機(jī)數(shù)用私鑰進(jìn)行簽名消耗的能量為Si(j),用公鑰進(jìn)行加密消耗的能量為Pi(j),則構(gòu)造由下面的等式(1)表示的差分信號(hào)D(j),D(j)=1nΣi=1nSi(j)-1nΣi=1nPi(j)=S(j)‾-P(j)‾---(1)]]>如果在j時(shí)刻,進(jìn)行的運(yùn)算相同的話,D(j)為0,否則D(j)非零。通過(guò)與公鑰的對(duì)比調(diào)整對(duì)應(yīng)的私鑰值,即在D(i)為零時(shí),該處的私鑰與公鑰一致,否則此處的私鑰是公鑰的反。
對(duì)RSA私鑰進(jìn)行猜測(cè)的能量攻擊方法是取一個(gè)隨機(jī)數(shù)讓RSA芯片進(jìn)行簽名,采集消耗的能量信號(hào)S(j),然后從前向后猜測(cè)私鑰的每一位的數(shù)值,分別假設(shè)其為1和0。然后,使RSA芯片分別基于這兩種假設(shè)對(duì)該隨機(jī)數(shù)進(jìn)行加密運(yùn)算并采集相應(yīng)的能量信號(hào)。假設(shè)前i-1位已經(jīng)破解,如果對(duì)私鑰的第i位進(jìn)行猜測(cè),則過(guò)程如下可以假設(shè)第i位為零,RSA芯片計(jì)算相應(yīng)的能量消耗信號(hào)S0(j),假設(shè)第i位為1,RSA芯片計(jì)算相應(yīng)的能量消耗信號(hào)S1(j)。分別計(jì)算兩個(gè)差分信號(hào)。
D0(j)=S(j)-S0(j)D1(j)=S(j)-S1(j)如果D0(j)=0,則第i位為0。否則,如果D1(j)=0,則第i位為1。依此類推,直到推出最后一位。
目前防范對(duì)RSA芯片進(jìn)行能量攻擊的方法大致采用下面所述的幾種措施。
1.增加隨機(jī)噪聲,這種方法可以增加能量攻擊的難度,尤其是對(duì)簡(jiǎn)單能量分析。這是由于簡(jiǎn)單能量分析是對(duì)操作過(guò)程中所消耗能量的直接觀察,只有信噪比達(dá)到一定的值后才能得到有用的能量信號(hào),因此可以有效地抑制簡(jiǎn)單能量分析。另外,也可以增加差分能量分析的難度,使得攻擊者不得不增加采樣數(shù)量。但這種方式不能從根本上解決問(wèn)題,一方面是因?yàn)楣粽呖梢酝ㄟ^(guò)有效的濾波消除這種干擾,另一方面是差分能量分析本身在做統(tǒng)計(jì)平均時(shí)就削弱了噪聲的影響。
2.置亂待加密信息,即在加密前取一個(gè)隨機(jī)數(shù)re,并計(jì)算rj=(re-1)rmodN,]]>令M’=r,對(duì)M’進(jìn)行加密運(yùn)算C′=M′emod N;加密結(jié)束時(shí)計(jì)算C=C′rjmod N恢復(fù)應(yīng)有的密文。但是,這種方法實(shí)際上起不到有效的結(jié)果,因?yàn)閺乃惴ㄉ现v,平方運(yùn)算比乘運(yùn)算要少近一半的指令,因此平方和乘運(yùn)算消耗的能量會(huì)有很大差異。所以這種方法不能有效阻止能量分析攻擊。

發(fā)明內(nèi)容
鑒于上述問(wèn)題,本發(fā)明的目的是提供一種能夠防范對(duì)RSA芯片進(jìn)行能量分析攻擊的方法,使攻擊者無(wú)法通過(guò)簡(jiǎn)單能量分析和差分能量分析方法得到RSA的密鑰。
為實(shí)現(xiàn)本發(fā)明的目的,根據(jù)本發(fā)明的一個(gè)方面,提供一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟集成電路芯片進(jìn)行模冪數(shù)運(yùn)算;插入冗余算法,使得在對(duì)任何位做模冪數(shù)運(yùn)算時(shí)消耗的能量大致相等。
根據(jù)本發(fā)明的另一個(gè)方面,提供一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟集成電路芯片進(jìn)行模冪運(yùn)算時(shí)隨機(jī)插入冗余運(yùn)算指令;使集成電路芯片在對(duì)任何位進(jìn)行實(shí)際模冪數(shù)運(yùn)算時(shí)所消耗的能量大致相等,從而無(wú)法通過(guò)能量攻擊獲取加密密鑰。
根據(jù)本發(fā)明的再一個(gè)方面,提供一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟集成電路芯片進(jìn)行模冪數(shù)運(yùn)算;判斷隨機(jī)數(shù)的當(dāng)前位是否為1;如果隨機(jī)數(shù)的當(dāng)前位為1,則執(zhí)行第一冗余指令算法;如果隨機(jī)數(shù)的當(dāng)前位不為1,則執(zhí)行第二冗余指令算法,從而使集成電路芯片對(duì)每一位所做的模冪數(shù)運(yùn)算所消耗的能量大致相等。
根據(jù)本發(fā)明的再一個(gè)方面,提供一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟a)判斷長(zhǎng)度為n指數(shù)e的當(dāng)前位是否為1;b)如果當(dāng)前位為1,則執(zhí)行下面的步驟c,如果當(dāng)前位為0,則執(zhí)行步驟d;c)執(zhí)行正常的模冪數(shù)運(yùn)算;d)執(zhí)行插入的冗余算法。
根據(jù)本發(fā)明的再一個(gè)方面,提供一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟a)判斷長(zhǎng)度為2n的隨機(jī)數(shù)的當(dāng)前位是否為1;b)如果當(dāng)前位為1,則執(zhí)行第一冗余指令算法;c)如果當(dāng)前位不為1,則執(zhí)行第二冗余指令算法;d)判斷長(zhǎng)度為n的指數(shù)e的當(dāng)前位是否為1;e)如果所述指數(shù)的當(dāng)前位為1,則執(zhí)行正常的模冪數(shù)運(yùn)算;f)如果所述指數(shù)的當(dāng)前位為0,則判斷所述隨機(jī)數(shù)的下一位是否為1,并重復(fù)執(zhí)行步驟b)至f),直到對(duì)隨機(jī)數(shù)的所有位執(zhí)行了運(yùn)算。


通過(guò)閱讀和理解下面參考附圖對(duì)本發(fā)明優(yōu)選實(shí)施例所做的詳細(xì)描述,將使本發(fā)明的這些和其它目的、特征、和優(yōu)點(diǎn)變得顯而易見(jiàn)。其中圖1是表示現(xiàn)有技術(shù)的RSA模冪數(shù)運(yùn)算的流程圖;圖2是表示根據(jù)本發(fā)明實(shí)施例應(yīng)用冗余算法的RSA模冪數(shù)運(yùn)算的流程圖;和圖3是表示應(yīng)用本發(fā)明的冗余運(yùn)算指令的RSA模冪數(shù)運(yùn)算的流程圖。
具體實(shí)施例方式
下面參照附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)的說(shuō)明,在描述過(guò)程中省略了對(duì)于本發(fā)明來(lái)說(shuō)是不必要的細(xì)節(jié)和功能,以防止對(duì)本發(fā)明的理解造成混淆。
下面以指數(shù)(Exp.)算法為例,說(shuō)明RSA算法中模冪算法的實(shí)現(xiàn)過(guò)程。應(yīng)該指出,本發(fā)明不限于RSA芯片,也可以應(yīng)用于其它集成電路芯片。
設(shè)M是需要加密的一段明文消息,e是長(zhǎng)度為n的密鑰,設(shè)<e[n-1],e[n-2],...,e[1],e
>是整數(shù)e的二進(jìn)制表示(即,e的二進(jìn)制有n位,e[n-1]是最高位),N是兩個(gè)大素?cái)?shù)之積,密文C=Me mod N(即,對(duì)Me的模N運(yùn)算)。事實(shí)上,Me mod N可以直接計(jì)算,沒(méi)有必要先算Me,根據(jù)反復(fù)平方法(Repeated Squaring),可以設(shè)計(jì)如下算法<pre listing-type="program-listing">  Exp(M,e,N)  {   r=1;   for(i=n-1;i>=0;i--)   {  r=r2 mod N;  if(e[i]==1)   r=r*M mod N;   }   return r;  }</pre>在此段偽代碼中,r為臨時(shí)變量,最終r為模冪運(yùn)算的結(jié)果。循環(huán)中的每次迭代都用到了下面的兩個(gè)恒等式中的一個(gè)M 2c mod N=(Mc mod N)2M2c+1mod N=M*(Mc mod N)2用哪一個(gè)恒等式取決于e[i]=0還是1。
可知每次計(jì)算出的冪值或者是前一個(gè)冪的兩倍,或者是前一個(gè)冪的兩倍再乘上底數(shù)M。計(jì)算過(guò)程從高位到低位逐個(gè)讀入e的二進(jìn)制表示已控制執(zhí)行哪一種操作。
圖1是現(xiàn)有技術(shù)中執(zhí)行RSA算法中模冪算法的上述偽代碼的流程圖。
由于目前是基于RSA芯片對(duì)0或1的處理所消耗的能量不同而采用直接測(cè)量芯片的能量消耗狀況來(lái)攻擊的目的,本發(fā)明的基本構(gòu)思是采用冗余算法對(duì)每一位的模冪運(yùn)算的不同能量消耗進(jìn)行補(bǔ)償,以使RSA芯片對(duì)0或1進(jìn)行處理所消耗的能量大致相同而解決這一問(wèn)題。
下面參考附圖具體說(shuō)明根據(jù)本發(fā)明實(shí)施例的應(yīng)用冗余算法的實(shí)現(xiàn)過(guò)程。
圖2是應(yīng)用本發(fā)明的RSA的模冪數(shù)運(yùn)算流程圖。應(yīng)該指出,本發(fā)明的基本構(gòu)思不限于RSA的模冪數(shù)運(yùn)算,而是可以應(yīng)用于其它加密算法。首先,在步驟S201,設(shè)r為臨時(shí)變量,由于下述運(yùn)算均為乘法運(yùn)算,為得到模冪運(yùn)算的最終結(jié)果,故令r等于1。在步驟S202,i作為指數(shù)e的二進(jìn)制表示的當(dāng)前位,由于從高位算起,故可以令i等于n-1。然后,在步驟S203,判斷i是否小于零,如果不小于零,則說(shuō)明指數(shù)e的當(dāng)前位不是要被處理的最后一位。這種情況下,執(zhí)行步驟S204。否則,流程進(jìn)行到步驟S209,記錄r的值,結(jié)束該處理過(guò)程。在步驟S204,令r等于r2 mod N,即進(jìn)行r2的模N運(yùn)算。此后,在步驟S205,判斷指數(shù)e的第i位是否為1,如果為1,則執(zhí)行步驟206,令r等于r*M mod N,即進(jìn)行r*M的模N運(yùn)算。如果在步驟S205判斷指數(shù)e的第i位不是1,流程進(jìn)行到步驟S207。在過(guò)去的算法中當(dāng)e的第i位不等于1時(shí),不進(jìn)行任何操作,這樣能量值顯著降低。根據(jù)本實(shí)施例,在步驟S207,對(duì)指數(shù)e的第i位執(zhí)行冗余算法f。需要說(shuō)明的是f算法沒(méi)有具體的含義,它只需要完成的指令周期同r*M mod N大體相當(dāng)即可,即,使得在第i位消耗的能量大致與r*M mod N的能量相當(dāng),即與該位為1的情況消耗的能量大致相同,從而消除對(duì)其進(jìn)行處理時(shí)所產(chǎn)生的能量消耗的差異。接下來(lái),在步驟S208,取e的下一位,故令i=i-1,循環(huán)執(zhí)行步驟S203至步驟S208。當(dāng)處理進(jìn)行到最后一位時(shí),即當(dāng)i<0時(shí),在步驟S209,記錄所得到的r值,并結(jié)束處理過(guò)程。
根據(jù)本發(fā)明的方法,指數(shù)的二進(jìn)制表示中不為1的位的能量消耗執(zhí)行冗余算法,以使其與二進(jìn)制表示中是1的位的能量消耗大致相同,從而克服了基于能量消耗分析而攻擊RSA芯片的問(wèn)題。
圖3所示為應(yīng)用本發(fā)明的RSA的模冪數(shù)運(yùn)算流程圖。下面參考圖3仍以Exp.算法為例,具體說(shuō)明本發(fā)明應(yīng)用冗余指令的實(shí)現(xiàn)過(guò)程。
首先,在步驟S301,設(shè)r為臨時(shí)變量,由于下述運(yùn)算均為乘法運(yùn)算,為得到模冪運(yùn)算的最終結(jié)果,故令r等于1。在步驟S302,j作為隨機(jī)數(shù)的二進(jìn)制表示的當(dāng)前位,由于從低位算起,可以令j等于0。在步驟S303,為掩蓋模平方運(yùn)算和模乘運(yùn)算的能量差異,所以模平方運(yùn)算和模乘運(yùn)算都需要增加冗余指令運(yùn)算,而模平方運(yùn)算和模乘運(yùn)算的次數(shù)為n次,故令隨機(jī)數(shù)(RND)等于長(zhǎng)度為兩倍模長(zhǎng)的隨機(jī)數(shù)。然后,在步驟S304,將i作為指數(shù)e的二進(jìn)制表示的當(dāng)前位,由于從高位算起,故可以令i等于n-1。此后,在步驟S305,判斷i是否小于零,如果不小于零,則說(shuō)明指數(shù)e的當(dāng)前位不是要被處理的最后一位。這種情況下,執(zhí)行步驟S306。流程進(jìn)行到步驟S317,記錄r的值,結(jié)束該處理過(guò)程。在i不小于零的情況下,在步驟S306,令r等于r2 mod N,即r等于r2的模N運(yùn)算。在步驟S307,根據(jù)隨機(jī)數(shù)當(dāng)前位的情況,選擇不同的冗余指令,用于掩蓋模平方運(yùn)算,因此判斷RND的第j位是否為1,如果為1則執(zhí)行步驟S308,執(zhí)行冗余指令算法f1(可以作為第一冗余指令算法)。如果在步驟S307判斷RND的第j位不是1,流程則執(zhí)行步驟S309,執(zhí)行冗余指令算法f2(可以作為第二冗余指令算法)。應(yīng)該指出,由于正常情況下在RNDj=1和RNDj=0時(shí)模平方運(yùn)算的指令周期不同,因此需要執(zhí)行不同的冗余指令算法f1和f2,從而使得執(zhí)行冗余算法之后的模平方運(yùn)算在在RNDj=1和RNDj=0時(shí)運(yùn)行的總體指令周期大致相同,所以f1和f2在本質(zhì)上沒(méi)有區(qū)別,僅僅在運(yùn)行的指令周期上有差別。例如正常RNDj=1和RNDj=0時(shí)模平方運(yùn)算的指令周期分別為20和10,期望運(yùn)行冗余算法后的指令周期為30,那么f1和f2的指令周期分別為10和20。接下來(lái),在步驟S310,判斷指數(shù)e的第i位是否為1,如果為1,則執(zhí)行步驟S311,令r等于r*M mod N,即進(jìn)行r*M的模N運(yùn)算。如果在步驟S310判斷指數(shù)e的第i位不是1,則執(zhí)行步驟S312。在步驟S312,根據(jù)隨機(jī)數(shù)當(dāng)前位的情況,選擇不同的冗余指令,用于掩蓋模乘運(yùn)算,因此判斷RND的第j+1位是否為1,如果為1,流程則執(zhí)行步驟313,執(zhí)行冗余算法f1。如果在步驟S312判斷RND的第j+1位不是1,流程則進(jìn)行到步驟S314,執(zhí)行冗余算法f2。此后,在步驟S315,令j=j(luò)+2。由于隨機(jī)數(shù)RND為2n位,故每次執(zhí)行后增加兩位,即j=j(luò)+2,以便與e的執(zhí)行次數(shù)相同。接下來(lái),在步驟S316,取e的下一位,故令i=i-1,流程返回執(zhí)行步驟S305。當(dāng)處理進(jìn)行到最后一位時(shí),即當(dāng)i<0時(shí),在步驟S317,記錄所得到的r值,并結(jié)束處理過(guò)程。
根據(jù)本發(fā)明的實(shí)施例,可以設(shè)計(jì)一種算法f,該算法中使用的模乘運(yùn)算指令周期數(shù)為c2。應(yīng)該指出,確定運(yùn)算指令周期數(shù)的方法是將模乘運(yùn)算的代碼用編譯器進(jìn)行編譯得到其匯編指令,再將CPU完成每條匯編指令所需的CPU運(yùn)行周期累加得到運(yùn)行模乘運(yùn)算的指令周期。該算法可以包括對(duì)內(nèi)存的讀寫(xiě),對(duì)改變寄存器的數(shù)值以及進(jìn)行加減乘的運(yùn)算,前提是不改變關(guān)鍵的寄存器和有用的內(nèi)存值,即進(jìn)行冗余操作。
插入冗余算法f使得RSA芯片在做任何模冪數(shù)運(yùn)算時(shí)消耗的能量相等,都等于指數(shù)最大即全為1時(shí),模冪數(shù)運(yùn)算消耗的能量。從而將有效運(yùn)算消耗的能量通過(guò)這種方式掩蓋起來(lái)。
或者可以設(shè)計(jì)兩種算法f1,f2,該算法中使用的模平方運(yùn)算指令周期為c1(其確定方法與c2相同),模乘運(yùn)算指令周期數(shù)為c2,該算法可以包括對(duì)內(nèi)存的讀寫(xiě),對(duì)改變寄存器的數(shù)值以及進(jìn)行加減乘的運(yùn)算,前提是不改變關(guān)鍵的寄存器和有用的內(nèi)存值,即進(jìn)行冗余操作。
根據(jù)本發(fā)明,插入冗余運(yùn)算指令使得RSA芯片在做任何模冪數(shù)運(yùn)算時(shí)隨機(jī)插入一些指令,從而掩蓋進(jìn)行實(shí)際模冪數(shù)運(yùn)算所消耗的能量。
至此已經(jīng)結(jié)合優(yōu)選實(shí)施例對(duì)本發(fā)明進(jìn)行了描述。本領(lǐng)域技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的精神和范圍的情況下,可以進(jìn)行各種其它的改變、替換和添加。因此,本發(fā)明的范圍不應(yīng)該被理解為被局限于上述特定實(shí)施例,而應(yīng)由所附權(quán)利要求所限定。
權(quán)利要求
1.一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟集成電路芯片進(jìn)行模冪數(shù)運(yùn)算;插入冗余算法,使得在對(duì)任何位做模冪數(shù)運(yùn)算時(shí)所消耗的能量大致相等。
2.根據(jù)權(quán)利要求1所述的方法,其中所述集成電路芯片是RSA芯片。
3.根據(jù)權(quán)利要求1或2所述的方法,其中進(jìn)一步包括在對(duì)任何位做模冪數(shù)運(yùn)算時(shí),使能量消耗都等于指數(shù)為1時(shí)的模冪數(shù)運(yùn)算的能量消耗。
4.根據(jù)權(quán)利要求1或2所述的方法,其中所述冗余算法中使用的模乘運(yùn)算指令周期數(shù)為c2。
5.一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟集成電路芯片進(jìn)行模冪運(yùn)算時(shí)隨機(jī)插入冗余運(yùn)算指令;使集成電路芯片在對(duì)任何位進(jìn)行實(shí)際模冪數(shù)運(yùn)算時(shí)所消耗的能量大致相等,從而無(wú)法通過(guò)能量攻擊獲取加密密鑰。
6.根據(jù)權(quán)利要求5所述的方法,其中所述集成電路芯片是RSA芯片。
7.一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟集成電路芯片進(jìn)行模冪數(shù)運(yùn)算;判斷隨機(jī)數(shù)的當(dāng)前位是否為1;如果隨機(jī)數(shù)的當(dāng)前位為1,則執(zhí)行第一冗余指令算法;如果隨機(jī)數(shù)的當(dāng)前位不為1,則執(zhí)行第二冗余指令算法,從而使集成電路芯片對(duì)每一位所做的模冪數(shù)運(yùn)算所消耗的能量大致相等。
8.根據(jù)權(quán)利要求7所述的方法,其中所述集成電路芯片是RSA芯片。
9.根據(jù)根據(jù)權(quán)利要求7或8所述的方法,其中在所述第一和第二冗余指令算法中使用的模平方運(yùn)算指令周期為c1,模乘運(yùn)算指令周期數(shù)為c2。
10.一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟a)判斷長(zhǎng)度為n的指數(shù)e的當(dāng)前位是否為1;b)如果當(dāng)前位為1,則執(zhí)行下面的步驟c,如果當(dāng)前位為0,則執(zhí)行步驟d;c)執(zhí)行正常的模冪數(shù)運(yùn)算;d)執(zhí)行插入的冗余算法。
11.根據(jù)權(quán)利要求10所述的方法,其中執(zhí)行所述冗余算法的步驟進(jìn)一步包括在模冪數(shù)運(yùn)算中,使得針對(duì)指數(shù)的任何位所做的模冪數(shù)運(yùn)算消耗的能量大致相等。
12.根據(jù)權(quán)利要求10或11所述的方法,其中執(zhí)行所述冗余算法的步驟進(jìn)一步包括使對(duì)當(dāng)前位為0所執(zhí)行的模冪數(shù)運(yùn)算所消耗的能量與當(dāng)前位為1所執(zhí)行的模冪數(shù)運(yùn)算所消耗的能量大致相等。
13.根據(jù)權(quán)利要求10或11所述的方法,其中所述集成電路芯片是RSA芯片。
14.一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟a)判斷長(zhǎng)度為2n的隨機(jī)數(shù)的當(dāng)前位是否為1;b)如果當(dāng)前位為1,則執(zhí)行第一冗余指令算法;c)如果當(dāng)前位不為1,則執(zhí)行第二冗余指令算法;d)判斷長(zhǎng)度為n的指數(shù)e的當(dāng)前位是否為1;e)如果所述指數(shù)的當(dāng)前位為1,則執(zhí)行正常的模冪數(shù)運(yùn)算;f)如果所述指數(shù)的當(dāng)前位為0,則判斷所述隨機(jī)數(shù)的下一位是否為1,并重復(fù)執(zhí)行步驟b)至f),直到對(duì)隨機(jī)數(shù)的所有位執(zhí)行了運(yùn)算。
15.根據(jù)權(quán)利要求14所述的方法,其中執(zhí)行所述冗余指令算法的步驟進(jìn)一步包括在模冪數(shù)運(yùn)算中,使得針對(duì)指數(shù)的任何位所做的模冪數(shù)運(yùn)算消耗的能量大致相等。
16.根據(jù)權(quán)利要求14或15所述的方法,其中執(zhí)行所述冗余指令算法的步驟包括使對(duì)當(dāng)前位為0所執(zhí)行的模冪數(shù)運(yùn)算所消耗的能量與當(dāng)前位為1所執(zhí)行的模冪數(shù)運(yùn)算所消耗的能量大致相等。
17.根據(jù)權(quán)利要求14或15所述的方法,其中所述集成電路芯片是RSA芯片。
全文摘要
本發(fā)明揭示了一種防止基于能量分析對(duì)集成電路芯片進(jìn)行攻擊的方法,包括步驟集成電路芯片進(jìn)行模冪數(shù)運(yùn)算;插入冗余算法,使得在對(duì)任何位做模冪數(shù)運(yùn)算時(shí)消耗的能量大致相等。本發(fā)明的方法通過(guò)在原有RSA算法中增加冗余算法或者隨機(jī)插入運(yùn)算指令使得在進(jìn)行模冪數(shù)運(yùn)算消耗的能量大致相等,使得攻擊者無(wú)法根據(jù)能量消耗的統(tǒng)計(jì)信息,分析出RSA密鑰,從而達(dá)到對(duì)RSA算法的能量攻擊的防護(hù),保證RSA密鑰安全的目的。
文檔編號(hào)G06F17/50GK1835207SQ20051005589
公開(kāi)日2006年9月20日 申請(qǐng)日期2005年3月17日 優(yōu)先權(quán)日2005年3月17日
發(fā)明者謝巍, 王新成 申請(qǐng)人:聯(lián)想(北京)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1