自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我的設(shè)備泄漏信息了嗎?—淺談密碼芯片泄漏檢測(cè)技術(shù)

安全 應(yīng)用安全
密碼算法的軟硬件實(shí)現(xiàn)對(duì)其安全性提出了新的挑戰(zhàn),算法在理論上的安全性并不能代表其在具體實(shí)現(xiàn)和應(yīng)用上的真正安全,算法的設(shè)計(jì)除了要抵抗常規(guī)的數(shù)學(xué)分析,還需要能夠抵抗算法運(yùn)行時(shí)針對(duì)泄漏出的電磁、能耗、時(shí)間等信息的側(cè)信道分析。

密碼算法的軟硬件實(shí)現(xiàn)對(duì)其安全性提出了新的挑戰(zhàn),算法在理論上的安全性并不能代表其在具體實(shí)現(xiàn)和應(yīng)用上的真正安全,算法的設(shè)計(jì)除了要抵抗常規(guī)的數(shù)學(xué)分析,還需要能夠抵抗算法運(yùn)行時(shí)針對(duì)泄漏出的電磁、能耗、時(shí)間等信息的側(cè)信道分析。對(duì)密碼設(shè)備抗側(cè)信道敵手攻擊能力的評(píng)估,成為一個(gè)越來(lái)越重要的問(wèn)題,泄漏檢測(cè)技術(shù),也因此成為當(dāng)前一個(gè)新的研究熱點(diǎn)。

泄漏檢測(cè)及其關(guān)鍵技術(shù)

區(qū)分器初探

側(cè)信道分析和泄漏評(píng)估方法都是區(qū)分器(Distinguisher)的應(yīng)用,大家可能對(duì)這個(gè)概念很陌生。其實(shí),這里的“區(qū)分器”就是我們常說(shuō)的分類(lèi)器(Classifier)。舉一個(gè)簡(jiǎn)單的例子,讓一個(gè)人蒙著眼睛對(duì)一堆不同面值的硬幣(含1元、5毛和1毛)進(jìn)行分類(lèi),他能夠根據(jù)硬幣的不同重量,準(zhǔn)確地將硬幣分成三堆。也就是說(shuō),硬幣的重量泄漏了硬幣的面值信息,可以利用(硬幣,重量)構(gòu)建一個(gè)區(qū)分器,將硬幣成功分類(lèi)。如果仍然讓這個(gè)蒙著眼睛的人去分一堆黑子和白子重量相同的五子棋棋子。那么,他分類(lèi)得到的兩堆子中,黑子和白子仍然約占一半。即(棋子,重量)不能作為一個(gè)分類(lèi)器。但是,摘下眼罩,他能夠通過(guò)不同的顏色對(duì)棋子進(jìn)行分類(lèi)。也就是說(shuō),(棋子,顏色)可以構(gòu)建一個(gè)區(qū)分器。

圖1 一堆不同面值的硬幣和一堆五子棋棋子

泄漏檢測(cè)原理

為了提高設(shè)備的效率,運(yùn)算中間值(Intermediate Value)通常會(huì)暫存于寄存器(Register)中。寄存器存儲(chǔ)數(shù)值的變化將引發(fā)功耗(Power Consumption)的變化。如,一個(gè)8位的寄存器,就像一個(gè)房間里的八個(gè)燈。由4盞燈切換到另外4盞,總線上的電流值基本不變。但若由4盞切換到8盞,那么我們能夠顯著地檢測(cè)到電流變化。因?yàn)殡娏鞯拇笮∨c開(kāi)燈的數(shù)量有明顯的線性相關(guān)關(guān)系,根據(jù)電流的變化情況,我們就可以判斷房間里面開(kāi)了多少盞燈。

圖2 亮不同數(shù)量的燈時(shí),總線上的電流區(qū)別

