亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        針對SMS4密碼算法的Cache計時攻擊

        2010-08-14 09:28:42趙新杰王韜鄭媛媛
        通信學(xué)報 2010年6期
        關(guān)鍵詞:樣本量計時字節(jié)

        趙新杰,王韜,鄭媛媛

        (軍械工程學(xué)院 計算機工程系,河北 石家莊 050003)

        1 引言

        密碼算法是密碼學(xué)的重要內(nèi)容,是實現(xiàn)信息保密的核心體制,其安全性分析一直是密碼研究中非常活躍的課題。密碼算法的安全性包括2大方面內(nèi)容:一方面是數(shù)學(xué)上的安全性,主要是從密碼算法的設(shè)計角度來考慮安全性能,將其看作是一個抽象的數(shù)學(xué)變換,從傳統(tǒng)的代數(shù)、數(shù)論、信息論、計算復(fù)雜性、邏輯和統(tǒng)計結(jié)構(gòu)上分析密碼安全性;另一方面是與算法實現(xiàn)相關(guān)的安全性,主要是利用算法在物理設(shè)備和軟件平臺上實現(xiàn)可能泄露的各種中間狀態(tài)信息(如時間、功耗、電磁輻射、錯誤信息等)來進行密鑰分析。這種利用中間狀態(tài)信息對密碼算法實現(xiàn)進行分析的過程稱為旁路攻擊,主要的攻擊類型有計時攻擊[1]、功耗攻擊[2]、電磁分析[3]和故障攻擊[4]等。當(dāng)前主流密碼算法在數(shù)學(xué)上都具有較高的安全性,經(jīng)受了大量數(shù)學(xué)分析的考驗,幾乎無法破解,而旁路攻擊具有信息采集方法多、分析方法簡單、密鑰恢復(fù)效率高等優(yōu)點,在密碼分析中屢屢出奇制勝,為密碼和信息安全帶來了新的挑戰(zhàn)和思考。

        高速緩沖存儲器Cache的時間信息,可能作為密碼破解的旁路思想,最早是由 Kocher等人[1]在1996年提出來,其基本原理是:相同的數(shù)據(jù)或指令在訪問存儲器時,由于涉及到的目標(biāo)數(shù)據(jù)當(dāng)前是否處于Cache中同Cache的歷史狀態(tài)有關(guān),因此此時是否發(fā)生Cache命中是不確定的,這將導(dǎo)致數(shù)據(jù)訪問操作的不確定。這種不確定性行為可以通過時間旁路方式泄露出來。此后,人們從攻擊部件單元、采集時間點、采集方式、攻擊環(huán)境等角度對 Cache計時攻擊進行了分類,從性能、效率、攻擊難易程度等方面進行研究,并給出了 RSA算法[5,6]、DES算法[7]、AES算法[8~12]等多種密碼體制的 Cache計時攻擊方法。

        SMS4算法[13]作為國內(nèi)官方公布的第一個商用分組密碼算法,中國無線局域網(wǎng)安全標(biāo)準(zhǔn)WAPI的重要組成部分,其安全性研究具有重要的意義,自2006年提出以來密碼界對其安全性展開了一系列的研究。在傳統(tǒng)數(shù)學(xué)分析方面,文獻[14,15]根據(jù)SMS4的輪結(jié)構(gòu)特點,構(gòu)建出12、14輪不可能差分區(qū)分器,并分別對14、17 輪SMS4 進行了不可能差分攻擊,但攻擊樣本量和計算復(fù)雜度很高。在旁路攻擊方面,主要從差分故障分析角度開展,文獻[16]提出,SMS4 算法的安全性對差分故障攻擊是脆弱的,在選擇明文攻擊下,通過在加密過程中指定存儲單元中導(dǎo)入隨機單字節(jié)故障,利用非線性變化的差分特性即可恢復(fù)原始密鑰;文獻[17]通過提高故障導(dǎo)入的效率,可以用較少的錯誤密文數(shù)恢復(fù)原始密鑰;文獻[18]提出并討論了一種針對 SMS4密鑰編排方案的差分故障攻擊方法,通過在 SMS4算法的密鑰編排方案中導(dǎo)入故障成功恢復(fù)初始密鑰。目前所有針對SMS4的差分故障分析都是針對單字節(jié)故障導(dǎo)入進行的,現(xiàn)有故障導(dǎo)入方式大都通過計算機模擬方式實現(xiàn),在真實環(huán)境下故障信息的精確導(dǎo)入和采集極為困難,攻擊實用性不強。在針對SMS4的Cache計時攻擊方面,尚未發(fā)現(xiàn)國內(nèi)外有公開發(fā)表的結(jié)果。

        在深入分析和測試SMS4 算法后,本文提出了針對SMS4 算法加密前4輪和最后4輪的Cache計時分析方法,通過使用間諜進程采集SMS4加密過程中訪問的Cache組信息,結(jié)合明文或密文信息,分別設(shè)計實現(xiàn)針對SMS4前4輪和最后4輪的Cache計時攻擊,并就攻擊過程、結(jié)果等進行了詳細的描述和分析。理論分析和實驗結(jié)果證明:SMS4算法實現(xiàn)易遭受Cache計時攻擊威脅,前4輪、最后4輪攻擊均在80個樣本左右成功恢復(fù)128bit SMS4完整密鑰。

        本文結(jié)構(gòu)如下:第2 節(jié)簡單介紹SMS4 算法;第3 節(jié)概述Cache計時攻擊方法的基本思想;第4節(jié)詳細介紹提出的針對SMS4的Cache計時分析方法;第5 節(jié)列出攻擊實驗及實驗結(jié)果對比;第6 節(jié)是結(jié)束語。

        2 SMS4算法

        SMS4 密碼是迭代型分組密碼算法,其分組和密鑰長度均為128bit。加密算法與密鑰編排算法都采用 32 輪非線性迭代結(jié)構(gòu),解密算法與加密算法的結(jié)構(gòu)相同,只是子密鑰的使用順序相反,以下僅介紹加密算法。

        2.1 加密算法

        SMS4算法加密過程如圖1所示。設(shè)明文輸入為(X0, X1, X2, X3)∈()4,密文輸出為(Y0, Y1, Y2,Y3)∈()4,輪密鑰為 rki∈(i=0,1,…,31),則算法加密變換和反序變換為

        其中,0≤i≤31,輪函數(shù)F定義為

        圖1 SMS4加密算法結(jié)構(gòu)

        2.2 密鑰擴展算法

        SMS4加密算法的輪密鑰由加密密鑰通過密鑰擴展算法生成。加密密鑰 MK=(MK0,MK1, MK2,MK3),MKi∈(i=0,1,2,3);令 Ki∈(i=0,1,…,35),輪密鑰為 rki∈(i=0,1,…,31),輪密鑰生成算法如下:

        首先,進行初始變換

        然后,對i=0,1,…,31進行下列運算:

        其中,F(xiàn)K=(FK0,FK1,FK2,FK3)和 CK=(CK0,CK1,…,CK31) 為已知系統(tǒng)參數(shù),其值可參見相關(guān)標(biāo)準(zhǔn)文獻[13];T'變換和加密算法輪函數(shù)中T基本相同,只將其中的線性變換L修改為以下L':

        3 針對SMS4的Cache計時攻擊概述

        3.1 Cache計時攻擊原理

        高速緩存Cache[19]主要用于解決CPU與主存之間速度不匹配的問題。由Cache訪問命中和失效會帶來時間差異,而分組密碼在加密過程中由于使用了S盒進行查表操作訪問Cache,其Cache訪問特征信息可通過時間特征信息泄露出來,可以說,Cache為密碼進程加密提供了時間信息泄露源。而在組映像Cache中,多進程在主存中數(shù)據(jù)可能被映射到同一Cache組中,進而共享Cache存儲空間。但是這樣就帶來了一個嚴重的問題,惡意進程可以通過對其私有數(shù)據(jù)進行Cache訪問“命中”和“失效”帶來的時間差異信息來推測其他進程的 Cache訪問特征。雖然Cache中的數(shù)據(jù)元素是受存儲器保護的,攻擊者無法直接獲取,但是其元數(shù)據(jù)可泄露Cache訪問地址特征信息,而Cache訪問地址特征信息和分組密碼查找S盒索引有著密切關(guān)系,可被攻擊者利用來進行密碼分析。由此可知,Cache也為密碼進程提供了時間信息泄露隱通道。

        一般來說,攻擊者通過計時手段主要獲取2大類信息:一類是由Cache命中、失效天然條件導(dǎo)致的密碼系統(tǒng)不同輸入的整個加解密時鐘周期差異,另外一類就是密碼進程加解密訪問過的Cache組信息,由此演化出了2種Cache計時分析方法——時序驅(qū)動Cache計時分析[5,8,9]、訪問驅(qū)動Cache計時分析[6,10~12]。相比較而言,時序驅(qū)動信息采集方法比較簡單,但分析方法比較復(fù)雜,樣本量較大,一般在百萬計以上,由網(wǎng)絡(luò)傳輸時延抖動帶來的噪聲使得遠程環(huán)境下計時信息的精確采集顯得更加困難,遠程攻擊適用性不強;訪問驅(qū)動分析利用的是密碼算法加解密中訪問的Cache組集合信息,信息采集方法比時序驅(qū)動稍顯復(fù)雜,但分析方法簡單,所需樣本量較小,在木馬技術(shù)飛速發(fā)展的今天,其在本地和遠程實施攻擊的可行性越來越強,越來越受攻擊者青睞。

        3.2 攻擊條件

        本文主要采用訪問驅(qū)動方式對SMS4分組密碼開展Cache計時分析,攻擊需滿足的基本條件為:

        1) 攻擊者已知明文或密文信息。對于針對SMS4前4輪攻擊來說,攻擊者需已知加密明文;同樣對于后4輪攻擊來說,攻擊者需已知加密密文。

        2) 攻擊者具備采集 SMS4加密部分輪訪問過和未訪問過的Cache組集合信息能力。SMS4前4輪攻擊中,攻擊者能通過一定手段在加密前清空Cache,并在前4輪加密后能夠再次訪問Cache,采集SMS4加密前4輪加密訪問的Cache組集合信息;在SMS4后4輪攻擊中,攻擊者可在加密29輪前清空Cache,并在整個加密完成后再次訪問Cache,采集加密最后4輪訪問的Cache集合信息。

        3.3 攻擊基本思想

        對SMS4密碼算法進行訪問驅(qū)動Cache計時攻擊的基本思想如下。

        前4輪攻擊:

        1) 產(chǎn)生隨機明文,得到明文信息;

        2) 在加密開始前,使用間諜進程清空Cache,并確保在前4輪加密后再次訪問Cache,采集SMS4前4輪加密中沒有訪問過的Cache組信息;

        3) 將SMS4加密沒有訪問過的Cache組信息轉(zhuǎn)換為不可能查表索引,結(jié)合明文信息(X0, X1, X2, X3)得到第一輪擴展密鑰 rk0的不可能值,多樣本排除分析后得出rk0的唯一值;

        4) 將rk0值代入第1輪加密公式,得到每個明文樣本加密的X4值,利用不可能查表索引和中間狀態(tài)信息(X1, X2, X3, X4)得到rk1的不可能值,多樣本排除分析后得出rk1唯一值;

        5) 同樣,利用上述相同方法進行推導(dǎo)分析,依次攻擊得到加密第3輪、第4輪擴展密鑰rk2、rk3;

        6) 使用已經(jīng)恢復(fù)出的加密前4輪擴展密鑰,根據(jù)密鑰擴展算法,逆向計算出初始加密密鑰K。

        最后4輪攻擊:

        1) 產(chǎn)生隨機明文,加密后獲得相應(yīng)的密文信息;

        2) 確保在加密第29輪開始前,使用間諜進程清空 Cache,并在 32輪整個加密完成后再次訪問Cache,采集SMS4最后4輪加密中沒有訪問過的Cache組信息;

        3) 將SMS4加密沒有訪問過的Cache組信息轉(zhuǎn)換為不可能查表索引,結(jié)合密文信息(X32, X33, X34,X35)得到第32輪擴展密鑰rk31的不可能值,多樣本排除分析后得出rk31的唯一值;

        4) 將rk31值代入第32輪加密公式,得到每個明文樣本加密的 X31值,利用不可能查表索引和中間狀態(tài)信息(X31, X32, X33, X34,)得到rk30的不可能值,多樣本排除分析后得出rk30唯一值;

        5) 同樣,利用上述相同方法進行推導(dǎo)分析,依次攻擊得到加密第30輪、第29輪擴展密鑰rk29、rk28;

        6) 使用已經(jīng)恢復(fù)出的最后4輪擴展密鑰,根據(jù)密鑰擴展算法,逆向計算出初始加密密鑰K。

        4 針對SMS4的Cache計時攻擊過程詳述

        4.1 基本記號和符號

        記(X0, X1, X2, X3)∈()4為明文輸入,(Y0, Y1,Y2, Y3)∈()4為密文輸出,rki∈(i=0,1,…,31)為第i輪擴展密鑰。

        記(Xi, Xi+1, Xi+2, Xi+3)∈()4(i=0,1,…,31)為第i+1 輪輸入;(Xi+1, Xi+2, Xi+3, Xi+4)∈ ()4(i=0,1,…,31)為第i+1輪輸出。

        記 Ai=(a0,i, a1,i, a2,i, a3,i) ∈()4(i=1,2,…,32)為第i輪S盒的輸入;Bi=(b0,i, b1,i, b2,i, b3,i) ∈()4(i=1,2,…,32)為第i輪S盒的輸出,同時也是第i輪線性變換 L 的輸入;Ci=(c0,i,c1,i,c2,i,c3,i) ∈()4(i=1,2,…,32)為第i輪線性變換L的輸出。

        記 Scs為SMS4加密查S盒訪問過的Cache組集合,為SMS4加密查S盒沒有訪問過的Cache組集合;Sy為SMS4加密訪問過的Cache組集合對應(yīng)的可能查S盒索引值集合,為SMS4加密沒有訪問過的Cache組集合對應(yīng)的不可能查S盒索引值集合。

        下面將詳細介紹針對SMS4加密前4輪和最后4輪的攻擊過程。

        4.2 信息采集

        SMS4加密訪問Cache特征信息的精確采集是信息分析的前提,對于訪問驅(qū)動Cache計時攻擊來說,Cache命中和失效時鐘周期信息的采集和指定加密輪訪問Cache特征信息采集時機選取是攻擊成功的關(guān)鍵所在。

        計時手段選取:由于現(xiàn)代計算機時鐘周期早已達到納秒級,Cache命中和失效一般都是100ns以內(nèi),傳統(tǒng)的計時方式會造成很大誤差,甚至?xí)霈F(xiàn)計量結(jié)果全部相同情況。因此,本文采用的是Pentium CPU內(nèi)部時間戳進行高精度計時,該時間戳可通過 RDTSC指令來進行讀取。由于目前的CPU主頻都非常高,調(diào)用該指令可達到納秒級計時精度。

        Cache信息采集時機選?。簽殚g諜程序分配和L1數(shù)據(jù)Cache大小相等的字節(jié)數(shù)組A[0,…, S×W×B-1],由第3節(jié)可知,前4輪攻擊中,攻擊者需在加密前每隔一個 Cache行訪問數(shù)組 A中元素清空Cache,然后確保在前 4輪加密后再次訪問數(shù)組 A中元素,采集Cache訪問時鐘周期信息;最后4輪攻擊中,攻擊者需確保在加密 29輪開始前清空Cache,然后在第32輪加密完成后再次訪問數(shù)組A,采集Cache訪問時鐘周期信息。如何在SMS4加密指定輪前后精確的執(zhí)行Cache訪問操作十分關(guān)鍵。

        攻擊中,首先學(xué)習(xí)對多個樣本執(zhí)行 SMS加密的平均時鐘周期t,然后在加密前執(zhí)行RDTSC指令讀取時間戳t1,加密開始前訪問數(shù)組A清空Cache,然后使用間諜進程監(jiān)視SMS4加密過程中系統(tǒng)時間戳t2變化。在前4輪攻擊中,如果(t2-t1)>3×t/8則進行Cache 2次訪問操作;在最后4輪攻擊中,如果(t2-t1)>5×t/8則訪問數(shù)組再次清空 Cache,然后在整個加密完成后再次訪問數(shù)組A,采集Cache訪問時鐘周期信息。

        4.3 信息分析

        下面詳細介紹對采集的SMS4前4輪Cache旁路信息分析過程。

        1) 產(chǎn)生隨機明文X,并執(zhí)行在未知密鑰K作用下的加密。

        2) 攻擊第1輪(如圖2所示),步驟如下。

        ①首先啟動間諜程序,每隔一個Cache行大小讀取數(shù)組A中數(shù)據(jù)來清空Cache,然后對明文X在密鑰K作用下加密,在加密前4輪執(zhí)行完畢后再次訪問Cache,采集Cache訪問時鐘周期信息。此時如果對SMS4查找表對應(yīng)的Cache組訪問所需時鐘周期較長,說明在前4輪加密中對該Cache組對應(yīng)的查表索引進行過訪問操作,將數(shù)組 A中數(shù)據(jù)從Cache中替換出來,間諜進程2次訪問Cache失效;否則說明在加密過程中沒有訪問該Cache組對應(yīng)的查表索引,間諜進程2次訪問Cache命中,最終得到SMS4加密前4輪沒有訪問的Cache組集合,如圖3所示,橫坐標(biāo)表示SMS4 S盒對應(yīng)的16個Cache組,縱坐標(biāo)表示對其的訪問時鐘周期,如果SMS4加密沒有訪問某Cache組,間諜進程2次訪問會發(fā)生Cache命中,時鐘周期小于5,否則發(fā)生Cache失效,時鐘周期一般大于10。

        ② 利用查找表對應(yīng) Cache組和查表索引之間關(guān)系可知,每一個加密未訪問的Cache組將對應(yīng)16個查表索引值,分析可得加密前4輪沒有訪問的查表索引集合。

        ③ 由加密第1輪公式(7)可知,第1輪加密的輸入為(X0,X1,X2,X3),新的中間狀態(tài)變量輸出為X4,擴展密鑰為rk0,共進行4次查表操作,對應(yīng)的4個查表索引分別為(a0,1, a1,1, a2,1, a3,1)。

        圖2 第1輪攻擊

        圖3 SMS4 查找S盒訪問Cache組時鐘周期

        式(7)又可轉(zhuǎn)化為如式(8)所示。

        將每個加密前 4輪不可能訪問的查表索引值(a'0,1, a'1,1, a'2,1, a'3,1)代入式(8)分別得到輪密鑰rk0的4個字節(jié)的一組不可能值。理想情況下,如果未訪問的Cache組集合數(shù)目等于NS情況下,可分別將(rk'0,0, rk'1,0, rk'2,0, rk'3,0)的密鑰字節(jié)候選值集合數(shù)量從256降低到256-16×NS,由于正確的密鑰值是不可能被排除掉的,故多樣本排除分析可得到唯一的(rk0,0, rk1,0, rk2,0, rk3,0),即得到rk0。

        3) 攻擊第2輪,步驟如下。

        將rk0代入式(7)得到第1輪加密輸出中X4值,由第2輪加密式(9)可知,第2輪加密的輸入為(X1,X2,X3, X4),新的中間狀態(tài)變量輸出為X5,擴展密鑰為 rk1,同樣也進行 4次查表操作,對應(yīng)的 4個查表索引分別為(a0,2, a1,2, a2,2, a3,2)。

        將加密前 4輪不可能訪問的查表索引值(a'0,2,a'1,2, a'2,2, a'3,2)代入式(9)分別得到輪密鑰rk1的4個字節(jié)的一組不可能值,多次排除分析得到唯一的(rk0,1, rk1,1, rk2,1, rk3,1),即得到rk1。

        4) 攻擊第3、4輪,將rk1代入式(9)得到第2輪加密輸出X5值,然后參考步驟3)方法得到rk2,同樣方法也可得到rk3。

        5) 利用密鑰擴展算法,由rk0,rk1,rk2,rk3恢復(fù)加密密鑰K。

        下面詳細介紹對采集的SMS4最后4輪Cache旁路信息分析過程。

        1) 產(chǎn)生隨機明文X,并執(zhí)行在未知密鑰K作用下的加密,并獲取密文C。

        2) 攻擊第32輪(如圖4所示),步驟如下。

        ① 首先啟動間諜程序,在加密第29輪執(zhí)行前清空Cache信息,然后在第32輪加密完成后再次訪問Cache,采集Cache訪問時鐘周期信息。此時如果對SMS4查找表對應(yīng)的Cache組區(qū)域進行訪問時鐘周期較長,說明在最后4輪SMS4加密中對該Cache組對應(yīng)的查表索引進行過訪問操作,從而將攻擊者數(shù)組A中數(shù)據(jù)從Cache中替換出來,攻擊者2次訪問發(fā)生Cache失效;否則說明在加密過程中沒有訪問過該Cache組對應(yīng)的查表索引,攻擊者2次訪問發(fā)生Cache命中。得到SMS4加密前4輪沒有訪問的Cache組集合。

        圖4 最后1輪攻擊

        ② 利用查找表對應(yīng) Cache組和查表索引之間關(guān)系可知,每一個加密中未訪問的Cache組將對應(yīng)16個查表索引值,分析可得加密前4輪沒有訪問的查表索引集合。

        ③ 由第32輪加密式(10)可知,加密輸入為(X31,X32,X33,X34),新的中間狀態(tài)變量輸出為X35,擴展密鑰為rk31,共進行4次查表操作,對應(yīng)的4個查表索引分別為(a0,31, a1,31, a2,31, a3,31)。

        式(10)又可轉(zhuǎn)化為如式(11)所示。

        將每個加密最后4輪不可能訪問的查表索引值信息(a'0,32, a'132, a'232, a'3,32)代入式(11)分別得到輪密鑰rk31的4個字節(jié)的一組不可能值。理想情況下,如果未訪問的Cache組集合數(shù)目為NS的情況下,可分別將(rk'0,31, rk'1,31, rk'2,31, rk'3,31)的密鑰字節(jié)候選值集合數(shù)量從256降低到256-16NS,由于正確的密鑰值是不可能被排除掉的,故多樣本排除分析可得到唯一的(rk0,31, rk1,31, rk2,31, rk3,31),即得到rk31。

        3) 攻擊第31輪,步驟如下。

        將rk31代入式(10)得到第31輪加密輸出中X31值,由第31輪加密式(12)可知,第31輪加密的輸入為(X30,X31,X32, X33),新的中間狀態(tài)變量輸出為X34,擴展密鑰為rk30,同樣也進行4次查表操作,對應(yīng)的4個查表索引分別為(a0,31, a1,31, a2,31, a3,31)。

        將加密前 4輪不可能訪問的查表索引值信息(a'0,31, a'1,31, a'2,31, a'3,31)代入式(12)分別得到輪密鑰rk30的4個字節(jié)的一組不可能值,多次排除分析得到唯一的(rk0,30, rk1,30, rk2,30, rk3,30),即得到rk30。

        4) 依次攻擊第30、29輪,將rk30代入式(12)得到第30輪加密輸出X33值,然后參考步驟3)方法得到rk29,同樣方法也可得到rk28。

        5) 利用密鑰擴展算法,由 rk28,rk29,rk30,rk31恢復(fù)加密密鑰K。

        4.4 復(fù)雜度分析

        SMS4算法在4輪加密過程中需要進行16次查表操作,令m為查找表在理想情況下(查找表起始元素在Cache行中是對齊的)對應(yīng)Cache組個數(shù),對于64byte的Cache行大小來說,m=16,p(b)為查表b次訪問某一Cache組概率,P(b)為在p(b)概率下對應(yīng)Cache元素個數(shù),同樣有,pn(b)為查找表b次沒有訪問某一Cache組概率,Pn(b)為在pn(b)概率下對應(yīng)Cache元素個數(shù)。對于一次查表操作訪問的某個Cache組來說

        則SMS4加密查表16次均未訪問某一Cache組概率為

        則16次查表沒有訪問的平均Cache組個數(shù)為

        應(yīng)用4.3節(jié)的排除分析方法,平均每個加密樣本可以排除掉的密鑰字節(jié)候選值數(shù)目為

        令V代表擴展密鑰單字節(jié)候選值集合,經(jīng)過對N個隨機樣本進行排除分析后,V中元素數(shù)量平均值為

        理論上來說,使得NV趨近于1對應(yīng)的N值為理論上分析該密鑰字節(jié)所需樣本量大小,由式(17)可知14個樣本左右即可恢復(fù)SMS4一個密鑰字節(jié),但由于4.3節(jié)排除分析利用的是加密沒有訪問過的Cache組集合并轉(zhuǎn)化為不可能查表索引信息,每一個Cache組對應(yīng)16個連續(xù)的索引值,故每個Cache組排除的密鑰字節(jié)為連續(xù)的 16個值,排除分析的發(fā)散效果不好,因而攻擊所需樣本量比理論值要大些。

        5 攻擊實驗及結(jié)果比較

        5.1 實驗環(huán)境

        攻擊實驗環(huán)境如表1所示。

        表1 SMS4攻擊實驗環(huán)境配置

        5.2 實驗結(jié)果

        應(yīng)用4.2節(jié)SMS4加密Cache訪問信息采集方法和信息分析原理,對SMS4加密前4輪和最后4輪分別進行了攻擊實驗,攻擊均在 80樣本量左右快速恢復(fù)128bit SMS4密鑰,耗時不超過1ms。

        攻擊樣本量同SMS4部分密鑰字節(jié)搜索空間關(guān)系如圖5所示,每個樣本量N均進行10次攻擊。其中錨節(jié)點形狀為三角形的曲線表示理論上攻擊樣本量同SMS4密鑰字節(jié)搜索空間關(guān)系,錨節(jié)點形狀為菱形的曲線表示攻擊樣本量同第1輪擴展密鑰rk0的4個字節(jié)平均密鑰搜索空間關(guān)系,錨節(jié)點形狀為正方形的曲線表示攻擊樣本量同最后1輪擴展密鑰rk31的4個字節(jié)平均密鑰搜索空間關(guān)系。

        圖5 攻擊樣本量N和密鑰搜索空間關(guān)系

        由圖5易知,第1輪攻擊和最后1輪攻擊樣本量和對應(yīng)的擴展密鑰字節(jié)搜索空間關(guān)系基本一致;30個樣本即可將 rk0和 rk31的密鑰搜索空間由 232降低到24,70~80個樣本即可穩(wěn)定的獲取rk0和rk31唯一值;同時,實際攻擊所需樣本量要大于4.4節(jié)理論分析結(jié)果,這主要是由于排除分析中每個沒有訪問的Cache組將對應(yīng)16個連續(xù)的不可能查表索引值,由于其連續(xù)性導(dǎo)致的密鑰字節(jié)排除分析發(fā)散性較差造成的。

        5.3 結(jié)果比較

        實驗結(jié)果同國內(nèi)外攻擊比較見表2。文獻[14,15]從數(shù)學(xué)角度對SMS4算法進行差分分析,攻擊所需樣本量極大,計算復(fù)雜度很高,攻擊的真正實施不是很現(xiàn)實;差分故障分析所需樣本量較小,密鑰恢復(fù)效率較高,但現(xiàn)有攻擊[16~18]都是通過修改加密算法在計算機上模擬實現(xiàn)故障導(dǎo)入,實際上是加密算法自己在進行故障導(dǎo)入,真實環(huán)境下對SMS4加密固定輪和固定字節(jié)進行故障導(dǎo)入極為困難,因此如何實現(xiàn)故障的精確導(dǎo)入是故障攻擊未來要解決的問題。本文提出的訪問驅(qū)動Cache計時攻擊,在不修改和干擾加密算法執(zhí)行的前提下,使用間諜進程采集SMS4加密過程中訪問的Cache組集合信息,然后結(jié)合明文或密文進行分析,攻擊所需樣本量較小,密鑰恢復(fù)效率也較高,攻擊實用性相對來說比較強;本文中的分析方法具有普遍適用性,尤其是PC機上使用 S盒的分組密碼算法,如 AES,Camellia,ARIA,SEED;同時,本文提出的攻擊方法也很容易在遠程環(huán)境下得以實施。

        表2 攻擊實驗結(jié)果和國內(nèi)外已有SMS4攻擊比較

        6 結(jié)束語

        給出了一種針對SMS4分組密碼算法的訪問驅(qū)動Cache計時攻擊方法,并分別對SMS4加密前4輪和最后4輪進行了攻擊實驗。研究結(jié)果表明:在不干擾SMS4加密算法執(zhí)行前提下,前4輪、最后4輪攻擊均可在 80個樣本左右成功恢復(fù) 128bit SMS4密鑰,此類針對SMS4的計時攻擊手段對信息安全將帶來突出威脅。

        需要特別指出的是,基于Cache的SMS4計時攻擊是SMS4分組密碼查表操作實現(xiàn)方式與現(xiàn)有主流計算機硬件系統(tǒng)特征所固有決定的,具有難于規(guī)避的特點,防御這種攻擊可采取去除查找表、進程訪問控制、Cache預(yù)熱、調(diào)整Cache結(jié)構(gòu)甚至移除數(shù)據(jù)Cache等策略,但所有的防御措施都是要以犧牲加密速度為代價的,所以如何在速度和安全性這一對矛盾的指標(biāo)上進行平衡選擇是目前密碼程序?qū)崿F(xiàn)所面臨的巨大挑戰(zhàn)。

        [1] PAUL C, KOCHER. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems[A]. CRYPTO 1996[C].Springer, 1996.104-113.

        [2] 吳文玲, 賀也平, 馮登國等. MARS和Rijndael的能量攻擊[J]. 軟件學(xué)報, 2002,13(4):532-536.WU W L, HE Y P, FENG D G, et al. Power attack of MARS and Rijndael[J]. Journal of Software, 2002,13(4):532-536.

        [3] QUISQUATER J J, SAMYDE D. Electromagnetic analysis (EMA):measures and countermeasures for smart cards[A]. Smart Cards Programming and Security (E-Smart 2001)[C]. Springer, 2001.200-210.

        [4] BONEH D, DEMILLO R A, LIPTON R J. On the importance of checking cryptographic protocols for faults[A]. EUROCRYPT’97[C].Konstanz, Germany, 1999. 37-51.

        [5] BRUMLEY D, BONEH D. Remote timing attacks are practical[A].Proceedings of the 12th Usenix Security Symposium[C]. Washington,DC, 2003. 1-14.

        [6] COLIN P. Cache missing for fun and profit[EB/OL]. http://www.daemonology.net/hyperthreading-considered-harmful/,2005.

        [7] YUKIYASU T, TERUO S, TOMOYASU S, et al. Cryptanalysis of DES implemented on computers with Cache[A]. Cryptographic Hardware and Embedded Systems - CHES 2003[C]. Springer, 2003.62-76.

        [8] DANIEL J, BERNSTEIN. Cache-timing attacks on AES[EB/OL].http://cr.yp.to/papers.html#Cachetiming, 2004.

        [9] JOSEPH B, ILYA M. Cache-collision timing attacks against AES[A].Louis Goubin and Mitsuru Matsui, Editors, CHES 2006[C]. Springer,2006.201-215.

        [10] DAG A O, ADI S, ERAN T. Cache attacks and countermeasures: the case of AES[A]. Topics in Cryptology-CT-RSA 2006[C]. Springer,2006.1-20.

        [11] MICHAEL N, SEIFERT J P. Advances on access-driven Cache attacks on AES[A]. Selected Areas in Cryptography 2007[C]. Springer,2007.147-162.

        [12] ZHAO X J, WANG T, MI D. Robust first two rounds access driven Cache timing attack on AES[A]. International Conference on Computer Science and Software Engineering(CSSE 2008)[C]. Wuhan,Hubei, China, 2008. 785-788.

        [13] 國家商用密碼管理辦公室. 無線局域網(wǎng)產(chǎn)品使用的 SMS4 密碼算法[EB/OL]. http://www.oscca.gov.cn/ UpFile/200622026423297990.pdf, 2006.Office of State Commercial Cipher Administration. Block cipher for WLAN products—SMS4[EB/OL]. http:// www.oscca.gov.cn/ UpFile/200622026423297990.pdf, 2006.

        [14] 鐘名富, 胡予濮, 陳杰. 分組加密算法SMS4的14輪Square攻擊[J].西安電子科技大學(xué)學(xué)報,2008,35(1):105-109.ZHONG M F, HU Y P, CHEN J. Square attack on the 14-round block cipher SMS4[J]. Journal of Xidian University, 2008,35(1):105-109.

        [15] 陳杰, 胡予濮, 張躍宇. 用不可能差分法分析17輪SMS4算法[J].西安電子科技大學(xué)學(xué)報, 2008,35(3):455-458.CHEN J, HU Y P, ZHANG Y Y. Impossible differential attack on the 17-round block cipher SMS4[J]. Journal of Xidian University,2008,35(3):455-458.

        [16] 張蕾, 吳文玲. SMS4 密碼算法的差分故障攻擊[J]. 計算機學(xué)報,2006,29(9): 2596-2602.ZHANG L, WU W L. Differential fault analysis on SMS4[J]. Chinese Journal of Computers, 2006,29(9):2596-2602.

        [17] LI W, GU D W. An improved method of differential fault analysis on the SMS4 cryptosystem[A]. The First International Symposium on Data, Privacy, and E-Commerce-ISDPE 2007 [C]. Chengdu, China,2007. 175-180.

        [18] 李瑋, 谷大武. 基于密鑰編排故障的SMS4算法的差分故障分析[J].通信學(xué)報, 2008,29(10):135-142.LI W, GU D W. Differential fault analysis on the SMS4 cipher by inducing faults to the key schedule[J]. Journal on Communications,2008,29(10):135-142.

        [19] HANDY J. The Cache Memory Book: the Authoritative Reference on Cache Design[M]. Orlando, FL, USA: Academic Press, Inc,1998.

        猜你喜歡
        樣本量計時字節(jié)
        暢游計時天地
        車迷(2022年1期)2022-03-29 00:50:24
        醫(yī)學(xué)研究中樣本量的選擇
        No.8 字節(jié)跳動將推出獨立出口電商APP
        腕表計時2.0
        中國化妝品(2020年9期)2020-10-09 08:56:56
        12時計時法與24時計時法的互化
        No.10 “字節(jié)跳動手機”要來了?
        航空裝備測試性試驗樣本量確定方法
        Sample Size Calculations for Comparing Groups with Binary Outcomes
        24時計時法
        簡談MC7字節(jié)碼
        日本精品视频一视频高清| 亚洲国产精品无码aaa片| 操国产丝袜露脸在线播放| 亚洲三级中文字幕乱码| 少妇激情av一区二区三区| 中文字幕中文有码在线| 久久99热久久99精品| 国产黄页网站在线观看免费视频| 抽搐一进一出试看60秒体验区| 国产精品久久码一区二区| 国产午夜亚洲精品不卡免下载| 亚洲中文高清乱码av中文| 国产高清在线精品一区不卡| 91国产精品自拍在线观看| 国产午夜片无码区在线播放 | 国产精品亚洲一区二区杨幂| 国产亚洲女人久久久久久| 性色av一区二区三区四区久久| 国产精品自产拍av在线| 日本一区二区视频高清| 台湾佬中文网站| a级国产乱理伦片在线播放| 亚洲欧洲无码一区二区三区| 国产成人亚洲综合一区| 97色偷偷色噜噜狠狠爱网站97| 精品久久久亚洲中文字幕| 亚洲综合久久久中文字幕| 免费在线亚洲视频观看| 制服丝袜一区二区三区| 国内露脸少妇精品视频| 国产欧美VA欧美VA香蕉在| 中文字幕av无码一区二区三区电影| 精品午夜中文字幕熟女| 色婷婷亚洲一区二区三区在线| 国产av熟女一区二区三区密桃 | 成人免费a级毛片| 色狠狠一区二区三区香蕉| 国产精品麻豆最新AV| www.av在线.com| 亚洲日本中文字幕乱码| 久久精品第九区免费观看|