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

        ?

        輕量級分組密碼算法DoT 的模板攻擊

        2021-03-18 08:03:36孫家異韋永壯
        計算機工程 2021年3期
        關鍵詞:掩碼漢明明文

        孫家異,韋永壯

        (桂林電子科技大學廣西密碼學與信息安全重點實驗室,廣西桂林 541004)

        0 概述

        2002 年,CHARI 等人[1]利用能量消耗與正在處理的數據有關這一基本事實[2],提出了模板攻擊的概念。模板攻擊方法使用多元正態(tài)分布對采集到的數據特征進行刻畫,在模板攻擊中,假設攻擊者可以對被攻擊設備的特征進行刻畫,如攻擊者擁有一臺與被攻擊設備類型相同的設備,利用該設備,攻擊者根據不同數據和固化的密鑰來執(zhí)行加密操作,即觀察加密設備的具體物理實現,并記錄對應的能耗信息,然后將與(數據,密鑰)相對應的能量跡進行分組,估算多元正態(tài)分布的均值向量和協方差矩陣,并由此發(fā)起攻擊。模板攻擊是一種重要的側信道攻擊方法,與傳統的簡單能量分析[3]、相關性能量分析[4]和差分能量分析[5]等相比,模板攻擊在實際的密碼算法破譯中擁有更強的區(qū)分能力,因此,其受到研究人員的廣泛關注[6-7]。

        近年來,隨著物聯網技術的快速發(fā)展,各種資源受限的設備(如無線傳感器等)被廣泛應用。由于資源受限設備大多計算與存儲資源少,因此在數據安全存儲、傳輸或處理方面存在嚴重的安全隱患。為解決資源受限環(huán)境下的數據安全問題,輕量級密碼技術[8-10]應運而生。2019 年,JAGDISH 等人提出一種新的輕量級分組密碼算法DoT[11]。與著名的輕量級分組密碼算法SIMON[12]相比,DoT在軟件與硬件實現方面更為簡單。DoT 密碼算法整體采用SP 結構[13]以及輕型的線性及非線性運算部件,在硬件實現時僅需993個等效門。設計者聲稱DoT 算法可以抵御多種傳統數學攻擊,如線性密碼攻擊[14]、差分密碼攻擊[15]等,然而,該算法在實現中是否足以抵御模板攻擊仍有待探索。本文基于漢明重量模型,結合DoT 算法的結構及S 盒的特點,將DOT算法S 盒的輸出作為中間值進行密鑰恢復,提出一種針對DoT 算法的模板攻擊方法。

        1 DoT 算法描述

        DoT 密碼算法[11]整體結構采用SPN 設計,其明文分組為64 bit,根據密鑰數據長度的不同將該算法分為2 種版本,即80 bit 的DOT-80 和128 bit 的DOT-128。對于不同的密鑰長度,DoT 算法使用不同的密鑰編排算法。DoT 算法的加密和解密過程均使用31 輪的輪函數迭代運算,每一個輪函數包括輪密鑰加(AddRoundkey)、半字節(jié)代換(SubCells)和P 置換(Permutation)3 個步驟,如圖1 所示。

        圖1 DoT 密碼算法的輪函數Fig.1 Round function of DoT cipher algorithm

        1.1 輪密鑰加與密鑰編排

        DoT 密碼算法的主密鑰是80 bit,記為KEY=K79K78K77…K2K1K0,它的低64 位作為子密鑰與明文分組進行比特異或操作。在算法的每一輪加密操作中,KEY 按照如下的密鑰編排進行更新:

        1)KEY 循環(huán)左移13 bit:

        KEY <<<13

        2)低8 位K7K6…K2K1K0通過S 盒后將得到的結果與原數據進行替換:

        3)將KEY 中的K63K62K61K60K59與輪常數RCi進行異或操作并替換原比特:

        1.2 半字節(jié)代換

        半字節(jié)代換是一個非線性變換操作,其將內部狀態(tài)中的每一個半字節(jié)非線性變換為另一個半字節(jié)。DoT 中使用4 bit 密碼S 盒,即4 bit 輸入和4 bit輸出,如表1 所示。

        表1 4 bit 密碼S 盒Table 1 4 bit cryptographic S-box

        1.3 置換層

        置換層的功能是加強數據擴散,其本質上是一個線性部件。DoT 算法中采用字節(jié)的置換層包含2 次置換和1 次循環(huán)移位,如圖1 所示。

        2 模板攻擊

        2.1 模板攻擊的基本思想

        密碼設備所產生的物理泄露種類多樣,如時間序列[16]、能耗[17]和電磁輻射[18]等。近年來的側信道分析結果表明,能耗攻擊仍然是使用最多的一種攻擊。模板攻擊分析設備在實現加密操作過程中發(fā)生的物理泄露,這種泄露在統計上依賴所涉及密鑰操作的中間值,從而使得從測量信息泄露所得的數據來推斷密鑰成為可能。需要注意的是,實現模板攻擊有一個重要的假設前提,即攻擊者能夠完全控制一個和被攻擊設備幾乎完全類似的設備,可以不受限制地多次調用該設備,且參數由自己設定。這個假設前提有可能實現,原因是被攻擊設備通常是標準設備,與其類似的設備可以通過合法途徑獲得。

        在上述假設的基礎上,攻擊者可以通過該設備對算法中間值的漢明重量構建模板,然后用同樣的方法在被攻擊設備運行時獲取能耗信息并與已構建好的模板進行匹配。匹配效果最好的模板對應的漢明重量就是可能正確的漢明重量,然后根據每一次的匹配結果得出所有可能的候選密鑰集合,進行取交集操作,最后篩選出的一個密鑰就是所求正確密鑰。

        2.2 基于漢明重量的模板攻擊

        模板攻擊分為模板刻畫和密鑰恢復2 個階段[19],本書將進行具體闡述。

        2.2.1 模板刻畫

        攻擊者選定一個中間值,求出該中間值所有可能的漢明重量,通過使用一組密鑰和明文計算出一個漢明重量為mi的中間值,使用這組數據讓加密算法在密碼芯片中執(zhí)行重復加密操作并采集該過程中泄露的能耗信息,即能量跡,然后求出所得能量跡的均值,將其作為刻畫該漢明重量的模板,這個模板僅由一個均值向量表示,對于每一個可能的漢明重量,都需建立一個均值向量模板。

        假設攻擊者使用密鑰key 和明文pi計算得出中間值的漢明重量為HWi,在設備中重復加密m次,采集到m條能量跡,每一條能量跡上都選取相同的n個點,這時攻擊者就得到一個m×n的能耗矩陣M。假設第j條能量跡為{T(j,1),T(j,2),…,T(j,n)}(1≤j≤m),令M(i,k)表示漢明重量為i的均值向量模板M的第k個樣本點,則:

        攻擊者計算出每個樣本點的均值,通過計算得到漢明重量為i(0 ≤i≤b)的模板對應的均值向量為:

        其中,b表示中間值的長度,對于長度為bbit 的中間值,攻擊者共需刻畫b+1 個模板。

        2.2.2 密鑰恢復

        攻擊者在目標設備上用所求密鑰對同一個明文mj進行多次重復加密,采集每一次加密所得的能量跡并求均值得出均值能量跡T′={T′1,T′2,…,T′n}。然后,攻擊者使用最小二乘法[20]求得能量跡T′和每個模板的相似程度,根據最大似然原理[21],與T′相似程度最高的模板對應的漢明重量HWi就與所求中間值的漢明重量相同。攻擊者再用所有可能的密鑰對該明文mj進行加密并計算得到中間值的漢明重量HWk,如果HWi=HWk,則將對應的密鑰加入集合Mk中。通過多次選取明文m1,m2,…,mj得出多個密鑰集合M1,M2,…,Mk,最后對這些集合進行取交集操作,當交集為一個密鑰時,該密鑰即為正確密鑰。

        值得注意的是,測量得到的每一條能量跡都含有噪聲,如果攻擊者不對能量跡作預處理,噪聲可能會嚴重影響密鑰恢復階段的成功率。因此,攻擊者要對加密進行多次重復操作,通過求均值的方式來降低噪聲的影響。最后,使用均值能量跡與模板進行匹配以恢復正確密鑰。

        3 針對DoT 分組密碼的模板攻擊

        本文針對DoT 的軟件實現進行攻擊測試。在攻擊中,選擇DoT 第一輪執(zhí)行S 盒的輸出作為中間值,并采用漢明重量模型構建模板。因為DoT 在設備上執(zhí)行時是每2個S盒相合并以進行運算,所以是以字節(jié)為單位,每一個字節(jié)為8 bit,因此,需要分別構建0,1,…,8這9種漢明重量模板。攻擊過程如圖2 所示。

        圖2 模板攻擊流程Fig.2 Procedure of template attack

        針對DoT 的模板攻擊步驟如下:

        步驟1選擇一個用于建立模板的密鑰k,使用不同的明文與密鑰k執(zhí)行加密運算,找出加密過程中使中間值的漢明重量分別為0,1,…,8 的明文m0,m1,…,m8,測得加密過程的能量跡并選擇4 000 個采樣點。然后分別用明文m0,m1,…,m8與密鑰k進行加密,對每一個明文都進行1000 次的加密操作,最后求均值得到9 種漢明重量模板p0,p1,…,p8。

        步驟2隨機選取一個明文m0′,與所求密鑰進行1 000 次加密操作并測出能量跡,同樣選擇4 000 個采樣點求均值得出該明文的均值能量跡t。

        步驟3采用最小二乘法,將所得均值能量跡t與所建模板p0,p1,…,p8進行匹配,得出明文m0′對應中間值的漢明重量p0′,根據所得漢明重量計算出所有可能的中間值,最后對這些中間值進行逆運算得出所有可能的密鑰集合N1={k1,k2,…,kn}。其中,n為所得漢明重量對應的所有可能中間值的個數,如表2 所示。

        表2 漢明重量i 的可能中間值數量Table 2 The number of possible median values of Hamming weight i

        步驟4選取另一個不同的明文m1′重復步驟2 和步驟3,得出另一個密鑰集合N2,將其與步驟3 中求出的集合進行取交集操作。通過多次選取不同明文mi,得出對應密鑰集合ni,再進行取交集操作,直至得到的交集為一個密鑰,則該密鑰即為正確的密鑰。

        4 測試結果與分析

        本文測試環(huán)境選用WindowsXP 系統,算法實現使用MathMagic 側信道分析儀,其中,處理器選用STC89C52,并用MM_SCA 軟件進行波形分析。

        在測試過程中,在MathMagic 側信道分析儀的STC89C52 處理器上實現DoT 算法。將采樣率設置為1GS/s,可以準確地獲取加密過程中的能耗泄露信息,通過MM_SCA 軟件對獲取的能耗曲線進行分析。首先,進行模板創(chuàng)建得到9 種漢明重量的能耗曲線并作為模板,如圖3 所示;然后,采集波形并用最小二乘法將其與模板進行匹配,如圖4 所示;最后,通過加密算法的逆運算恢復出候選密鑰集合。

        圖3 模板曲線Fig.3 Template curves

        圖4 波形匹配Fig.4 Waveforms matching

        本文在STC89C52 處理器上進行實驗,選擇6 組明文和一個固定的密鑰,如下:

        在實際攻擊中,真正的密鑰是未知的,本文中的真正密鑰用來驗證實驗結果是否正確。在恢復第一個字節(jié)時,用6 組明文的第一個字節(jié)(0xA4,0x96,0x33,0xCF,0xF0,0x21)與密鑰的第一個字節(jié)進行加密獲得6 條能量跡,在每一條能量跡上同樣選取4 000個采樣點,且每一條能量跡都是通過加密1000次得到的均值能量跡。然后,分別用這6 條能量跡與模板曲線進行匹配得到中間值對應的漢明重量5、4、4、4、5、1。根據第一個漢明重量計算出每一個可能的中間值以及每一個可能的密鑰組成集合,再根據第二個漢明重量得到相應集合,將其與第一個集合進行取交集操作,在進行第四次實驗后,所得交集只剩下0x11,即為正確密鑰。

        在第一次測試時,模板匹配得到HW(y)=5,已知明文首字節(jié)為0xA4,通過篩選后的密鑰集合為:

        在第二次測試時,模板匹配得到HW(y)=4,已知明文首字節(jié)為0x96,通過篩選后的密鑰首字節(jié)集合為:

        在第三次測試時,模板匹配得到HW(y)=4,已知明文首字節(jié)為0x33,通過篩選后的密鑰首字節(jié)集合為:

        在第四次測試時,模板匹配得到HW(y)=4,已知明文首字節(jié)為0xCF,通過篩選后的密鑰首字節(jié)集合為:

        在第五次測試時,模板匹配得到HW(y)=5,已知明文首字節(jié)為0xF0,通過篩選后的密鑰首字節(jié)集合為:

        在第六次測試時,模板匹配得到HW(y)=1,已知明文首字節(jié)為0x21,通過篩選后的密鑰首字節(jié)集合為:

        經過上述6 次篩選測試,最終捕獲正確的8 bit密鑰。

        5 模板攻擊抵御方法

        任何對抗側信道攻擊的方法都是使加密設備消耗的能量不依賴密碼算法執(zhí)行加密時出現的中間值,掩碼技術[22]是一種著名的防護對策,其通過隨機化設備處理的中間值來實現這一目標。掩碼防護方法通常在算法級上進行防御,其優(yōu)點是可以直接作用在密碼算法的輸入或輸出的中間狀態(tài)值上,而不必改變密碼設備的硬件器件。本文提出一種對DoT密碼S 盒的輸入和輸出進行掩碼防護的方法。通常情況下可以將S 盒分為軟件實現和硬件實現2 種方式。文獻[23]指出掩碼的密碼硬件實現可能會降低其實現速度。因此,本文采用軟件實現方法對DoT算法進行掩碼防護。

        DoT 算法的S 盒軟件實現是通過使用查找表T,對于每個輸入變量v,其輸出都和表T 中的某個數據相對應。因此,可以對表T 加Mask 來進行掩碼保護。首先,隨機生成一個掩碼值m,使得輸入變量變成m⊕v,為了使S 盒的輸出也被掩碼防護,需要計算得出一個新的掩碼S 盒,用S′表示,原S 盒用S表示,S′需要滿足S′(v⊕m)=S(v)⊕m′,其中,m′在后續(xù)還原數據時用到。要保證S′的輸出異或m′后能轉變?yōu)樵瓉淼臄祿(v),如圖5 所示。

        圖5 DoT 掩碼后的圖形化描述Fig.5 Graphical description of masked DoT

        基于以上掩碼方法,本文針對DoT 密碼算法進行編譯實現,并進行相應的模板攻擊。注意到,掩碼中引入了隨機數,導致敵手無法通過模板攻擊中的中間值計算直接捕獲正確密鑰,實際測試結果也證實了這一點。

        6 結束語

        本文基于漢明重量模型,利用DoT 算法結構及密碼S 盒的特點,提出一種針對DoT 算法的模板攻擊方法。實驗結果表明,DoT 算法在該模板攻擊下具有脆弱性。為了抵御這一攻擊,本文設計一種DoT 算法S盒掩碼方案,測試結果驗證了其有效性。下一步將針對DoT 密碼算法設計高效的門限掩碼防護方案。

        猜你喜歡
        掩碼漢明明文
        低面積復雜度AES低熵掩碼方案的研究
        通信學報(2019年5期)2019-06-11 03:05:56
        基于布爾異或掩碼轉算術加法掩碼的安全設計*
        通信技術(2018年3期)2018-03-21 00:56:37
        奇怪的處罰
        奇怪的處罰
        媳婦管錢
        四部委明文反對垃圾焚燒低價競爭
        中年研究
        基于掩碼的區(qū)域增長相位解纏方法
        基于掩碼的AES算法抗二階DPA攻擊方法研究
        亚洲精品无码专区在线| av网站国产主播在线| 自拍成人免费在线视频| 在线观看的网站| 成人妇女免费播放久久久| 成人欧美一区二区三区白人| 成人在线免费视频亚洲| 国产av一区二区三区国产福利| 成人自拍小视频在线看| 久久精品无码一区二区日韩av| 成年午夜无码av片在线观看| 亚洲AⅤ精品一区二区三区| 搡老女人老妇女老熟妇69| 人妻久久一区二区三区| 午夜精品久久久久久毛片| 9191在线亚洲精品| 人妻av午夜综合福利视频| 久久日韩精品一区二区| 久久久久人妻精品一区三寸| 成人黄色网址| 亚洲精品亚洲人成在线播放| 日韩一区中文字幕在线| 99久久婷婷国产亚洲终合精品| 免费观看又色又爽又湿的视频| 含羞草亚洲AV无码久久精品| 蜜桃一区二区三区在线视频 | 亚洲欧洲日产国码久在线| 高清国产国产精品三级国产av| 伊人久久大香线蕉av不变影院| 亚洲欧美在线观看| 久久久久久岛国免费网站| 久久亚洲av熟女国产| 免费的日本一区二区三区视频 | 亚洲另类激情综合偷自拍图| 人妻少妇精品系列一区二区| 亚洲一区二区国产激情| 国产成人无码a区在线观看视频 | 中文字幕天天躁日日躁狠狠| 女同欲望一区二区三区| 精品卡一卡二卡3卡高清乱码 | 亚洲人成无码区在线观看|