跟燈與電流變化例子的道理類(lèi)似,泄漏檢測(cè)(Leakage Detection)算法如相關(guān)性檢驗(yàn)(ρ-test),t檢驗(yàn),互信息檢驗(yàn)等,利用不同的中間值與其產(chǎn)生不同的功耗泄漏的密切關(guān)系來(lái)進(jìn)行檢驗(yàn)。假設(shè)泄漏檢測(cè)者采集到了加密過(guò)程中的功耗泄漏,現(xiàn)在他要確定泄漏是否與密鑰運(yùn)算的中間值相關(guān)。以相關(guān)性泄漏檢驗(yàn)為例,只需根據(jù)正確的密鑰對(duì)每一個(gè)樣本點(diǎn)進(jìn)行劃分。若正確的密鑰下,信號(hào)呈現(xiàn)較好的分類(lèi),使得每一類(lèi)的功耗值與中間值的功耗模型(如漢明重量模型)呈較高的相關(guān)性,即可認(rèn)為存在泄漏。

以AES-128在AT89S52微控制器系統(tǒng)上軟件實(shí)現(xiàn)的相關(guān)性泄漏檢驗(yàn)為例,當(dāng)采集了1300個(gè)明文加密的泄露信息時(shí),第一個(gè)密鑰字節(jié)(值為213)對(duì)應(yīng)的第一個(gè)S盒輸出的功耗,每條信號(hào)包含5000個(gè)樣本點(diǎn)(Samples)。正確密鑰下,第2141個(gè)樣本點(diǎn)的功耗與中間值具有較高的相關(guān)性。因而得到檢測(cè)結(jié)果:該點(diǎn)泄漏了第一個(gè)S盒輸出的與密鑰相關(guān)的中間值(如下圖左圖所示)。但第700個(gè)樣本點(diǎn)的相關(guān)性泄漏檢驗(yàn)結(jié)果如下圖右圖所示,可以認(rèn)為該點(diǎn)不存在密鑰相關(guān)泄漏。

圖3 樣本點(diǎn)2141(左)、700(右)的相關(guān)性泄漏檢測(cè)結(jié)果

當(dāng)然,上面兩圖僅僅反映了兩個(gè)樣本點(diǎn)是否存在泄漏。對(duì)于泄漏檢測(cè)而言,評(píng)估者需要對(duì)所有的樣本點(diǎn)進(jìn)行檢驗(yàn),才能得到最終結(jié)論。下圖所示,對(duì)S盒輸出中間值的相關(guān)性泄漏檢測(cè)表明,在AT89S52上實(shí)現(xiàn)的AES-128加密算法的第一個(gè)S盒多次泄漏了密鑰相關(guān)信息??梢酝ㄟ^(guò)修改算法,消除信號(hào)與敏感信息的相關(guān)性,從而消除泄漏,保證算法的安全實(shí)現(xiàn)。

圖4 所有5000個(gè)樣本點(diǎn)的相關(guān)性泄漏檢測(cè)結(jié)果

泄漏檢測(cè)平臺(tái)

常用側(cè)信道分析平臺(tái),如Riscure公司的Inspector分析測(cè)試平臺(tái),也可以用作泄漏檢測(cè)。該平臺(tái)主要包括泄漏采集(示波器)和泄漏分析設(shè)備(臺(tái)式機(jī))等。泄漏檢測(cè)過(guò)程一般為,攻擊者利用示波器等信號(hào)采集設(shè)備采集泄漏信息并進(jìn)行預(yù)處理,利用泄漏檢測(cè)算法進(jìn)行檢驗(yàn),評(píng)估設(shè)備泄漏情況和安全性。

圖5 Riscure公司的Inspector分析測(cè)試平臺(tái)

設(shè)備的安全性度量

就目前而言,并沒(méi)有哪一種檢測(cè)方法能夠以100%的概率得到設(shè)備是否存在泄漏的結(jié)論。故而,檢測(cè)者需要根據(jù)密碼算法的實(shí)現(xiàn),多嘗試幾種泄漏檢測(cè)方法,提高檢測(cè)結(jié)果的可信度(Confidence)。

