新四季網

一種用於防禦能量分析攻擊的密碼算法實現保護方法

2023-08-13 03:02:31 3

專利名稱:一種用於防禦能量分析攻擊的密碼算法實現保護方法
技術領域:
本發明涉及一種密碼算法實現的保護方法,尤其涉及一種用於防禦能量分析攻擊的密碼算法實現保護方法,屬於信息技術安全領域。
背景技術:
能量分析攻擊是一種新興的密碼分析方法。能量分析攻擊利用密碼設備執行密碼運算時的能量消耗與設備所執行的操作或者所處理的數據之間的相關性實施密碼破解,具有攻擊成本低,破解效率高的特點,已經對智慧卡、RFID等嵌入式密碼設備的安全性造成了嚴重的現實威脅。輕量級分組密碼是一類在資源受限的工作環境下應用非常廣泛的分組密碼算法。輕量級分組密碼最大的特點在於分組長度以及密鑰長度相對較短,該特點使其更容易受到能量分析攻擊的威脅。分組密碼是將明文消息序列,劃分成長度為η的組,每組分別在密鑰的控制下變換成等長的輸出序列。分組密碼廣泛地應用於電子支付、付費電視以及電子護照等領域。在這些領域中,分組密碼大多基於智慧卡、RFID等嵌入式的密碼設備實現,而嵌入式的密碼設備在計算能力與存儲空間方面存在著嚴格的限制,一般稱其為資源受限的工作環境。輕量級分組密碼與其他非輕量級的分組密碼算法的區別在於其分組長度相對較小、密鑰長度相對較短,因此其加/解密過程對存儲空間、計算能力的要求較低。可見,輕量級分組密碼是特別適合資源受限的工作環境的一類分組密碼算法。近年來,側信道攻擊作為一種新型的密碼分析方法受到了產業界和學術界的廣泛關注,得到迅速發展。傳統的密碼分析將密碼實現視作黑盒子,只利用其輸入與輸出實施密碼破解;而側信道攻擊區別於傳統的密碼分析方法的顯著特徵在於其不僅僅考慮密碼實現的輸入輸出,而是同時利用密碼實現在進行密碼計算時洩露的時間信息、能量消耗信息或者電磁輻射信息等物理信息,輔助實施密碼破解。能量分析攻擊是一種利用密碼設備運行時的能量消耗信息實施密鑰恢復的側信道攻擊方法。自從Kocher等人於1998年提出差分能量分析(Differential Power Analysis)以來,大量行之有效的能量分析攻擊方法被相繼提出,包括模板攻擊(Template Attack)、相關係數分析(CPA,Correlation Power Analysis)、基於隨機模型的攻擊 (Stochastic Model)、互信息分析(Mutual Information Analysis)、方差能量分析 (Variance Power Analysis)等。這些攻擊方法對嵌入式的密碼設備的實際安全性構成了嚴重的威脅。鑑於能量分析攻擊對智慧卡、RFID等嵌入式密碼設備造成的巨大威脅,學術界與產業界提出了大量針對能量分析攻擊的防禦對策。基於軟體方法的防禦對策由於無需對嵌入式設備本身進行重新設計,所以具有設計周期短、部署成本低等優點。軟體防禦對策一般利用編碼技術(或者信息共享技術)將易遭受能量分析攻擊的中間值表示為與之沒有統計相關性的值(即掩碼技術),或者在保證計算正確的前提下,隨機擾亂密碼算法的執行流程,這些方法都能有效的降低能量消耗與目標中間值的相關性,從而起到防禦能量分析攻擊的作用。輕量級分組密碼的密鑰長度較短且其宿主嵌入式設備(如智慧卡、RFID標籤等) 往往沒有高安全等級的訪問控制機制,因此,很容易受到能量分析攻擊,必須被給予特別的保護。現有的防禦對策在輕量級分組密碼中適用性較低。例如,掩碼技術的實現需要較大的時間和空間開銷,這種開銷對於資源受限的應用環境而言是不現實的。而一些較高效的硬體對策,如雙柵預充電邏輯(Dual-rail Precharge Logic)等,其設計和部署成本較高, 應用存在困難。

