0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

差分能量分析攻擊的原理及解決方案分析

電子設(shè)計(jì) ? 來(lái)源:電子技術(shù)應(yīng)用 ? 作者:謝雨,范明鈺,王光 ? 2021-03-24 15:44 ? 次閱讀

1 差分能量分析

許多信用卡公司計(jì)劃在未來(lái)幾年內(nèi)部大部分的磁卡轉(zhuǎn)變?yōu)?a href="http://www.ttokpm.com/v/" target="_blank">智能卡。目前智能卡在運(yùn)輸、電子貨幣、ID卡等領(lǐng)域內(nèi)的用途不斷增加。智能卡的主要優(yōu)勢(shì)是內(nèi)部數(shù)據(jù)例如密鑰能夠在內(nèi)部處理而僅僅公開(kāi)處理結(jié)果。但是,在使用輸入信息和密鑰所進(jìn)行的處理過(guò)程中智能卡會(huì)產(chǎn)生諸如能量消耗或者電磁散射之類(lèi)的信息泄漏。于是近年來(lái)出現(xiàn)了一些新的攻擊手段,攻擊者有可能利用它們獲取保存在智能卡內(nèi)部的數(shù)據(jù)。

在這些攻擊手段中,有一種攻擊主要是通過(guò)分析電子設(shè)備執(zhí)行計(jì)算過(guò)程中的能量消耗來(lái)尋找有關(guān)密鑰的信息。通常將這類(lèi)攻擊劃分為簡(jiǎn)單能量分析攻擊SPA(Simple Power Analysis)和差分能量分析攻擊DPA(Differential Power Analysis)。DPA攻擊是通過(guò)分析泄漏信息進(jìn)行攻擊的主要形式。

在SPA攻擊中,目標(biāo)本質(zhì)上來(lái)說(shuō)是利用能量消耗的值來(lái)推測(cè)出相關(guān)的秘密信息甚至是密鑰。圖1展示了一個(gè)智能卡在DES運(yùn)算中的能量消耗。從圖1中可以明顯看出智能卡的能量消耗很可能確實(shí)提供了有關(guān)芯片工作的信息。

在DPA攻擊中,計(jì)算了兩組平均能量消耗的差異,如果出現(xiàn)非常顯著的差異就認(rèn)為攻擊成功。給人留下深刻印象的是雖然攻擊者不了解而且也不試圖找出該算法特定的執(zhí)行部分的任何信息,DPA攻擊也同樣可以找出密碼算法(例如DES算法)的密鑰。當(dāng)前存在的算法中,有些能夠防止DPA攻擊,但不能防止SPA攻擊;還有一些算法則相反,能夠防止SPA攻擊,不能防止DPA攻擊;另外還有這兩種攻擊都能抵御的算法以及都不能抵御的算法。

2 DPA攻擊的原理

DES算法(數(shù)據(jù)加密標(biāo)準(zhǔn))要執(zhí)行十六輪運(yùn)算。在每一輪運(yùn)算中,函數(shù)f執(zhí)行在32個(gè)比特上。函數(shù)f使用八個(gè)從6比特到4比特的非線(xiàn)性變化,每個(gè)變換都被編碼在一個(gè)被稱(chēng)為S盒的工作平臺(tái)上。下面以DES算法為例說(shuō)明DPA攻擊的原理。

步驟1:測(cè)出1000次DES運(yùn)算第一輪的能量消耗。用E1,…,E1000來(lái)表示1000次運(yùn)算的輸入值。用C1,…,C1000來(lái)表示運(yùn)算期間測(cè)出的1000條能量消耗曲線(xiàn)。計(jì)算1000條能量消耗曲線(xiàn)的平均曲線(xiàn),記為MC。

步驟2:主要關(guān)注第一個(gè)S盒中第一輪運(yùn)算的第一個(gè)輸出比特。用b表示這個(gè)比特值。很容易發(fā)現(xiàn)b僅僅取決于密鑰中的6個(gè)比特。攻擊時(shí)可以對(duì)相關(guān)的6比特作一個(gè)猜測(cè)。用這6個(gè)比特和Ei來(lái)計(jì)算b的理論值。這樣就能夠?qū)?000個(gè)輸入E1,…,E1000分為兩類(lèi):使b=0的輸入以及使b=1的輸入。