評(píng)估者會(huì)想,需要采集多少條信號(hào)來(lái)檢測(cè)泄漏呢?現(xiàn)在用條信號(hào)都沒(méi)有檢測(cè)到泄漏,那么是否沒(méi)有泄漏呢?不盡然,也許當(dāng)我們使用條信號(hào)進(jìn)行檢測(cè)時(shí),就檢測(cè)到泄漏了。因此,評(píng)估者通常將安全性劃分成若干等級(jí)。如,條信號(hào)沒(méi)有檢測(cè)到泄漏,將安全等級(jí)劃分6級(jí);條信號(hào)沒(méi)有檢測(cè)到泄漏,將安全等級(jí)劃分5級(jí);以此類(lèi)推。

研究現(xiàn)狀和未來(lái)發(fā)展趨勢(shì)

隨著側(cè)信道分析的發(fā)展,攻擊者能夠更加精確地刻畫(huà)設(shè)備的泄漏信息、提出更加精準(zhǔn)的功耗模型、提出更加高效的區(qū)分器,使得其能夠在更少的能量跡、更小的代價(jià)下成功恢復(fù)密鑰。而最好的防御側(cè)信道攻擊的方法,就是設(shè)備不存在敏感信息相關(guān)的泄漏。泄漏檢測(cè)的目的,就是檢測(cè)密碼芯片在密碼運(yùn)算過(guò)程中,是否泄漏與密鑰相關(guān)的關(guān)鍵信息,以便于更好地防止泄漏。

泄漏檢測(cè)與評(píng)估框架完善

相對(duì)于側(cè)信道分析和防御的研究,側(cè)信道泄漏檢測(cè)的研究比較滯后。最早可追溯到2009年,Standaert等人側(cè)信道評(píng)估(Side Channel Assessment)框架的首次提出。2011年,NIST組織招開(kāi)研討會(huì),希望能夠建立被公認(rèn)的方法來(lái)評(píng)估設(shè)備的安全性,并首次通過(guò)實(shí)驗(yàn)來(lái)檢測(cè)泄漏。這些方法通過(guò)觀測(cè)對(duì)設(shè)備執(zhí)行一系列攻擊實(shí)驗(yàn)時(shí)的是否成功,以及在成功的情況下所消耗的代價(jià)(如時(shí)間復(fù)雜度、空間復(fù)雜度和采樣復(fù)雜度等)來(lái)評(píng)估設(shè)備的安全性。相關(guān)的工作為側(cè)信道泄漏檢測(cè)與評(píng)估提供了參考。但是,側(cè)信道泄漏檢測(cè)與評(píng)估體系十分不完善,大量的工作有待研究。

泄漏檢測(cè)算法的優(yōu)化

2013年,Luke等人提出了新的泄漏評(píng)估方法,他們?cè)谝幌盗袑?shí)際相關(guān)的側(cè)信道分析場(chǎng)景中,比較了t檢驗(yàn)、連續(xù)互信息和離散互信息這三種檢驗(yàn)的效果,并考慮樣本容量、泄漏函數(shù)、噪聲和其他假設(shè)檢驗(yàn)標(biāo)準(zhǔn)對(duì)檢測(cè)性能的影響。但是,他們的方案具有較高的復(fù)雜度。在單核CPU上,需要近1一個(gè)月的時(shí)間。在使用兩個(gè)AMD Radeon 7970型號(hào)的GPU,吞吐量達(dá)到每秒3000億次浮點(diǎn)運(yùn)算的情況下,仍需要約14個(gè)小時(shí)來(lái)完成校驗(yàn)??梢?jiàn),使用該方法來(lái)評(píng)估設(shè)備的安全性,仍然十分的困難。類(lèi)似的研究是近幾年的主流,更多的檢測(cè)算法和優(yōu)化算法被陸續(xù)提出。