發明內容
基於上述技術需求和困境,本發明目的在於提供一種用於防禦能量分析攻擊的密碼算法實現保護方法,本發明是一種低成本、高性能、高安全性的適用於輕量級分組密碼的安全解決方案,提高輕量級分組密碼算法在能量分析攻擊下的物理安全性。需要指出的是, 該方法不僅僅適用於輕量級分組密碼,該方法對於其他的非輕量級分組密碼同樣有效,只是該方法對於輕量級分組密碼具有更好的適用性。能量分析攻擊利用算法中間值與其相應能耗之間的相關性實施密鑰恢復。攻擊者猜測設備的密鑰,根據已知的明文或密文計算猜測中間值。之後對猜測中間值與攻擊者觀察記錄的能量消耗使用統計方法進行分析,以驗證密鑰猜測的正確性。一旦中間值與設備能耗的相關性被打破,攻擊者就無法利用這種相關性進行恢復密鑰。本方法的主要思路就是打破算法中間值與設備能耗之間的統計相關性,使得不同中間值對應的設備能耗基本相等,從而使攻擊者無法利用這種相關性恢復設備的密鑰。本發明的技術方案為一種用於防禦能量分析攻擊的密碼算法實現保護方法,其步驟為1)對需要保護的密碼算法的輸入值進行比特平衡編碼將輸入數據流中比特值為0的數據比特編碼為比特01,將比特值為1的數據比特編碼為比特10 ;2)利用比特平衡編碼後的數據進行密碼運算,設密碼算法為η比特分組密碼算法;其中a)對於密碼運算中的比特異或操作,首先將Encode(An)與一比特串(01)廣· (01) n進行異或操作,然後將得到的異或值與Encode (Bn)進行異或操作;Encode (An)為η比特數據A經比特平衡編碼後的值,Encode (Bn)為η比特數據B經比特平衡編碼後的值;b)對於密碼運算中的比特置換操作,將比特平衡編碼後的第2i,2i+l兩個比特與第2j,2j+l兩個比特進行置換;其中,i、j分別為編碼前需要置換的第i、j比特;C)對於密碼運算中的比特循環移位操作,將比特平衡編碼後的數據進行ail比特循環移位,其中,m為編碼前要進行的比特循環移位數;3)對步驟2)運算的輸出值進行解碼,即以順序輸出的兩比特為一組,取每組前一比特的值作為輸出值。如權利要求1所述的方法,其特徵在於設需保護的密碼運算輪序列為M,所述輸入值為密碼算法中第N輪的密碼運算中間值。一種用於防禦能量分析攻擊的密碼算法實現保護方法,其步驟為1)對需要保護的密碼算法的輸入值進行比特平衡編碼,將輸入數據流中比特值為0的數據編碼為比特10,將比特徵值為1的數據編碼為比特01 ;2)利用比特平衡編碼後的數據進行密碼運算,設密碼算法為η比特分組密碼算法;其中a)對於密碼運算中的比特異或操作,首先將Encode(An)與一比特串(10)廣· (10)n進行異或操作,然後將得到的異或值與Encode (Bn)進行異或操作;Encode (An)為η比特數據A經比特平衡編碼後的值,Encode (Bn)為η比特數據B經比特平衡編碼後的值;b)對於密碼運算中的比特置換操作,將編碼後的第2i,2i+l兩個比特與第2j,2j+l兩個比特進行置換;其中,i、j分別為編碼前需要置換的第i、j比特;c)對於密碼運算中的比特循環移位操作,將比特平衡編碼後的數據進行an比特循環移位,其中,m為編碼前要進行的比特循環移位數;3)對步驟2~)運算的輸出值進行解碼,即以順序輸出的兩比特為一組,取每組後一比特的值作為輸出值。進一步的,設需保護的密碼運算輪序列為M,所述輸入值為密碼算法中第N輪的密碼運算中間值。進一步的,對於密碼運算中的S盒代換操作,如果輸入S盒的數據是比特平衡編碼,則首先對S盒查找表進行變換,生成新的S盒查找表S',使得S' [Encode(An)]=Encode (S[An]);然後根據輸入數據查找表S',得到S盒代換操作輸出數據;其中,Encode表示對數據進行比特平衡編碼的操作,S[An]表示以AJt為輸入得到的S盒代換操作的輸出,An表示η比特未經編碼的數據。進一步的,如果輸入S盒的數據是未經過編碼的數據,則首先計算新的S盒查找表S 「,使得S 「 [An] = Encode (S [An]),之後根據S 「進行S盒查表操作。進一步的,所述數據A、B可以為任意比特長度。本方法通過對密碼算法的執行過程添加適當的編碼和解碼步驟完成對密碼算法中間值的保護。首先,在算法開始之前,對所有參加運算的數據,包括明文、密鑰以及可能的初始向量做編碼操作。之後在算法運行過程中使用編碼後的數據與對應的操作,按照密碼算法的步驟進行密碼計算,完成加解密過程。在算法結束時,對編碼後的結果數據進行解碼操作,得到算法正常的輸出。本方法只是對密碼算法的中間值進行了編碼以保證其不洩露信息,並不改變算法的輸入與輸出,保證算法運行結果正確。在本方法中使用的編碼解碼方法是比特平衡編碼。比特平衡編碼比特平衡編碼,即通過對算法中間值進行編碼,使不同的中間值具有相同的漢明重量。具體方法是對算法中間值的每一個比特使用兩個互補比特進行編碼,即使用10兩個比特對比特1進行編碼,使用01兩個比特對比特0進行編碼。對一個比特數據的編碼表見表1。用V表示η比特的算法中間值,V[i]表示中間值V的第i個比特,V'表示經過編碼的中間值,V' [j]表示編碼之後的中間值的第j個比特。編碼規則以及漢明重量變化表示如下V = V
I V[l] I V[2] | |· · · I ν[η-2] | |V[n_l]F' = F
||F
||F[1]||F[1]||F[2]||F[2]||... 11 V[n-2] 11 V[n-2] 11 V[n-l] 11 V[n-l]HW(V) = V
+V[l]+V[2]+. . . | V[n-2]+V[n_l]
權利要求
1.一種用於防禦能量分析攻擊的密碼算法實現保護方法,其步驟為1)對需要保護的密碼算法的輸入值進行比特平衡編碼將輸入數據流中比特值為0的數據比特編碼為比特01,將比特值為1的數據比特編碼為比特10 ;2)利用比特平衡編碼後的數據進行密碼運算,設密碼算法為η比特分組密碼算法;其中a)對於密碼運算中的比特異或操作,首先將Encode(An)與一比特串(01)Γ..(01)η 行異或操作,然後將得到的異或值與Encode(Bn)進行異或操作;Encode (An)為η比特數據 A經比特平衡編碼後的值,Encode (Bn)為η比特數據B經比特平衡編碼後的值;b)對於密碼運算中的比特置換操作,將比特平衡編碼後的第2i,2 +1兩個比特與第 2j,2j+l兩個比特進行置換;其中,i、j分別為編碼前需要置換的第i、j比特;c)對於密碼運算中的比特循環移位操作,將比特平衡編碼後的數據進行an比特循環移位,其中,m為編碼前要進行的比特循環移位數;3)對步驟幻運算的輸出值進行解碼,即以順序輸出的兩比特為一組,取每組前一比特的值作為輸出值。
2.如權利要求1所述的方法,其特徵在於設需保護的密碼運算輪序列為M,所述輸入值為密碼算法中第N輪的密碼運算中間值。
3.如權利要求1或2所述的方法,其特徵在於對於密碼運算中的S盒代換操作,如果輸入S盒的數據是比特平衡編碼,則首先對S盒查找表進行變換,生成新的S盒查找表S',使得S' [Encode(An)] =Encode (S [An]);然後根據輸入數據查找表S',得到S盒代換操作輸出數據;其中,Encode表示對數據進行比特平衡編碼的操作,S[An]表示以An作為輸入得到的S盒代換操作的輸出,An表示η比特未經編碼的數據。
4.如權利要求1或2所述的方法,其特徵在於如果輸入S盒的數據是未經過編碼的數據,則首先計算新的S盒查找表S",使得S" [AJ = Encode (S [An]),之後根據S"進行S 盒查表操作。
5.如權利要求1所述的方法,其特徵在於所述數據A、B可以為任意比特長度。
6.一種用於防禦能量分析攻擊的密碼算法實現保護方法,其步驟為1)對需要保護的密碼算法的輸入值進行比特平衡編碼,將輸入數據流中比特值為O的數據編碼為比特10,將比特徵值為1的數據編碼為比特01 ;2)利用比特平衡編碼後的數據進行密碼運算,設密碼算法為η比特分組密碼算法;其中a)對於密碼運算中的比特異或操作,首先將Encode(An)與一比特串(10)Γ··(10)η 行異或操作,然後將得到的異或值與Encode(Bn)進行異或操作;Encode (An)為η比特數據 A經比特平衡編碼後的值,Encode (Bn)為η比特數據B經比特平衡編碼後的值;b)對於密碼運算中的比特置換操作,將編碼後的第2i,2i+l兩個比特與第2j,2j+l兩個比特進行置換;其中,i、j分別為編碼前需要置換的第i、j比特;c)對於密碼運算中的比特循環移位操作,將比特平衡編碼後的數據進行an比特循環移位,其中,m為編碼前要進行的比特循環移位數;3)對步驟幻運算的輸出值進行解碼,即以順序輸出的兩比特為一組,取每組後一比特的值作為輸出值。
7.如權利要求6所述的方法,其特徵在於設需保護的密碼運算輪序列為M,所述輸入值為密碼算法中第N輪的密碼運算中間值。
8.如權利要求6或7所述的方法,其特徵在於對於密碼運算中的S盒代換操作,如果輸入S盒的數據是比特平衡編碼,則首先對S盒查找表進行變換,生成新的S盒查找表S',使得S' [Encode(An)] =Encode (S [An]);然後根據輸入數據查找表S',得到S盒代換操作輸出數據;其中,Encode表示對數據進行比特平衡編碼的操作,S[An]表示以An作為輸入得到的S盒代換操作的輸出,An表示η比特未經編碼的數據。
9.如權利要求6或7所述的方法,其特徵在於如果輸入S盒的數據是未經過編碼的數據,則首先計算新的S盒查找表S",使得S" [An] =Encode (S [An]),之後根據S"進行S 盒查表操作。
10.如權利要求6所述的方法,其特徵在於所述數據A、B可以為任意比特長度。
全文摘要
本發明公開了一種用於防禦能量分析攻擊的密碼算法實現保護方法,屬於信息技術安全領域。本方法通過對密碼算法的執行過程添加適當的編碼和解碼步驟完成對密碼算法中間值的保護,首先,在算法開始之前,對所有參加運算的數據,包括明文、密鑰以及可能的初始向量做編碼操作;之後在算法運行過程中使用編碼後的數據與對應的操作,按照密碼算法的步驟進行密碼計算,完成加解密過程;在算法結束時,對編碼後的結果數據進行解碼操作,得到算法正常的輸出。本方法只是對密碼算法的中間值進行了編碼以保證其不洩露信息,並不改變算法的輸入與輸出,保證算法運行結果正確;同時可以獲得比掩碼防禦措施更高的安全性,性能開銷也更小。
文檔編號H04L9/08GK102571331SQ20121002685
公開日2012年7月11日 申請日期2012年2月7日 優先權日2012年2月7日
發明者劉繼業, 周永彬, 韓陽 申請人:中國科學院軟體研究所

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