步驟3:計(jì)算與使b=0輸入有關(guān)的曲線(xiàn)的平均值,記為MC’。如果從MC和MC’的圖像沒(méi)有任何可觀(guān)察到的不同,那么選擇另外6個(gè)比特再重復(fù)步驟2。在這一步中,通常對(duì)每次選擇的6個(gè)比特值,作出相應(yīng)的代表MC和MC’的差異的曲線(xiàn),得到64條曲線(xiàn)后選出與其它有明顯差異的一條。

步驟4:使用b在第二、第三…第八個(gè)S盒中重復(fù)步驟2和3,得到密鑰的48個(gè)比特。

步驟5:余下的8比特可以通過(guò)窮舉搜索得到。

在實(shí)際對(duì)智能卡的攻擊中,通常關(guān)注的是選定S盒的4個(gè)輸出比特集,而不僅是一個(gè)輸出比特。這種情況下,將輸入分為16個(gè)集合:使輸出為0000的,使輸出為0001的,…,使輸出為1111的。在步驟3中,可以計(jì)算與最后一類(lèi)輸入(使輸出為1111的)相關(guān)的曲線(xiàn)的平均值MC’。但是這樣得到的平均值MC’是通過(guò)1/16的曲線(xiàn)計(jì)算得到的,而起初的MC是通過(guò)一半的曲線(xiàn)計(jì)算得到。這就被迫使用遠(yuǎn)遠(yuǎn)超過(guò)1000次的DES運(yùn)算,但好處是MC和MC’具有更明顯的差異。

圖2和圖3表示了在智能卡上的一次DES運(yùn)算中,執(zhí)行步驟2和步驟3得到的結(jié)果。選用“1111”作為第一個(gè)S盒的目標(biāo)輸出,使用2048個(gè)不同的輸入。對(duì)64條曲線(xiàn)的詳細(xì)分析表明,結(jié)果正確時(shí)曲線(xiàn)很容易找到,這條曲線(xiàn)比其他曲線(xiàn)包含了更多的波峰。

DPA攻擊不需要任何有關(guān)每個(gè)設(shè)備的個(gè)體能量消耗的信息。攻擊者一旦知道了算法的輸出以及相應(yīng)的能量消耗曲線(xiàn)后就可以進(jìn)行攻擊。DPA攻擊在理論上僅僅依賴(lài)于下面的基本假設(shè):在算法運(yùn)算中存在一個(gè)中間變量,知道密鑰的一些比特(小地32比特)可以決定兩個(gè)輸入是否給這個(gè)變量帶來(lái)相同的值。

所有使用S盒的算法,例如DES算法,對(duì)DPA攻擊都顯得很脆弱。因此這些算法中的一些執(zhí)行包含在上面提到的假設(shè)中。

3 對(duì)DPA攻擊的抵御措施

從Paul Kocher于1995年公開(kāi)發(fā)表DPA攻擊的原理以來(lái),現(xiàn)在已經(jīng)出現(xiàn)一些相應(yīng)的解決方案:

(1)引進(jìn)隨機(jī)時(shí)間移動(dòng)。這樣計(jì)算方式不再與相同設(shè)施的能量消耗有關(guān)。

(2)替換一些關(guān)鍵設(shè)備,使它們很難被分析。

(3)對(duì)一個(gè)指定的算法提供一種明確的計(jì)算方式,以使DPA攻擊對(duì)得到的執(zhí)行可能無(wú)效。

在這些方案中,更廣泛地研究了第三種,因?yàn)樗枰浅>_的數(shù)學(xué)分析。下面給出了避免DPA攻擊的具體措施。其基本原則是使前面介紹過(guò)的基本假設(shè)不再成立,也就是使中間變量絕對(duì)不依賴(lài)能夠輕易獲得的密鑰子集。

這種方案的主要思想為:用k個(gè)變量V1,…,Vk替換每一個(gè)依賴(lài)于輸入或者輸出的中間變量V,通過(guò)這k個(gè)變量可以重新得到V。更明確地說(shuō),為了保證這個(gè)算法新形式的安全性,選擇一個(gè)函數(shù)f滿(mǎn)足恒等式V=f(V1,…,Vk),并且滿(mǎn)足下面兩個(gè)條件:

條件1:通過(guò)v和一些固定值i(1≤i≤k)推論出v1的信息晃可行的,因而存在一個(gè)k-1個(gè)元素的數(shù)組(v1,…,vi-1,vi,…,vk),滿(mǎn)足等式f(v1,…,vk)=v。

條件2:函數(shù)f不需要計(jì)算V即可執(zhí)行。