高階掩碼泄漏檢測(cè)

Durvaux等人利用基于相關(guān)性的漏檢實(shí)驗(yàn)來(lái)檢測(cè)不同信噪比和漢明重量下的信息泄漏情況,并使用該方法改進(jìn)了其在COSASE 2015 上提出的高階掩碼(Higher-Order Masking)算法特征點(diǎn)的快速檢測(cè)工具,為泄漏檢測(cè)開(kāi)辟了一個(gè)新的研究方向。

高階掩碼將中間值分成多片,至少要尋找到一組分片的樣本點(diǎn)才能恢復(fù)該中間值。串行實(shí)現(xiàn)的高階掩碼的泄漏檢測(cè),其困難性在于隨著掩碼階數(shù)的增加,分片的位置越難找。比如10個(gè)點(diǎn)里有5個(gè)點(diǎn)分別對(duì)應(yīng)5個(gè)分片的泄漏,窮舉很快就可以找到這5個(gè)點(diǎn)。但是100萬(wàn)個(gè)點(diǎn)里面尋找5個(gè)點(diǎn)將變得十分困難。此外,隨著分片的增加,組合分片得到的信號(hào)的噪聲迅速增大,這使得即使設(shè)備存在泄漏仍然難以被檢測(cè)出來(lái)。而且,檢測(cè)需要大量的信號(hào),也極大增加了檢測(cè)難度。

掩碼方案泄漏預(yù)檢驗(yàn)

Oscar于FSE 2016上提出了一種帶掩碼方案的密碼算法在設(shè)備實(shí)現(xiàn)上之前,驗(yàn)證其是否存在泄漏的方法。該方案的好處在于,省去泄漏采樣和特征點(diǎn)檢測(cè)環(huán)節(jié)。此外,直接利用中間值的組合進(jìn)行泄漏檢測(cè),避免了噪聲對(duì)檢測(cè)的影響。這是目前較好的泄漏檢測(cè)方法。但是,密碼實(shí)現(xiàn)是否存在泄漏,還與設(shè)備密切相關(guān),所以該方法還有待進(jìn)一步改進(jìn)。

總結(jié)

泄漏檢測(cè)和評(píng)估對(duì)密碼芯片安全有著至關(guān)重要的作用,是目前側(cè)信道分析領(lǐng)域的研究熱點(diǎn)之一,但是其理論體系目前尚不完善,大量研究工作有待進(jìn)行!

【本文為51CTO專(zhuān)欄作者“中國(guó)保密協(xié)會(huì)科學(xué)技術(shù)分會(huì)”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來(lái)源: 51CTO專(zhuān)欄
相關(guān)推薦

2024-04-19 08:00:00

2024-07-03 11:28:15

2015-04-17 10:35:51

c++c++程序內(nèi)存泄漏檢測(cè)代碼

2011-12-22 11:22:31

2011-08-15 10:16:55

內(nèi)存泄露

2021-03-26 05:59:10

內(nèi)存檢測(cè)工具

2013-08-02 09:52:14

AndroidApp內(nèi)存泄漏

2011-11-04 12:00:38

2020-06-11 08:26:05

信息泄漏密碼網(wǎng)絡(luò)安全

2019-06-03 09:11:59

2016-10-07 13:37:33

2009-06-16 11:20:22

內(nèi)存泄漏

2018-10-31 12:41:11

2011-06-16 09:28:02

C++內(nèi)存泄漏

2011-10-14 10:12:32

信息泄露

2010-09-25 11:07:45

Java內(nèi)存泄漏

2015-08-13 09:27:41

大數(shù)據(jù)天璣科技信息安全

2015-07-10 09:15:47

LeakCanary內(nèi)存泄漏

2023-10-31 16:40:38

LeakCanary內(nèi)存泄漏

2018-12-07 10:52:08

內(nèi)存泄漏方法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)