abstract
我們利用最近發(fā)布的AES的開(kāi)放源代碼實(shí)施方式加以保護(hù)专甩,其中結(jié)合了針對(duì)側(cè)信道攻擊的對(duì)策椅寺,以討論保護(hù)COTS設(shè)備免受此類攻擊的挑戰(zhàn)以及封閉源安全性評(píng)估的局限性坠宴。 該目標(biāo)實(shí)施方案是由法國(guó)ANSSI(國(guó)家情報(bào)系統(tǒng)情報(bào)局)提出的蒋歌,目的是促進(jìn)對(duì)旁通道安全實(shí)施方案的設(shè)計(jì)和評(píng)估的研究歧蕉。它將加性和乘性秘密共享合并到一個(gè)仿射屏蔽方案中,該方案還與改組執(zhí)行混合在一起友鼻。 其初步泄漏評(píng)估未檢測(cè)到多達(dá)100,000次測(cè)量的數(shù)據(jù)依存關(guān)系傻昙。首先,我們將展示如何通過(guò)使用降維彩扔,多元信息提取和密鑰枚舉相結(jié)合的對(duì)策剖析方法,通過(guò)少于2000次的測(cè)量來(lái)恢復(fù)完整密鑰僻爽,從而展示出這種初步的泄漏評(píng)估與高級(jí)攻擊之間的差距虫碉。然后,我們指出開(kāi)放源代碼評(píng)估的相關(guān)性胸梆,以有效地分析此類實(shí)現(xiàn)敦捧,方法是指出须板,沒(méi)有實(shí)現(xiàn)知識(shí)(即使使用機(jī)器學(xué)習(xí)工具),攻擊的某些步驟很難自動(dòng)化兢卵,而手動(dòng)執(zhí)行則很簡(jiǎn)單习瑰。 我們的發(fā)現(xiàn)不是由于設(shè)計(jì)缺陷,而是由于在噪聲有限的COTS設(shè)備中防止側(cè)通道攻擊的普遍困難秽荤。 我們預(yù)計(jì)甜奄,此類設(shè)備的高安全性需要更多份額。
introduction
一般情況窃款。 這項(xiàng)工作的主要?jiǎng)訖C(jī)是討論和說(shuō)明嵌入式安全領(lǐng)域的學(xué)術(shù)研究與工業(yè)實(shí)踐之間令人擔(dān)憂的(并且可能會(huì)越來(lái)越大的)差距课兄。 為此目的,我們的初步觀察結(jié)果是晨继,與具體相關(guān)的旁通道對(duì)策的設(shè)計(jì)現(xiàn)已被廣泛接受烟阐,成為了在越來(lái)越多的應(yīng)用程序中部署的嵌入式設(shè)備的安全性的重要組成部分。 最近的NIST競(jìng)賽將其作為一個(gè)明確的目標(biāo)紊扬,很好地說(shuō)明了這一趨勢(shì)蜒茄。1但是,在此研究領(lǐng)域中具體相關(guān)的含義的含義仍然是相當(dāng)主觀的解釋餐屎。 我們認(rèn)為檀葛,這種狀況至少部分是由于學(xué)術(shù)研究和行業(yè)實(shí)踐進(jìn)行調(diào)查的模式(開(kāi)放源與封閉源)截然不同。
一方面啤挎,最近的學(xué)術(shù)研究一直集中在對(duì)可能導(dǎo)致任何形式的“物理安全放大”的基本機(jī)制的理解上驻谆,這通常是在開(kāi)源環(huán)境中獲得的。正如密碼學(xué)普遍接受的(并由Kerckhoffs的原則正式化)庆聘,這一行的希望是實(shí)現(xiàn)可以基于物理假設(shè)和數(shù)學(xué)分析相結(jié)合而論證其安全性的對(duì)象胜臊,無(wú)需依靠保密措施的實(shí)施。
此類研究的最突出示例是掩蔽[CJRR99]伙判,已在不同模型[ISW03象对,PR13,DDF14宴抚,DFS15勒魔,BDF + 17]中對(duì)其進(jìn)行了正式分析。 粗略地講菇曲,掩蔽可以以二次性能開(kāi)銷為代價(jià)冠绢,以指數(shù)形式[DDF14]放大邊信道測(cè)量中的噪聲。 但是常潮,使用商用的現(xiàn)貨(COTS)組件達(dá)到較高的安全級(jí)別通常需要大量的shares(有關(guān)軟件的最新討論弟胀,請(qǐng)參見(jiàn)[JS17,GPSS18]),因此孵户,性能開(kāi)銷有時(shí)可能會(huì)超出限制萧朝。 工業(yè)應(yīng)用的限制。引入和分析了各種其他對(duì)策夏哭,從啟發(fā)式到形式化检柬。我們將 shuffling[HOM06藕咏,VMKS12]和re-keying[MSGR10任柜,DKM + 15]作為流行示例。
另一方面琐簇,針對(duì)實(shí)際設(shè)備進(jìn)行邊信道分析的公開(kāi)報(bào)告實(shí)際上很少械念,并且大多限于未受保護(hù)(或受保護(hù)程度較弱)的實(shí)現(xiàn)头朱。 在這方面的工作中,貢獻(xiàn)的重要部分通常在于對(duì)(協(xié)議和算法)規(guī)范和實(shí)現(xiàn)的理解龄减,以便展現(xiàn)出攻擊向量[RSWO17]项钮。 一旦完成了此類(耗時(shí)的)逆向工程,實(shí)際的旁道攻擊通常就很簡(jiǎn)單希停。 典型示例包括針對(duì)Keeloq跳頻方案[EKM + 08]烁巫,針對(duì)FPGA位流加密[MBKP11],針對(duì)(未保護(hù)的)SIM卡[ZYSQ13]的攻擊宠能,或更近期針對(duì)IoT設(shè)備的攻擊[RSWO17亚隙,DK18]。 盡管這些工作對(duì)于提高人們對(duì)使用有限的設(shè)備可以輕松訪問(wèn)邊信道攻擊的認(rèn)識(shí)非常重要违崇,但對(duì)于受保護(hù)程度更高(可能經(jīng)過(guò)認(rèn)證)的產(chǎn)品的安全級(jí)別阿弃,它們的信息還不是很豐富。
在這方面羞延,差距的另一個(gè)來(lái)源是當(dāng)前的認(rèn)證方案偏愛(ài)“默默無(wú)聞的安全性”渣淳。也就是說(shuō),公開(kāi)實(shí)施目前可能會(huì)降低認(rèn)證級(jí)別伴箩,因?yàn)樵谡J(rèn)證方案中入愧,在攻擊中使用“敏感信息”會(huì)增加其“復(fù)雜性” [LR10,Lib19]嗤谚。通常棺蛛,肯定會(huì)懷疑依賴于實(shí)現(xiàn)的保密性的長(zhǎng)期相關(guān)性(考慮到封閉源密碼設(shè)計(jì)失敗的歷史[BSW00,GdKGM + 08])巩步。具體而言旁赊,我們認(rèn)為,這樣的政策會(huì)阻止學(xué)術(shù)研究直接用于提高已部署產(chǎn)品的安全性椅野,因?yàn)椋╥)從科學(xué)的角度來(lái)看彤恶,反向工程通常沒(méi)有什么價(jià)值钞钙,并且(ii)攻擊認(rèn)證產(chǎn)品的任何結(jié)果鳄橘,即使是在負(fù)責(zé)任的披露慣例下進(jìn)行的声离,也很有可能在法律層面被阻止??。因此瘫怜,雖然通常認(rèn)為認(rèn)證產(chǎn)品是基于多種對(duì)策的术徊,但只能推測(cè)這些對(duì)策如何混合以及如何評(píng)估其安全性。
考慮到這一一般情況鲸湃,一個(gè)團(tuán)隊(duì)最近針對(duì)多種可用于COTS設(shè)備(即基于ARM Cortex-M4架構(gòu)的STM32芯片)采取的對(duì)策混合在一起赠涮,從而保護(hù)了AES實(shí)現(xiàn)免受側(cè)通道攻擊 來(lái)自法國(guó)ANSSI(國(guó)家情報(bào)系統(tǒng)情報(bào)局)的提案非常受歡迎[BKPT]。
除了努力發(fā)布開(kāi)源庫(kù)暗挑,并混合針對(duì)最低安全級(jí)別的最新對(duì)策外笋除,ANSSI的實(shí)施還附帶了初步的泄漏評(píng)估,我們希望它可以反映評(píng)估實(shí)驗(yàn)室將執(zhí)行的第一步(最低)炸裆,即泄漏檢測(cè)[SM16] / SNR計(jì)算[Man04]和基本(第一垃它,第二, 和三階)分而治之攻擊[SVO + 10]烹看。因此国拇,盡管該實(shí)現(xiàn)并非聲稱旨在通過(guò)認(rèn)證或不能用于商業(yè)應(yīng)用,但它至少是用于研究目的的有用起點(diǎn)惯殊,因?yàn)樗怯删哂袑W(xué)術(shù)和工業(yè)經(jīng)驗(yàn)的專家團(tuán)隊(duì)開(kāi)發(fā)和分析的酱吝。更具體地說(shuō),它可以用來(lái)指導(dǎo)研究土思,以更好地理解三個(gè)重要問(wèn)題务热,即(i)如何以(接近)最壞的情況評(píng)估這種混合的對(duì)策; (ii)在(例如己儒,基于ARM的)COTS設(shè)備(這是物聯(lián)網(wǎng)應(yīng)用中的典型部署目標(biāo))中份額很少的軟件實(shí)現(xiàn)可以達(dá)到哪些安全級(jí)別; (iii)對(duì)于實(shí)現(xiàn)對(duì)物理安全級(jí)別的最壞情況的理解崎岂,目標(biāo)實(shí)現(xiàn)的知識(shí)多少至關(guān)重要?
貢獻(xiàn)址愿。 基于此最新技術(shù)该镣,我們首先要解決前面提到的與受保護(hù)密碼實(shí)現(xiàn)的安全性評(píng)估有關(guān)的兩個(gè)問(wèn)題。 準(zhǔn)確地說(shuō)响谓,我們使用ANSSI軟件庫(kù)來(lái)討論此實(shí)現(xiàn)附帶的初步泄漏評(píng)估可以用作定量(接近最壞情況)安全級(jí)別的指標(biāo)损合。 為此,我們研究了評(píng)估聯(lián)合對(duì)策及其有效性的問(wèn)題娘纷。
在這方面嫁审,基于簡(jiǎn)單檢測(cè)工具的初步泄漏評(píng)估通常反映了非正式的期望,即每個(gè)對(duì)策的安全性都會(huì)對(duì)安全級(jí)別產(chǎn)生(強(qiáng)烈)成倍的影響赖晶。 由于方法和技術(shù)上的調(diào)整律适,我們減輕了這種期望辐烂。
在較高的層次上,我們利用實(shí)施知識(shí)來(lái)對(duì)策進(jìn)行剖析捂贿。 通過(guò)剖析纠修,我們指的是對(duì)受保護(hù)實(shí)現(xiàn)的每個(gè)成分進(jìn)行詳細(xì)分析,以盡可能地限制其(合并)影響厂僧。 我們注意到扣草,從復(fù)雜度的角度來(lái)看,解剖攻擊并不等同于分而治之颜屠。 分而治之的攻擊將復(fù)雜性相乘成總和辰妙。 這是針對(duì)AES的16個(gè)關(guān)鍵字節(jié)執(zhí)行16個(gè)獨(dú)立DPA(時(shí)間復(fù)雜度∝ 16·2^ 8)而不是對(duì)完整密鑰(時(shí)間復(fù)雜度2^128)執(zhí)行窮舉搜索時(shí)發(fā)生的情況。 在解剖攻擊中甫窟,不同對(duì)策的復(fù)雜性仍然成倍增加密浑,但對(duì)手的目的是使攻擊因素盡可能地接近。
在較低的級(jí)別上粗井,我們使用更高級(jí)的(多變量)信息提取工具尔破。準(zhǔn)確地說(shuō),ANSSI實(shí)現(xiàn)是將仿射masking方案[FMPR10]與經(jīng)過(guò)shuffie的執(zhí)行混合在一起背传。我們顯示呆瞻,主成分分析(PCA)可用于完全恢復(fù)仿射掩膜的乘法掩膜[APSQ06],實(shí)現(xiàn)的某些部分被弱(或不)混洗径玖,多元高階模板攻擊可以大大減少規(guī)避其余改組和加法掩碼所需的樣本數(shù)量[CRR02]痴脾,并且該密鑰枚舉可用于額外降低攻擊的數(shù)據(jù)復(fù)雜性[PSG16]。我們的工具仍然很簡(jiǎn)單(例如梳星,我們不使用代數(shù)/分析技術(shù)[RSV09赞赖,VGS14,GS15冤灾,GRO18]前域,和在[TWO13,BGNT18]中提出了預(yù)先計(jì)算表格掩碼的風(fēng)險(xiǎn))韵吨。然而匿垄,它們的綜合影響很強(qiáng):先前的泄漏評(píng)估無(wú)法檢測(cè)多達(dá)100,000次測(cè)量的數(shù)據(jù)依存關(guān)系。我們用少于2,000次的測(cè)量恢復(fù)了完整密鑰归粉。我們的評(píng)估還表明椿疗,在類似Cortex的設(shè)備上使用相同的屏蔽方案要達(dá)到較高的安全級(jí)別,將需要大量shares糠悼。
作為附帶的結(jié)果届榄,我們簡(jiǎn)要討論了使用相同Cortex-M4架構(gòu)的不同實(shí)現(xiàn)以及不同的測(cè)量設(shè)置的影響。 我們觀察到結(jié)論是相似的(即倔喂,相同的指令基本上可以以相同的方式作為目標(biāo))铝条,但測(cè)量噪聲和攻擊復(fù)雜性有一些有限的變化靖苇。
根據(jù)這些發(fā)現(xiàn),我們的第二個(gè)目標(biāo)是分析實(shí)現(xiàn)細(xì)節(jié)方面的知識(shí)對(duì)于使人們更好地了解最壞情況的安全級(jí)別很有用班缰。 由于機(jī)器學(xué)習(xí)/深度學(xué)習(xí)贤壁,我們將此問(wèn)題與最近(以及眾多)嘗試改善安全性評(píng)估的嘗試聯(lián)系在一起。 在這種情況下鲁捏,經(jīng)常有人聲稱芯砸,機(jī)器學(xué)習(xí)/深度學(xué)習(xí)有可能簡(jiǎn)化/自動(dòng)化某些(大多數(shù)?)攻擊步驟给梅。 例如,已經(jīng)證明機(jī)器學(xué)習(xí)/深度學(xué)習(xí)可以限制同步跟蹤和識(shí)別其興趣點(diǎn)的需求(請(qǐng)參閱[HGM + 11双揪,HZ12动羽,LMBM13,LPB + 15渔期,CDP17运吓,PSK + 18,ZS19疯趟, [ZBHV20]的示例)拘哨,而一些作品進(jìn)一步指出,此類工具可以完全黑盒/自動(dòng)化的方式取得成功信峻,而無(wú)需了解/理解底層實(shí)現(xiàn)[Tim19倦青,BP19]。我們的結(jié)果表明盹舞,盡管可以在一次最多實(shí)施一項(xiàng)對(duì)策的一些先前研究中證明了后者的主張产镐,但在結(jié)合了對(duì)策的情況下,這種自動(dòng)化可能不會(huì)總是以較低的復(fù)雜性獲得成功踢步。特別是癣亚,我們的實(shí)驗(yàn)表明,對(duì)策剖析可能會(huì)受益于手工專業(yè)知識(shí)述雾,并會(huì)大大提高攻擊的復(fù)雜性。例如兼丰,我們的攻擊恢復(fù)了仿射屏蔽方案的乘法掩碼玻孟,因此執(zhí)行了字段乘法以檢索敏感信息。對(duì)于現(xiàn)有的機(jī)器學(xué)習(xí)/深度學(xué)習(xí)工具而言地粪,以完全自動(dòng)化的方式學(xué)習(xí)該字段乘法似乎是一項(xiàng)具有挑戰(zhàn)性的任務(wù)(此外取募,這是浪費(fèi),因?yàn)檫@部分攻擊很難手動(dòng)執(zhí)行)蟆技。因此玩敏,盡管我們的結(jié)果并不排除此類工具最終成功的可能性斗忌,但他們質(zhì)疑這樣做的效率。具體來(lái)說(shuō)旺聚,我們認(rèn)為我們的工作至少對(duì)機(jī)器學(xué)習(xí)/深度學(xué)習(xí)提出了一個(gè)有趣的挑戰(zhàn):ANSSI實(shí)施能否以黑匣子的方式在少于2,000條跡線中被攻破(以及與我們類似的時(shí)間復(fù)雜度和性能分析工作)织阳?
1 Background
在本節(jié)中,我們首先回顧在ANSSI implementation中實(shí)施的對(duì)策砰粹。 然后唧躲,列出并描述了用于進(jìn)行攻擊的統(tǒng)計(jì)估計(jì)工具。
1.1 Affine Masking
掩碼碱璃,很簡(jiǎn)單弄痹,包括加法掩碼和乘法掩碼。乘法掩碼只有一個(gè)8bit嵌器,加法掩碼有16個(gè)字節(jié)肛真,也就是說(shuō)敏感字節(jié)對(duì)應(yīng)的加法掩碼都是不同的。乘法掩碼和加法掩碼的取值范圍要注意一下爽航。
只有SBOX操作是非線性的蚓让,需要提前計(jì)算一個(gè)查找表。
rin讥珍,rout是啥历极,介紹一下
計(jì)算一個(gè)表需要知道三個(gè)掩碼,rin衷佃,rout趟卸,rm
然后列混淆操作必須是四個(gè)密鑰相關(guān)的字節(jié)C一起操作,在對(duì)四個(gè)密鑰相關(guān)字節(jié)的前三個(gè)操作計(jì)算完成后纲酗,再進(jìn)行列混淆操作衰腌,也就是普通的矩陣乘法操作。
1.2 shuffle
每個(gè)字節(jié)密鑰對(duì)應(yīng)的輪密鑰加觅赊,Sbox右蕊,行移位這三個(gè)操作是在一起的,然后每一輪的16個(gè)字節(jié)密鑰對(duì)應(yīng)的這16組操作進(jìn)行打亂吮螺。
每四個(gè)字節(jié)的列混淆操作是在一起的饶囚,一共四組列混淆操作被打亂,每組包括四個(gè)字節(jié)密鑰的列混淆操作鸠补。
打亂的順序是由隨機(jī)種子產(chǎn)生的萝风,一共有四個(gè)隨機(jī)種子,每一輪產(chǎn)生四個(gè)序列紫岩,其中兩個(gè)為4比特规惰,
,兩個(gè)為2比特
泉蝌,
:
是密鑰的前三個(gè)操作的順序(輪密鑰加歇万,Sbox揩晴,行移位),
在文中沒(méi)有說(shuō)贪磺,由圖片看應(yīng)該是加法掩碼在每一輪的前三個(gè)操作最后被打亂硫兰。
是加法掩碼對(duì)應(yīng)的列混淆的順序,目的也是打亂掩碼寒锚。
是密鑰相關(guān)信息的列混淆的順序劫映。
AES有十輪,但是每一輪使用的都是相同的四個(gè)隨機(jī)種子刹前。本實(shí)驗(yàn)使用的軌跡只包含前兩輪泳赋。
1.3
高斯模板
公式(1)講的是模板攻擊的模板:多元高斯分布。
公式(2)講的是貝葉斯公式
這兩個(gè)公式就是講本文使用的傳統(tǒng)模板攻擊腮郊,x是秘密信息摹蘑,l是泄露軌跡,還有對(duì)每個(gè)候選密鑰計(jì)算的均值和協(xié)方差矩陣轧飞。
信噪比:
這里是怎么計(jì)算的呢?就是信號(hào)的方差除以噪聲的方差撒踪。為啥是方差相除过咬,因?yàn)槲覀兗僭O(shè)直流分量不產(chǎn)生能量消耗。我們把看作軌跡的均值當(dāng)作信號(hào)制妄,把軌跡減均值當(dāng)作噪聲掸绞。然后一步一步計(jì)算,化簡(jiǎn)耕捞,就會(huì)得到這個(gè)公式衔掸。
SNR的作用是觀測(cè)泄露大小,還有選擇興趣點(diǎn)俺抽。
然后講了一下使用PCA選擇興趣點(diǎn)敞映,為啥使用了SNR之后還要使用PCA,因?yàn)镾NR是用來(lái)選擇興趣點(diǎn)的磷斧,他選擇的是采樣的點(diǎn)振愿。而PCA是將這些興趣點(diǎn)的進(jìn)行降維。
最后講了一下用MLP來(lái)計(jì)算高斯模板
2 代碼檢查/對(duì)策剖析
在本節(jié)中弛饭,首先冕末,提出了一種通用的區(qū)分策略。 其次侣颂,基于合理的假設(shè)簡(jiǎn)化了這一通用區(qū)分策略(本文將在本節(jié)中進(jìn)行討論档桃,并將在下一部分中進(jìn)行實(shí)驗(yàn)驗(yàn)證)。 這樣可以大大改善攻擊的時(shí)間復(fù)雜度憔晒。 第三藻肄,我們剖析了攻擊向量的組合蔑舞,并描述了如何組合攻擊向量以降低攻擊的數(shù)據(jù)復(fù)雜性。 最后仅炊,出于比較目的斗幼,提出了四種不同的攻擊策略。
2.1 Generic Distinguisher
第一頁(yè):
我們攻擊的目標(biāo)是與密鑰相關(guān)的中間值抚垄,如果我們攻擊的目標(biāo)是SBOX的輸出蜕窿, 在仿射mask的情況下,秘密值x受兩個(gè)隨機(jī)掩碼rm和ra保護(hù)呆馁,因此我們需要計(jì)算的模板為:
其中指數(shù)i表示目標(biāo)字節(jié)的索引桐经,即我們攻擊的是第i個(gè)字節(jié)。 l是側(cè)信道泄露的軌跡浙滤。該方程式將所有可能的mask(它們的(獨(dú)立)概率)加權(quán)求和阴挣。 這是在沒(méi)有shuffle的情況下計(jì)算的條件概率,復(fù)雜度已經(jīng)很高了是255×256×256纺腊。
第二頁(yè):
如果在仿射mask的基礎(chǔ)上使用經(jīng)過(guò)重排的AES實(shí)現(xiàn)畔咧,則還必須通過(guò)對(duì)經(jīng)過(guò)重排產(chǎn)生的可能的排列求和來(lái)計(jì)算經(jīng)過(guò)重排的狀態(tài)的概率。 相應(yīng)條件PDF的通用表達(dá)式它可以寫成
講一下里面的符號(hào)代表什么意思揖膜。
其中o1和o2分別對(duì)應(yīng)于可以操作c i和r i a的索引誓沸。o'1和o'2也是一樣的,只不過(guò)是因?yàn)橥獠坑袃蓚€(gè)求和函數(shù)壹粟,為了區(qū)分才使用了兩個(gè)不同的標(biāo)記拜隧。 函數(shù)g(·)取決于排列和攻擊者策略。大概的意思就是我們攻擊的秘密信息C對(duì)應(yīng)真實(shí)的秘密信息字節(jié)是第i位的概率趁仙。本文接下來(lái)的實(shí)驗(yàn)攻擊的是列混淆洪添,所以每個(gè)秘密信息C對(duì)應(yīng)四個(gè)不同的排序,而加法掩碼ra也是四種雀费,所以相當(dāng)于復(fù)雜度又增加了4×4倍干奢。
2.2 Time Complexity Improvements
先前的通用表達(dá)式表示需要估計(jì)大量的模板:直接窮盡的profiling需要考慮rm,ria和c i以及在操作這些值時(shí)的索引的每種組合坐儿,從而得出計(jì)算的復(fù)雜度為降铸。這一節(jié)介紹如何利用下面這個(gè)等式中的獨(dú)立性假設(shè)來(lái)降低攻擊的復(fù)雜度囊骤。 為此迫淹,本文首先假設(shè)泄漏l由具有獨(dú)立噪聲的三個(gè)泄漏組成(這三個(gè)噪聲包括C览效,加法掩碼ra,還有乘法掩碼rm)逛漫。 然后黑低,先前的等式變?yōu)?br>
這種簡(jiǎn)化使得攻擊者可以獨(dú)立地對(duì)每個(gè)shares(包括C,加法掩碼和乘法掩碼)單獨(dú)地進(jìn)行攻擊,而不是和之前一樣把shares聯(lián)合起來(lái)攻擊攻擊克握。 這導(dǎo)致方程
和
下一段講的就是這種獨(dú)立假設(shè)有很多好處蕾管,這種獨(dú)立假設(shè)有兩個(gè)好處:
一個(gè)是降低復(fù)雜度,降低為
另一個(gè)是每個(gè)軌跡可以為不同的shares的建立模板菩暗,這樣變相增加了可用的軌跡數(shù)掰曾。
下兩段講的是這個(gè)假設(shè)合理的原因:
1,在軟件實(shí)現(xiàn)中停团,不同的shares在不同的時(shí)間段內(nèi)進(jìn)行操作旷坦。所以不同shares的噪聲變量沒(méi)有足夠的相關(guān)性。
2.我們的以下實(shí)驗(yàn)結(jié)果將表明佑稠,使用這樣的獨(dú)立性假設(shè)可導(dǎo)致出色的攻擊結(jié)果秒梅。
2.3 對(duì)策剖析
基于先前的抽象,我們現(xiàn)在可以輕松地描述對(duì)策剖析的目標(biāo)舌胶。 也就是說(shuō)捆蜀,為了減少攻擊的數(shù)據(jù)復(fù)雜性,這種剖析的目的是嘗試使等式(8)中每個(gè)總和的權(quán)重偏差幔嫂,理想情況下是存在單個(gè)可能事件的點(diǎn)(即掩碼) 辆它,排列)考慮。 為此履恩,針對(duì)每個(gè)單個(gè)跡線執(zhí)行子攻擊娩井,以便(至少部分地)恢復(fù)短暫的秘密,例如乘法掩碼rm似袁。 例如,可以使用貝葉斯定律來(lái)改寫前面的等式
》》》》》》》》》》》》》
2.4 示例性攻擊策略
我們已經(jīng)假設(shè)乘法掩碼已經(jīng)被我們恢復(fù)出來(lái)了咐刨。
從剛剛講的那個(gè)式子中昙衅,我們知道,攻擊者至少針對(duì)一個(gè)涉及C的操作和一個(gè)涉及加法掩碼的操作進(jìn)行攻擊定鸟。 我們選擇不同的操作進(jìn)行攻擊而涉,那么攻擊的結(jié)果可能會(huì)改變,從而導(dǎo)致不同的攻擊復(fù)雜性联予。
因此這一節(jié)介紹了四個(gè)不同的攻擊者啼县,他們攻擊的操作略有不同:
A1攻擊C異或rout,這一操作沒(méi)有shuffle沸久。如果這一操作被shuffle季眷,這一攻擊方法是不能使用的。這個(gè)操作確實(shí)是沒(méi)shuffle的卷胯,從圖一可以看出來(lái)子刮。
A2攻擊C的操作是列混淆,其他與A相同
A3與A2相同,但是她單獨(dú)攻擊出C在列混淆時(shí)的執(zhí)行順序挺峡。
A4就是只計(jì)算那個(gè)sum等式中的一項(xiàng)葵孤,而把其他的項(xiàng)忽略,這樣會(huì)減少建模時(shí)的復(fù)雜度橱赠,但是會(huì)增加攻擊密鑰所需的軌跡數(shù)尤仍。這是一個(gè)tradeoff。
3 Experimental Results
在本節(jié)中狭姨,我們說(shuō)明如何對(duì)ANSSI庫(kù)進(jìn)行實(shí)際攻擊宰啦。 首先,描述測(cè)量設(shè)置送挑。 然后绑莺,說(shuō)明分析階段,在此階段估計(jì)每個(gè)秘密值的PDF惕耕。 最后纺裁,報(bào)告并評(píng)論所有對(duì)手的表現(xiàn)。
3.1 setup
講一下50萬(wàn)條用來(lái)建模司澎,20萬(wàn)條用來(lái)攻擊欺缘。
軌跡只包含AES前六輪
3.2 模板的估計(jì)
我們的模板估算使用前面講到的方法,并分兩步進(jìn)行:
1.通過(guò)使用SNR分離樣本來(lái)降低維度挤安,這些樣本的均值包含有關(guān)敏感變量的信息谚殊。 然后,根據(jù)顯示泄漏跡象的尺寸數(shù)量蛤铜,可選地應(yīng)用PCA嫩絮。
2.高斯模板(gT)建立在縮小的尺寸上。通澄Х剩考慮其中的十個(gè)相關(guān)性最高的點(diǎn)剿干,因?yàn)樗梢愿采w大多數(shù)泄漏樣品。
接下來(lái)穆刻,我們重點(diǎn)介紹如何計(jì)算所有秘密變量的PDF置尔,從乘法掩碼開(kāi)始,然后是排列的隨機(jī)種子和加法掩碼氢伟。
3.2.1 乘法掩碼
這一小節(jié)主要講的是如何恢復(fù)乘法掩碼榜轿。攻擊者基于SBOX預(yù)計(jì)算的測(cè)信道泄露恢復(fù)乘法掩碼。這一步是獨(dú)立于其他攻擊的朵锣,因?yàn)樗慌c其他的秘密信息相關(guān)谬盐,可以說(shuō)是預(yù)計(jì)算。相應(yīng)的SNR如圖3所示猪勇,可以看到设褐,信噪比峰值超過(guò)200。 如此高的值是因?yàn)椋好總€(gè)乘法掩碼要乘上四字節(jié)或者16字節(jié)的秘密信息,這些相乘之后的值存儲(chǔ)到內(nèi)存中這一操作助析,相關(guān)性非常大犀被。
由于sbox預(yù)計(jì)算的樣本數(shù)量很大,因此在SNR的基礎(chǔ)上還額外使用了PCA作為降維工具外冀。 僅使用10個(gè)最重要的維度來(lái)構(gòu)建gT寡键。 再20萬(wàn)條攻擊軌跡的情況下,生成的模型可以通過(guò)一條跡線100%地恢復(fù)乘法掩碼雪隧。
本文假設(shè)攻擊者可以通過(guò)此方法進(jìn)而使用一條軌跡恢復(fù)乘法掩碼西轩。
3.2.2 Permutations
本節(jié)講的是如何恢復(fù)亂序執(zhí)行的順序。包括C的列混淆順序和加法掩碼的列混淆順序脑沿。兩種執(zhí)行順序的SNR如圖4所示藕畔。第一個(gè)峰值顯示了讀入隨機(jī)種子。 第二個(gè)對(duì)應(yīng)于排列的計(jì)算庄拇。 然后注服,重復(fù)六次的模式就是實(shí)際的六次MixColumns。為什么是六次不是10次呢措近,是因?yàn)楸疚牟杉能壽E只包含前六輪溶弟。 顯然,這兩個(gè)shares是從R?a開(kāi)始瞭郑,然后是C?依次處理的辜御。 泄露最大的點(diǎn)就是讀寫操作引起的。
攻擊的是列混淆過(guò)程屈张,這一階段的采樣點(diǎn)很多擒权,因此本文首先基于SNR選擇了3,000個(gè)顯示泄漏證據(jù)的興趣點(diǎn)。 使用PCA將這些尺寸減少到3個(gè)興趣點(diǎn).
圖5顯示了四個(gè)可能的seed值的投影樣本阁谆。為啥是四個(gè)seed呢菜拓,因?yàn)閟eed是兩位,只能有四個(gè)可能的值:0笛厦,1,2俺夕,3. 通過(guò)查看前兩個(gè)維度(圖5a)裳凸,大多數(shù)類已經(jīng)很好地分離了。 只有粉紅色和綠色的群集重疊劝贸。 通過(guò)考慮第三維姨谷,這兩個(gè)也很好地分開(kāi)了。 攻擊者可以根據(jù)這些簇?cái)M合四個(gè)gT映九,并以98%的準(zhǔn)確度檢索正確的種子梦湘。這里的三個(gè)維度l0,l1,l2就是前面講到的使用PCA計(jì)算出的相關(guān)性最大的三個(gè)采樣點(diǎn)捌议。圖五的目的就是顯示三個(gè)點(diǎn)足夠區(qū)分隨機(jī)種子哼拔。
最后一段解釋了為啥攻擊seed的效果這么好:
直覺(jué)上,這種準(zhǔn)確性可以通過(guò)以下事實(shí)來(lái)解釋:在每個(gè)回合中使用相同的排列瓣颅,從而增加了種子泄漏尺寸的數(shù)量倦逐。 雖然這些不同時(shí)間的泄露可能具有潛在的不相關(guān)噪聲,但是由于PCA隱式執(zhí)行了求平均值這一操作宫补,因此降低了噪聲檬姥。因?yàn)镻CA可以簡(jiǎn)單地理解為樣本的加權(quán)和。
此外粉怕,種子(及其雙向?qū)С龅臄?shù)據(jù))涉及不同的操作健民,例如載入,置換計(jì)算或內(nèi)存訪問(wèn)贫贝,每個(gè)操作以不同的方式泄漏秉犹,因此也提供了有關(guān)種子的其他獨(dú)立信息。
3.2.3 Additive Shares
本小節(jié)介紹在給定執(zhí)行的情況下如何從加法掩碼shares中提取信息平酿。在本節(jié)不考慮shuffle
如果是攻擊者A1凤优,攻擊異或過(guò)程:如下圖,共有六個(gè)SNR高峰蜈彼。第一個(gè)尖峰是整個(gè)列(四比特)從內(nèi)存中加載筑辨,然后將其與rout按位異或(產(chǎn)生四個(gè)高峰),最后一個(gè)峰是最后將整列存儲(chǔ)在內(nèi)存中幸逆。這一攻擊棍辕,他的興趣點(diǎn)很少,因此还绘,只需要使用SNR選出興趣點(diǎn)即可楚昭。
如果是攻擊者A2,A3,A4,他們攻擊列混淆階段拍顷,這一階段執(zhí)行矩陣乘法抚太,如下圖:
攻擊加法掩碼Ra,它對(duì)應(yīng)的SNR圖像與上面兩個(gè)C的圖象是相似的昔案。
3.3 Adversary Comparison
這里將四個(gè)攻擊方法作了比較尿贫。本文用猜測(cè)熵和正確密鑰的rank來(lái)衡量攻擊效果。先講一下猜測(cè)熵踏揣。
定義如下圖:k是正確密鑰庆亡,K是候選密鑰,s是秘密信息捞稿,g是攻擊結(jié)果(應(yīng)該是對(duì)候選s的一個(gè)排序)又谋,E表示期望拼缝。猜測(cè)熵guessing entropy就是正確密鑰rank的期望,越大說(shuō)明攻擊效果不好彰亥,越接近于1越說(shuō)明攻擊效果好 咧七。
剩下的就是四個(gè)攻擊方法的比較了。
只看一張圖了解一下就行了剩愧,解釋一下兩張圖猪叙。
3.4 討論
A3比A1好:
A3與A1只是在攻擊C的時(shí)候攻擊的目標(biāo)不同,A1攻擊C與rout異或操作仁卷,A3攻擊C的列混淆操作穴翩。A3利用的信息來(lái)自MixColumns中的乘法操作,從而導(dǎo)致了更具可提取性和獨(dú)立性的信號(hào)锦积。
A3比A2好:
本來(lái)需要計(jì)算的模板數(shù)量為:芒帕,分別對(duì)應(yīng)每個(gè)字節(jié)的C,加法掩碼丰介,乘法掩碼背蟆,還有C和加法掩碼列混淆的執(zhí)行順序。相比于A2哮幢,A3攻擊出了列混淆的排序带膀,減少了
*
= 16倍的復(fù)雜度。這在成功恢復(fù)密鑰所需的軌跡數(shù)上也可以反映出來(lái)橙垢。也可以說(shuō)A3消除了shuffle所增加的攻擊復(fù)雜度垛叨。這個(gè)16倍從需要的軌跡數(shù)也可以看出來(lái)。
A3和A4是一個(gè)攻擊時(shí)需要軌跡的數(shù)量和建模時(shí)計(jì)算復(fù)雜度之間的平衡:
最終柜某,由于我們?cè)趯?shí)驗(yàn)中以98%的準(zhǔn)確率恢復(fù)了置換之后的執(zhí)行順序嗽元,因此在總和中省略了一些項(xiàng)(即,從A3移到A4)只會(huì)稍微增加數(shù)據(jù)的復(fù)雜性喂击。 這里的省略一些項(xiàng)的意思就是只計(jì)算累加中的一項(xiàng)剂癌,以此來(lái)當(dāng)作模板。因此翰绊,它最多可將攻擊時(shí)間的復(fù)雜度提高8倍佩谷。(如果有關(guān)排列的信息提取不太準(zhǔn)確,則此更改將更多地體現(xiàn)在改進(jìn)的時(shí)間或數(shù)據(jù)復(fù)雜度之間监嗜。
本節(jié)中描述的所有攻擊都利用了在單個(gè)跟蹤中恢復(fù)的乘法掩碼rm的(全部)知識(shí)琳要。 有了這些知識(shí),仿射遮罩就變成了具有兩個(gè)份額的布爾遮罩
3.5 Comparison with the ANSSI Measurements
這一段講了雖然本文的實(shí)現(xiàn)與ANSSI官方的實(shí)現(xiàn)不同秤茅,但是使用ANSSI提供好軌跡同樣可以成功恢復(fù)密鑰。
4 Machine Learning based Evaluations
如引言中所述童叠,機(jī)器學(xué)習(xí)/深度學(xué)習(xí)算法是分析側(cè)通道阻力的越來(lái)越流行的工具框喳。本文的作者質(zhì)疑深度學(xué)習(xí)工具是否可以改善上一節(jié)中的攻擊课幕。 由于機(jī)器學(xué)習(xí)/深度學(xué)習(xí)算法的優(yōu)勢(shì)之一是它們具有自動(dòng)化的潛力,因此本節(jié)將考慮兩個(gè)實(shí)驗(yàn)設(shè)置五垮。 第一個(gè)乍惊,接近黑匣子的設(shè)置,其中神經(jīng)網(wǎng)絡(luò)將獲得與上一節(jié)中的攻擊相同的POI放仗。 第二個(gè)润绎,進(jìn)行解剖攻擊,其中使用神經(jīng)網(wǎng)絡(luò)提取有關(guān)特定目標(biāo)的信息诞挨。
4.1 Methodology
這一節(jié)講了MLP參數(shù)的選擇
4.2 Close to Black-box Evaluations
使用傳統(tǒng)的方法莉撇,我們嘗試對(duì)ANSSI實(shí)施進(jìn)行接近黑盒的分析。 但是惶傻,盡管向MLP提供了與先前攻擊相同的POI棍郎,但沒(méi)有一次攻擊成功。 為了獲得有關(guān)失敗的原因银室,本節(jié)進(jìn)行了一些模擬實(shí)驗(yàn)涂佃。 也就是說(shuō),本節(jié)在分別在兩種假設(shè)下進(jìn)行攻擊蜈敢,并將攻擊結(jié)果與上一節(jié)的gT攻擊者進(jìn)行了比較:
1.第一種情況對(duì)應(yīng)于布爾掩碼辜荠,秘密值x與單個(gè)隨機(jī)字節(jié)r進(jìn)行異或。 為了進(jìn)行攻擊抓狭,gT adversary知道掩碼相關(guān)知識(shí)伯病。 然后,他可以分別估計(jì)x對(duì)應(yīng)的泄露l1和r對(duì)應(yīng)的泄露l2的分布辐宾。MLP adversary的攻擊是在不了解掩碼知識(shí)的情況下執(zhí)行的狱从,因此稱為黑匣子攻擊。 它需要恢復(fù)泄露l相對(duì)應(yīng)的標(biāo)簽x叠纹。
2.有加法掩碼季研,有乘法掩碼,假設(shè)乘法掩碼已知誉察。盡管是三元變量与涡,但這種情況下的gT adversary與針對(duì)先前布爾屏蔽方案的gT adversary基本相同:她只需要在攻擊階段計(jì)算x乘上rm即可。 確實(shí)持偏,如果rm已知驼卖,則唯一剩下的保護(hù)是具有兩個(gè)shares的布爾掩碼。 相比之下鸿秆,MLP adversary并沒(méi)有改變酌畜,這引發(fā)了一個(gè)問(wèn)題,MLP是否能夠自動(dòng)學(xué)習(xí)有限域乘法卿叽。
為了幫助解釋結(jié)果桥胞,我們研究了在有限域中對(duì)大小從3到8位不等的編碼的攻擊恳守。使用Hamming權(quán)重泄漏模型。
觀察出兩個(gè)結(jié)論:
1.從圖中觀察的第一個(gè)觀察結(jié)果是贩虾,對(duì)于所有實(shí)驗(yàn)催烘,針對(duì)布爾掩碼的gT攻擊和針對(duì)具有已知乘法掩碼的仿射掩碼的gT攻擊均表現(xiàn)出相似的性能。 因此缎罢,正如預(yù)期的那樣伊群,布爾型屏蔽方案和具有已知乘法屏蔽的仿射屏蔽方案對(duì)于此類對(duì)手(誰(shuí)能通過(guò)乘法掩碼相關(guān)知識(shí)恢復(fù)乘法掩碼)是等效的。
2.第二個(gè)觀察結(jié)果是策精, 在布爾掩碼的情況下舰始,MLP對(duì)手的性能與gT對(duì)手一樣好,而無(wú)需了解配置過(guò)程中的相關(guān)知識(shí)蛮寂。但是在乘法掩碼的情況下蔽午,MLP表現(xiàn)得很差,而且隨著有限域的增大酬蹋,MLP相比于gT的表現(xiàn)越來(lái)越差及老。本文作者認(rèn)為MLP不適合乘法掩碼。
4.3 Dissection with MLP
把每個(gè)share單獨(dú)使用MLP攻擊范抓。這與上節(jié)的不同點(diǎn)可能是我們mlp的label不同骄恶,上節(jié)的label是x,這節(jié)的label是C匕垫。這種情況下僧鲁,2000條軌跡就能恢復(fù)密鑰。
總結(jié)
1.ANSSI這種公開(kāi)算法細(xì)節(jié)的做法是不安全的象泵。
2.盡管諸如MLP這種自動(dòng)分析工具作為攻擊手段是有效的寞秃,但是作為評(píng)估工具,他是遠(yuǎn)遠(yuǎn)不夠的偶惠。因?yàn)橐恍┣闆r下春寿,手動(dòng)分析是不可避免地。
3.本文評(píng)估的AES實(shí)現(xiàn)忽孽,面對(duì)我們的攻擊這么脆弱的原因是它的噪聲很有限绑改,這樣就沒(méi)辦法防護(hù)剖析攻擊。