智能卡RSA算法DPA的攻擊與防御
文章出處:http://psychicreadingswithdeb.com 作者:靳濟方 高獻偉 人氣: 發(fā)表時(shí)間:2011年09月26日
1 引言
智能卡(smart card)也稱(chēng)CPU卡,不僅具有數據存儲功能,還具有數據安全保護、復雜密碼運算等功能。智能卡采用RSA算法作為公鑰加密算法.但是智能卡在運行過(guò)程中不可避免會(huì )泄露一些旁路信息,如能量、電磁波、時(shí)問(wèn)等,利用能耗信息對智能卡進(jìn)行攻擊能夠達到很好的效果,其危害遠遠大于傳統的數學(xué)攻擊手段。
1999年P(guān)aul首次提出能量分析⋯,能量分析是指通過(guò)采集智能卡加密芯片等硬件設備在進(jìn)行加、解密或簽名操作時(shí)產(chǎn)生的能量消耗信息,利用密碼學(xué)、統計學(xué)原理,分析和破譯密鑰信息的一種攻擊方式。通常.可將能量分析攻擊分為簡(jiǎn)單能量分析(simple power analysis,SPA)攻擊和差分能量分析(differential power analysis,DPA)攻擊兩類(lèi),其中DPA是目前非??焖俣行У墓舴椒?。所以近年來(lái)針對DPA的各種防御方法成為研究的熱點(diǎn)。
2 DPA攻擊原理
DPA是利用智能卡密碼芯片運行時(shí)的能量信號與密碼算法的密鑰之間的相關(guān)性,運行多次密碼算法就可以暴露出這種相關(guān)性嘲。DPA的過(guò)程如下。
....................
3 算法級DPA攻擊RSA
3.1 算法級DPA攻擊RSA的思想
模冪運算是RSA中最根本的運算,模冪運算可以分解成多個(gè)模平方運算和模乘運算,進(jìn)行模平方運算和模乘運算所消耗的能量是有差別的。DPA攻擊RSA的主要思想是利用RSA算法平方運算和乘法運算能耗的明顯不同,考慮到噪聲對能耗軌跡的干擾,采用均值和差分的統計運算不斷修正能耗軌跡,同時(shí)利用設計合理的區分函數將猜想私鑰的比特位對應的能耗軌跡分類(lèi),最終獲得私鑰指數的比特位信息。
3.2 算法級DPA攻擊RSA的主要方法
根據攻擊的前提條件不同,DPA攻擊RSA的方法主要為以下兩類(lèi)。
(1)獲得已知公鑰指數前提下的DPA攻擊
根據IS07816標準.智能卡的使用者可通過(guò)手冊獲得卡的公鑰指數值.可以運行“外部認證”指令使用公鑰指數進(jìn)行加密操作.可以對任意輸入運行“內部認證”指令使用私鑰指數進(jìn)行簽名操作。
....................
4 算法級防御DPA攻擊的方法
針對上述算法級攻擊方法,目前有幾類(lèi)算法級防范DPA攻擊的方法,防御思想都是:消除或減少算法操作數特征,消除算法執行過(guò)程中的操作數和中間值與能耗之間的對應關(guān)系。大致可以分為以下幾類(lèi)。
(1)減小信號強度。減小信號強度的主要實(shí)現方法包括算法執行連續編碼,選取小能耗運算指令,均衡漢明重量。算法執行連續編碼可以防止DPA判斷不同算法的起始點(diǎn)和結束點(diǎn).不提供有價(jià)值的算法信息;選取小能耗運算的實(shí)現思想是用不易產(chǎn)生顯著(zhù)能耗變化的指令取代一些原始指令,使指令的能耗減小及不同指令的能耗趨于平衡:均衡漢明重量可使數據以原碼和反碼兩種形式表示,避免通過(guò)漢明重量與能耗的直接關(guān)系泄露能量信息。
(2)增加隨機噪聲。通過(guò)引入隨機噪聲,使得有用的信號完全淹沒(méi)于無(wú)用的噪聲中,從而增加能量攻擊的難度。但是.這種方法不能從根本上解決問(wèn)題:其一,攻擊者可以通過(guò)有效的濾波,消除這種干擾;其二,DPA本身在做統計平均時(shí)就削弱了噪聲的影響。
(3)數據隨機化掩蓋??煞譃槊魑碾S機化掩蓋和指數隨機化掩蓋兩類(lèi),分別通過(guò)數學(xué)運算的變換與反變換,使RSA算法中的操作數均為經(jīng)過(guò)~定隨機化變形的替代數。僅通過(guò)能量差分運算得不到真實(shí)的差異點(diǎn)位置.這為真實(shí)算法做了掩蓋,達到防御DPA攻擊的目的。但是這兩種方法實(shí)際上起不到有效的效果,因為從算法上講平方運算比乘運算要少近一半的指令.因此平方和乘運算消耗的能量會(huì )有很大的差異.而如果僅僅是操作數不同,運算所執行的乘和平方的數量不變,這樣所帶來(lái)的能量變化的干擾基本上可以忽略,這兩種掩蓋仍不能完全掩蓋操作指令的真實(shí)能耗軌跡,攻擊者可以通過(guò)其平方運算或乘法運算的不同運算指令的能耗軌跡,獲取算法運行的內部信息,再結合其他攻擊手段進(jìn)行攻擊。
5 三重掩蓋法
為了彌補上述方法的不足,本文在對RSA算法中最重要的模冪算法進(jìn)行數據隨機化掩蓋的基礎上,提出一種新的防御DPA攻擊的方法。設計一個(gè)與智能卡進(jìn)行平方或乘法運算時(shí)的能耗相當的無(wú)效算法,在對原模冪算法進(jìn)行明文隨機化掩蓋和指數隨機化掩蓋的基礎上.在平方和乘法運算指令間加入隨機的指令,進(jìn)行“偽裝”。該算法同樣進(jìn)行真實(shí)的平方或乘法運算,運算結果寫(xiě)入內存,從而使其能耗與算法中產(chǎn)生作用的指令的能耗相近、軌跡相似,達到掩蓋運算能耗軌跡的目的。這樣就在明文、指數和運算指令3個(gè)方面對DPA攻擊進(jìn)行了全面防御。防御DPA攻擊的三重掩蓋的RSA模冪改進(jìn)算法如下。
....................
全文下載閱讀:http://www.yktchina.com/bbs/Read-b3-t5203-p10.htm