條件1的第一個(gè)例子:選擇函數(shù)f(v1,…,vk)=v1+v2+…+vk,”+”代表異或運(yùn)行。很明顯函數(shù)f滿(mǎn)足條件1,因?yàn)閷?duì)任何固定的i(1)(1≤i≤k),vi包括所有可能的值,因此不信賴(lài)v。

條件1的第二個(gè)例子:選擇變量V,它的值存在于乘法集Z/nZ中。選擇函數(shù)f(v1,…,vk)=v1%26;#183;v2%26;#183;…%26;#183;vk mod n,新變量v1,v2, …,vk的值也存在于乘法集Z/nZ中。這個(gè)函數(shù)也滿(mǎn)足條件1。

然后用變量V1,…,Vk替換依賴(lài)于輸入的中間變量V來(lái)轉(zhuǎn)換初始算法。

本文介紹了攻擊者通過(guò)對(duì)電子設(shè)備的能量消耗進(jìn)行分析得到有關(guān)密碼算法密鑰的信息。這種攻擊方法被稱(chēng)之為差分能量分析攻擊。它主要利用統(tǒng)計(jì)學(xué)對(duì)測(cè)出的密碼算法的許多不同輸入的能量消耗曲線(xiàn)進(jìn)行分析。為了保護(hù)密碼算法的安全,還介紹了防御的主要思想:將中間變量分為兩個(gè)或更多的變量,這些新變量不會(huì)輪易地被預(yù)測(cè)。這種方式被證明可以抵御本地的DPA攻擊,在這種攻擊中攻擊者僅僅嘗試從平均值曲線(xiàn)的差異中尋找明顯的異化。不過(guò)對(duì)另外一些也使用能量消耗分析的攻擊來(lái)說(shuō),這種方法卻不一定安全,因此相關(guān)的理論研究還將繼續(xù)下去。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電子設(shè)備
    +關(guān)注

    關(guān)注

    2

    文章

    2511

    瀏覽量

    53410
  • 智能卡
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    24684
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    對(duì)嵌入式系統(tǒng)的攻擊 攻擊者通過(guò)什么途徑得到ATM的密鑰呢?

    處理0時(shí)消耗更多的時(shí)間和功率,這為攻擊者提供了足夠的信息,使其推算出密鑰。如果這種簡(jiǎn)單的分析手段不起作用,攻擊者便會(huì)使用
    發(fā)表于 08-11 14:27

    在labview中對(duì)語(yǔ)音信號(hào)進(jìn)行短時(shí)能量分析和短時(shí)過(guò)零率分析

    在labview中對(duì)語(yǔ)音信號(hào)進(jìn)行短時(shí)能量分析和短時(shí)過(guò)零率分析,最好是做個(gè)程序,謝謝各位大神了
    發(fā)表于 12-09 12:47

    回收Fluke 434-II 435-II 回收437-II電能量分析

    測(cè)試儀、頻率計(jì)·數(shù)字電橋·藍(lán)牙測(cè)試儀等---------------------------------------------------------- Fluke 434 系列 II 電能量分析儀 以
    發(fā)表于 09-03 14:28

    攻擊的SMS4密碼算法集成電路設(shè)計(jì)研究

    本文對(duì)SMS4密碼算法的集成電路優(yōu)化實(shí)現(xiàn)技術(shù)、功耗分析攻擊與防護(hù)方法、抗功耗分析攻擊的集成電路設(shè)計(jì)以及故障攻擊防護(hù)方法進(jìn)行了研究,提出了
    發(fā)表于 10-20 16:20 ?0次下載

    基于掩碼的AES算法抗二階DPA攻擊方法研究

    ,暴露中間值的可能性。通過(guò)搭建能量分析平臺(tái)進(jìn)行實(shí)驗(yàn)分析,并與其他防御方法相比較分析,結(jié)果表明改進(jìn)后的防御方法安全性更高,能夠抵抗二階
    發(fā)表于 12-31 09:25 ?15次下載

    單晶爐配電系統(tǒng)電能質(zhì)量分析解決方案_王海濤

    單晶爐配電系統(tǒng)電能質(zhì)量分析解決方案_王海濤
    發(fā)表于 01-08 10:24 ?1次下載

    基于SM3的動(dòng)態(tài)令牌的能量分析攻擊方法

    提出一種針對(duì)基于SM3的動(dòng)態(tài)令牌實(shí)施的能量分析攻擊新方法,首次提出選擇置換函數(shù)的輸出作為能量分析攻擊的目標(biāo),并將攻擊結(jié)果聯(lián)立得到方程組。根據(jù)給出的逆置換函數(shù)求解方程組,即可破解最終的密鑰。通過(guò)實(shí)測(cè)
    發(fā)表于 01-24 17:15 ?0次下載

    基于希爾伯特黃變換濾波預(yù)處理的相關(guān)性能量分析攻擊

    本文使用Mega16單片機(jī)作為開(kāi)展研究的載體,以希爾伯特黃變換濾波技術(shù)在相關(guān)性能量分析攻擊中的應(yīng)用為主線(xiàn),對(duì)如何通過(guò)HHT預(yù)處理技術(shù)來(lái)提高CPA攻擊的效率進(jìn)行了深入研究。與傳統(tǒng)的CPA攻擊方法
    發(fā)表于 01-30 11:18 ?1次下載

    基于SM3的HMAC的能量分析攻擊方法

    能量分析新型攻擊方法,該新型攻擊方法每次攻擊時(shí)選擇不同的攻擊目標(biāo)和其相關(guān)的中間變量,根據(jù)該中間變量的漢明距離模型或者漢明重量模型實(shí)施
    發(fā)表于 02-11 09:57 ?1次下載
    基于SM3的HMAC的<b class='flag-5'>能量分析攻擊</b>方法

    密碼芯片時(shí)域互信息能量分析

    在對(duì)密碼芯片進(jìn)行時(shí)域上互信息能量分析基礎(chǔ)上,提出頻域上最大互信息系數(shù)能量分析攻擊的方法。該方法結(jié)合了密碼芯片在頻域上信息泄露的原理和互信息能量分析攻擊的原理,引入了最大互信息系數(shù)的概念,避免了在時(shí)域
    發(fā)表于 02-27 10:48 ?0次下載
    密碼芯片時(shí)域互信息<b class='flag-5'>能量分析</b>

    能量分析攻擊的原理與解決方案的研究分析

    DPA攻擊不需要任何有關(guān)每個(gè)設(shè)備的個(gè)體能量消耗的信息。攻擊者一旦知道了算法的輸出以及相應(yīng)的能量消耗曲線(xiàn)后就可以進(jìn)行攻擊。DPA
    的頭像 發(fā)表于 11-08 07:50 ?5747次閱讀
    <b class='flag-5'>差</b><b class='flag-5'>分</b><b class='flag-5'>能量分析攻擊</b>的原理與<b class='flag-5'>解決方案</b>的研究<b class='flag-5'>分析</b>

    FPGA搭配加密內(nèi)核便可對(duì)抗功率分析攻擊

    愛(ài)特公司(Actel CorporaTIon) 宣布其多種FPGA產(chǎn)品現(xiàn)可搭配使用加密內(nèi)核,對(duì)抗功率分析(differential Power analysis, DPA)攻擊
    發(fā)表于 12-19 15:23 ?798次閱讀

    機(jī)器學(xué)習(xí)模型在功耗分析攻擊中的研究

    根據(jù)密碼芯片功耗曲線(xiàn)的特性,對(duì)支持向量機(jī)、隨機(jī)森林、K最近鄰、樸素貝葉斯4種機(jī)器學(xué)習(xí)算法進(jìn)行分析研究,從中選擇用于功耗分析攻擊的最優(yōu)算法。對(duì)于機(jī)器學(xué)習(xí)算法的數(shù)據(jù)選取問(wèn)題,使用多組數(shù)量相同但組成元素
    發(fā)表于 06-03 15:53 ?5次下載

    一種抗能量的橢圓曲線(xiàn)密碼標(biāo)量乘算法

    算和基點(diǎn)掩碼技術(shù),使算法可以抵抗多種能量分析攻擊。分析結(jié)果表明,該算法不僅能夠抵抗簡(jiǎn)單能量分析攻擊
    發(fā)表于 06-09 14:45 ?8次下載

    功率分析側(cè)信道攻擊簡(jiǎn)介

     了解基于功耗的側(cè)信道攻擊的工作原理以及不同類(lèi)型的功耗分析攻擊,包括簡(jiǎn)單功耗分析 (SPA)、功耗
    的頭像 發(fā)表于 04-08 15:31 ?1808次閱讀
    功率<b class='flag-5'>分析</b>側(cè)信道<b class='flag-5'>攻擊</b>簡(jiǎn)介