《一種分組密碼防攻擊的加解密方法和裝置》是國家電網公司、北京南瑞智芯微電子科技有限公司於2014年8月6日申請的發明專利,該專利申請號為2014103845921,公布號為CN105376046A,公布日為2016年3月2日,發明人是趙東艷、杜新綱、於艷艷、胡曉波、李娜、甘傑。
《一種分組密碼防攻擊的加解密方法和裝置》公開了一種分組密碼防攻擊的加解密的方法和裝置,其中,該加密方法包括:接收需加密的明文P,對明文P進行兩次正常加密運算,輸出正確加密結果;在進行正常加密運算時,正常加密運算過程被一次或兩次注入故障,輸出錯誤加密結果;正確加密結果和錯誤加密結果輸入F函式後,輸出攻擊者無法利用的無效結果。該發明實施例在進行第一次和/或第二次正常加密運算時被注入故障,並兩次輸出的加密結果輸入到F函式中,減少了將兩次正常加密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法加密過程的安全性。
2021年6月24日,《一種分組密碼防攻擊的加解密方法和裝置》獲得第二十二屆中國專利優秀獎。
(概述圖為《一種分組密碼防攻擊的加解密方法和裝置》摘要附圖)
基本介紹
- 中文名:一種分組密碼防攻擊的加解密方法和裝置
- 申請人:國家電網公司、北京南瑞智芯微電子科技有限公司
- 發明人:趙東艷、杜新綱、於艷艷、胡曉波、李娜、甘傑
- 申請號:2014103845921
- 申請日:2014年8月6日
- 公布號:CN105376046A
- 公布日:2016年3月2日
- 地址:北京市西城區西長安街86號
- 代理機構:北京中譽威聖智慧財產權代理有限公司
- 代理人:郭振興、王正茂
- Int. Cl.:H04L9/00、H04L9/06
- 類別:發明專利
專利背景,發明內容,專利目的,技術方案,改善效果,附圖說明,技術領域,權利要求,實施方式,專利榮譽,
專利背景
隨著計算機和通信技術的發展,用戶對信息的安全存儲、安全處理和安全傳輸的需求越來越強烈。特別地,隨著Internet的廣泛套用,信息安全問題顯得越來越重要。解決上述問題的有效手段之一是使用現代密碼技術,各種密碼算法不斷出現。分組密碼算法是一種最常用的加密手段,分組密碼算法具有速度快、易於標準化和便於軟硬體實現等特點,通常是信息安全中實現數據加密、訊息鑑別和認證的核心密碼算法。2014年8月前,比較流行的分組密碼算法包括DES算法、AES算法等。
隨著信息安全問題受到人們的關注,對密碼算法的各種分析和攻擊方法也不斷出現。故障攻擊是2014年8月前出現的一種強有力的攻擊方法。它的基本原理是將密碼晶片置於強磁場中,或者改變晶片的電源電壓、工作頻率、溫度等,使密碼晶片中的暫存器、存儲器在加解密過程中產生隨機錯誤,某些輸出比特從原來的0變成1或1變成0。通過對正確密碼輸出和錯誤密碼輸出的差分比較,經過理論分析,就可得出晶片內部的密碼數據信息。
分組密碼常見的防故障攻擊的方法包括:對同一數據進行多次運算,比較多次運算的結果是否一致;對某數據進行正常運算後,對運算結果進行逆運算,比較逆運算結果與原始輸入數據是否一致。
如圖1所示,如果攻擊者在對明文P進行第一次正常運算時注入故障,那么該第一次正常運算輸出的結果C即為錯誤的結果,對明文P進行第二次正常運算時輸出的結果C’為正確的結果,此時;然後將結果C與結果C’進行比較,即判定C與C’是否相等,並在該結果比較時再次注入故障,由於故障的注入,存在將“”攻擊成“”的可能。如果注入故障將“”攻擊成“”,則比較結果輸出為錯誤結果C(或C’)。攻擊者獲得該錯誤結果C(或C’),加上另外之前已獲得的正確結果C’,就能夠獲得有用的故障信息,從而獲得敏感信息。
同理,如果攻擊者在對明文P進行第一次正常運算時未注入故障,對明文P進行第二次正常運算時注入故障,與上述情況類似,攻擊者仍就能夠獲得錯誤結果C’(或C),加上另外之前已獲得的正確結果C,就能夠獲得有用的故障信息,從而獲得敏感信息。
發明內容
專利目的
《一種分組密碼防攻擊的加解密方法和裝置》的目的是為了克服2014年8月前已有技術中分組密碼在防止攻擊時安全性較低的缺陷,根據該發明的一個方面,提出一種分組密碼防攻擊的加密方法;根據該發明的另一個方面,提出一種分組密碼防攻擊的加密裝置;根據該發明的再一個方面,提出一種分組密碼防攻擊的解密方法;根據該發明的又一個方面,提出一種分組密碼防攻擊的解密裝置。
技術方案
根據《一種分組密碼防攻擊的加解密方法和裝置》實施例的分組密碼防攻擊的加密方法,包括:接收需加密的明文P,對明文P進行兩次正常加密運算,輸出正確加密結果;在進行正常加密運算時,正常加密運算過程被一次或兩次注入故障,輸出錯誤加密結果;正確加密結果和錯誤加密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
根據《一種分組密碼防攻擊的加解密方法和裝置》實施例的分組密碼防攻擊的加密裝置,包括:加密運算模組,用於接收需加密的明文P,對明文P進行兩次正常加密運算,輸出正確加密結果;故障接收模組,用於在進行正常加密運算時,接收正常加密運算過程被一次或兩次注入的故障,輸出錯誤加密結果;結果輸出模組,用於正確加密結果和錯誤加密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
根據《一種分組密碼防攻擊的加解密方法和裝置》實施例的分組密碼防攻擊的解密方法,包括:接收需解密的密文P,對密文P進行兩次正常解密運算,輸出正確解密結果;在進行正常解密運算時,正常加密運算過程被一次或兩次注入故障,輸出錯誤解密結果;正確解密結果和錯誤解密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
根據《一種分組密碼防攻擊的加解密方法和裝置》實施例的分組密碼防攻擊的解密裝置,包括:解密運算模組,用於接收需解密的密文P,對密文P進行兩次正常解密運算,輸出正確解密結果;故障接收模組,用於在進行正常解密運算時,接收正常加密運算過程被一次或兩次注入的故障,輸出錯誤解密結果;結果輸出模組,用於正確解密結果和錯誤解密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
改善效果
《一種分組密碼防攻擊的加解密方法和裝置》實施例公開了一種分組密碼防攻擊的加密方法和裝置,在進行第一次和/或第二次正常加密運算時被注入故障,並將第一次正常加密運算輸出的加密結果與第二次正常加密運算輸出的加密結果輸入到F函式中,減少了將兩次正常加密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法加密過程的安全性。
《一種分組密碼防攻擊的加解密方法和裝置》實施例公開了一種分組密碼防攻擊的解密方法和裝置,在進行第一次和/或第二次正常解密運算時被注入故障,並將第一次正常解密運算輸出的解密結果與第二次正常解密運算輸出的解密結果輸入到F函式中,減少了將兩次正常解密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法解密過程的安全性。
附圖說明
圖1為2014年8月前已有技術中對分組密碼進行故障攻擊的流程故障攻擊的流程示意圖;
圖2為《一種分組密碼防攻擊的加解密方法和裝置》分組密碼防攻擊的加密方法實施例1的流程圖;
圖3為該發明分組密碼防攻擊的加密方法實施例2的流程圖;
圖4為該發明分組密碼防攻擊的加密方法實施例3的流程圖;
圖5為該發明分組密碼防攻擊的加密方法實施例4的流程圖;
圖6為該發明分組密碼防攻擊的解密方法實施例1的流程圖;
圖7為該發明分組密碼防攻擊的解密方法實施例2的流程圖;
圖8為該發明分組密碼防攻擊的解密方法實施例3的流程圖;
圖9為該發明分組密碼防攻擊的解密方法實施例4的流程圖;
圖10為該發明分組密碼防攻擊的加密裝置實施例的結構圖;
圖11為該發明分組密碼防攻擊的解密裝置實施例的結構圖。
技術領域
《一種分組密碼防攻擊的加解密方法和裝置》涉及通信領域中信息安全技術領域,具體地,涉及分組密碼防攻擊的加解密的方法和裝置。
權利要求
1.一種分組密碼防攻擊的加密方法,其特徵在於,包括:接收需加密的明文P,對所述明文P進行兩次正常加密運算,輸出正確加密結果;在進行所述正常加密運算時,所述正常加密運算過程被一次或兩次注入故障,輸出錯誤加密結果;所述正確加密結果和錯誤加密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
2.根據權利要求1所述的方法,其特徵在於,在所述兩次正常加密運算中,第一次正常加密運算的加密結果為C,第二次正常加密運算的加密結果為C’,所述C由L和R兩部分組成,所述C’由L’和R’兩部分組成,即,,所述F函式定義為:或或。
3.根據權利要求1或2所述的方法,其特徵在於,所述在進行正常加密運算時,所述正常加密運算過程被一次或兩次注入故障,輸出錯誤加密結果的步驟具體包括:在對所述明文P進行第一次正常加密運算時,本次正常加密運算被注入故障,輸出錯誤加密結果;在對所述明文P進行第二次正常加密運算時,輸出正確加密結果。
4.根據權利要求1或2所述的方法,其特徵在於,所述在進行正常加密運算時,所述正常加密運算過程被一次或兩次注入故障,輸出錯誤加密結果的步驟具體還包括:在對所述明文P進行第一次正常加密運算時,輸出正確加密結果;在對所述明文P進行第二次正常加密運算時,本次正常加密運算被注入故障,輸出錯誤加密結果。
5.根據權利要求1或2所述的方法,其特徵在於,所述在進行正常加密運算時,所述正常加密運算過程被一次或兩次注入故障,輸出錯誤加密結果的步驟具體還包括:在對所述明文P進行第一次正常加密運算時,本次正常加密運算被注入故障,輸出錯誤加密結果;在對所述明文P進行第二次正常加密運算時,本次正常加密運算被注入故障,輸出錯誤加密結果。
6.一種分組密碼防攻擊的解密方法,其特徵在於,包括:接收需解密的密文P,對所述密文P進行兩次正常解密運算,輸出正確解密結果;在進行所述正常解密運算時,所述正常解密運算過程被一次或兩次注入故障,輸出錯誤解密結果;所述正確解密結果和錯誤解密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
7.根據權利要求6所述的方法,其特徵在於,在所述兩次正常解密運算中,第一次正常解密運算的解密結果為C,第二次正常解密運算的解密結果為C’,所述C由L和R兩部分組成,所述C’由L’和R’兩部分組成,即,,所述F函式定義為:或或。
8.根據權利要求6或7所述的方法,其特徵在於,所述在進行正常解密運算時,所述正常加密運算過程被一次或兩次注入故障,輸出錯誤解密結果的步驟具體包括:在對所述密文P進行第一次正常解密運算時,本次正常解密運算被注入故障,輸出錯誤解密結果;在對所述密文P進行第二次正常解密運算時,輸出正確解密結果。
9.根據權利要求6或7所述的方法,其特徵在於,所述在進行正常解密運算時,所述正常加密運算過程被一次或兩次注入故障,輸出錯誤解密結果的步驟具體還包括:在對所述密文P進行第一次正常解密運算時,輸出正確解密結果;在對所述密文P進行第二次正常解密運算時,本次正常解密運算被注入故障,輸出錯誤解密結果。
10.根據權利要求6或7所述的方法,其特徵在於,所述在進行正常解密運算時,所述正常加密運算過程被一次或兩次注入故障,輸出錯誤解密結果的步驟具體還包括:在對所述密文P進行第一次正常解密運算時,本次正常解密運算被注入故障,輸出錯誤解密結果;在對所述密文P進行第二次正常解密運算時,本次正常解密運算被注入故障,輸出錯誤解密結果。
11.一種分組密碼防攻擊的加密裝置,其特徵在於,包括:加密運算模組,用於接收需加密的明文P,對所述明文P進行兩次正常加密運算,輸出正確加密結果;故障接收模組,用於在進行所述正常加密運算時,接收所述正常加密運算過程被一次或兩次注入的故障,輸出錯誤加密結果;結果輸出模組,用於正確加密結果和錯誤加密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
12.根據權利要求11所述的裝置,其特徵在於,在所述加密運算模組的兩次正常加密運算中,第一次正常加密運算的加密結果為C,第二次正常加密運算的加密結果為C’,所述C由L和R兩部分組成,所述C’由L’和R’兩部分組成,即,,所述結果輸出模組中的F函式定義為:或或。
13.根據權利要求11或12所述的裝置,其特徵在於,所述故障接收模組具體用於,在對所述明文P進行第一次正常加密運算時,接收本次正常加密運算被注入的故障,輸出錯誤加密結果;在對所述明文P進行第二次正常加密運算時,輸出正確加密結果。
14.根據權利要求11或12所述的裝置,其特徵在於,所述故障接收模組具體還用於,在對所述明文P進行第一次正常加密運算時,輸出正確加密結果;在對所述明文P進行第二次正常加密運算時,接收本次正常加密運算被注入的故障,輸出錯誤加密結果。
15.根據權利要求11或12所述的裝置,其特徵在於,所述故障接收模組具體還用於,在對所述明文P進行第一次正常加密運算時,接收本次正常加密運算被注入的故障,輸出錯誤加密結果;在對所述明文P進行第二次正常加密運算時,接收本次正常加密運算被注入的故障,輸出錯誤加密結果。
16.一種分組密碼防攻擊的解密裝置,其特徵在於,包括:解密運算模組,用於接收需解密的密文P,對所述密文P進行兩次正常解密運算,輸出正確解密結果;故障接收模組,用於在進行所述正常解密運算時,接收所述正常解密運算過程被一次或兩次注入的故障,輸出錯誤解密結果;結果輸出模組,用於正確解密結果和錯誤解密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
17.根據權利要求16所述的裝置,其特徵在於,在所述解密運算模組的兩次正常解密運算中,第一次正常解密運算的解密結果為C,第二次正常解密運算的解密結果為C’,所述C由L和R兩部分組成,所述C’由L’和R’兩部分組成,即,,所述結果輸出模組中的F函式定義為:或或。
18.根據權利要求16或17所述的裝置,其特徵在於,所述故障接收模組具體用於,在對所述密文P進行第一次正常解密運算時,接收本次正常解密運算被注入的故障,輸出錯誤解密結果;在對所述密文P進行第二次正常解密運算時,輸出正確解密結果。
19.根據權利要求16或17所述的裝置,其特徵在於,所述故障接收模組具體還用於,在對所述密文P進行第一次正常解密運算時,輸出正確解密結果;在對所述密文P進行第二次正常解密運算時,接收本次正常解密運算被注入的故障,輸出錯誤解密結果。
20.根據權利要求16或17所述的裝置,其特徵在於,所述故障接收模組具體還用於,在對所述密文P進行第一次正常解密運算時,接收本次正常解密運算被注入的故障,輸出錯誤解密結果;在對所述密文P進行第二次正常解密運算時,接收本次正常解密運算被注入的故障,輸出錯誤解密結果。
實施方式
《一種分組密碼防攻擊的加解密方法和裝置》的發明人在分析和研究2014年8月前已有技術中發現,在運行分組密碼算法進行加密或解密運算過程中,如果檢測到有故障注入,晶片不宜輸出錯誤的運算結果,否則攻擊者就可以利用錯誤的運算結果進行差分故障攻擊。該發明實施例提供了一種分組密碼防攻擊的方法,當運算過程中有故障注入時不輸出錯誤運算結果,而是輸出對於攻擊者來說無法利用的無效結果。
如果第一次正常運算未被注入故障,第二次正常運算被注入故障,該無效結果是正確的第一次正常運算結果C與錯誤的第二次正常運算結果C’經過某個F函式處理後的運算結果。
如果第一次正常運算被注入故障,第二次正常運算未被注入故障,該無效結果是錯誤的第一次正常運算結果C與正確的第二次正常運算結果C’經過某個F函式處理後的運算結果。
如果第一次正常運算被注入故障,第二次正常運算也被注入故障,該無效結果是錯誤的第一次正常運算結果C與錯誤的第二次正常運算結果C’經過某個F函式處理後的運算結果。
如圖2所示,該發明實施例公開了一種分組密碼防攻擊的加密方法,包括:步驟201:明文P輸入到加密模組中,進行第一次正常加密運算,同時,該步驟被注入故障,故輸出的是錯誤加密結果C;步驟203:同一明文P再次輸入到加密模組中,進行第二次正常加密運算,輸出的是正確加密結果C’;步驟205:將步驟201中的錯誤加密結果C和步驟203中的正確加密結果C’輸入F函式,該函式的輸出為Y;F函式通過判定得知,,故輸出運算結果為攻擊者無法利用的無效結果;對於不同的分組算法,F函式的表達式不同,《一種分組密碼防攻擊的加解密方法和裝置》以下列表達式進行實施例說明,但F函式的表達式應不限於下列表達式。
以DES算法為例,加密結果C由L和R兩部分組成,加密結果C’由L’和R’兩部分組成,即,,則F函式可以定義為:或或。
在步驟205中,F函式既可以被注入故障,也可以不被注入故障。由於上述F函式的存在,故無論是否被注入故障,上述F函式輸出的運算結果都為攻擊者無法利用的無效結果。
步驟207:對明文P進行加密運算,輸出攻擊者無法利用的無效結果Y。
圖2的實施例公開了一種分組密碼防攻擊的加密方法,在進行第一次正常加密運算時被注入故障,並將被注入故障的第一次正常加密運算輸出的錯誤加密結果與第二次正常加密運算輸出的正確加密結果輸入到F函式中,減少了將兩次正常加密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法加密過程的安全性。
如圖3所示,該發明實施例公開了另一種分組密碼防攻擊的加密方法,包括:步驟301:明文P輸入到加密模組中,進行第一次正常加密運算,輸出的是正確加密結果C;步驟303:同一明文P再次輸入到加密模組中,進行第二次正常加密運算,同時,該步驟被注入故障,故輸出的是錯誤加密結果C’;步驟305:將步驟301中的正確加密結果C和步驟303中的錯誤加密結果C’輸入F函式,該函式的輸出為Y;F函式通過判定得知,,故輸出運算結果為攻擊者無法利用的無效結果;對於不同的分組算法,F函式的表達式不同。
以DES算法為例,加密結果C由L和R兩部分組成,加密結果C’由L’和R’兩部分組成,即,,則F函式可以定義為:或或。
在步驟305中,F函式既可以被注入故障,也可以不被注入故障。由於上述F函式的存在,故無論是否被注入故障,上述F函式輸出的運算結果都為攻擊者無法利用的無效結果。
步驟307:對明文P進行加密運算,輸出攻擊者無法利用的無效結果Y。
圖3的實施例公開了一種分組密碼防攻擊的加密方法,在進行第二次正常加密運算時被注入故障,並將被注入故障的第二次正常加密運算輸出的錯誤加密結果與第一次正常加密運算輸出的正確加密結果輸入到F函式中,減少了將兩次正常加密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法加密過程的安全性。
如圖4所示,該發明實施例公開了第三種分組密碼防攻擊的加密方法,包括:步驟401:明文P輸入到加密模組中,進行第一次正常加密運算,同時,該步驟被注入故障,故輸出的是錯誤加密結果C;步驟403:同一明文P再次輸入到加密模組中,進行第二次正常加密運算,同時,該步驟被注入故障,故輸出的也是錯誤加密結果C’;步驟405:將步驟401中的錯誤加密結果C和步驟403中的錯誤加密結果C’輸入F函式,該函式的輸出為Y;F函式通過判定得知,,故輸出運算結果為攻擊者無法利用的無效結果;對於不同的分組算法,F函式的表達式不同。
以DES算法為例,加密結果C由L和R兩部分組成,加密結果C’由L’和R’兩部分組成,即,,則F函式可以定義為:或或。
在步驟405中,F函式既可以被注入故障,也可以不被注入故障。由於上述F函式的存在,故無論是否被注入故障,上述F函式輸出的運算結果都為攻擊者無法利用的無效結果。
步驟407:對明文P進行加密運算,輸出攻擊者無法利用的無效結果Y。
圖4的實施例公開了第三種分組密碼防攻擊的加密方法,在進行第一次和第二次正常加密運算時都被注入故障,並將被注入故障的第一次正常加密運算輸出的錯誤加密結果與同樣被注入故障的第二次正常加密運算輸出的錯誤加密結果輸入到F函式中,減少了將兩次正常加密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法加密過程的安全性。
如圖5所示,該發明實施例公開了第四種分組密碼防攻擊的加密方法,包括:步驟501:明文P輸入到加密模組中,進行第一次正常加密運算,輸出的是正確加密結果C;步驟503:同一明文P再次輸入到加密模組中,進行第二次正常加密運算,輸出的也是正確加密結果C’;步驟505:將步驟501中的正確加密結果C和步驟503中的正確加密結果C’輸入F函式,該函式的輸出為Y;F函式通過判定得知,,故輸出運算結果為正確的加密運算結果;在步驟505中,F函式既可以被注入故障,也可以不被注入故障。如果F函式未被注入故障,F函式輸出的運算結果為正確的加密運算結果,如果F函式被注入故障,如上述實施例一樣,F函式同樣將輸出攻擊者無法利用的無效結果。
步驟507:對明文P進行加密運算,輸出正確的加密運算結果。
圖5的實施例公開了一種分組密碼防攻擊的加密方法,在進行兩次正常加密運算時都未被注入故障,並將兩次正常加密運算的正確加密結果輸入到F函式中,由F函式輸出正確的加密運算結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法加密過程的安全性。
如圖6所示,該發明實施例公開了一種分組密碼防攻擊的解密方法,包括:步驟601:密文P輸入到解密模組中,進行第一次正常解密運算,同時,該步驟被注入故障,故輸出的是錯誤解密結果C;步驟603:同一密文P再次輸入到解密模組中,進行第二次正常解密運算,輸出的是正確解密結果C’;步驟605:將步驟601中的錯誤解密結果C和步驟603中的正確解密結果C’輸入F函式,該函式的輸出為Y;F函式通過判定得知,,故輸出運算結果為攻擊者無法利用的無效結果;對於不同的分組算法,F函式的表達式不同,《一種分組密碼防攻擊的加解密方法和裝置》以下列表達式進行實施例說明,但F函式的表達式應不限於下列表達式。
以DES算法為例,解密結果C由L和R兩部分組成,解密結果C’由L’和R’兩部分組成,即,,則F函式可以定義為:或或。
在步驟605中,F函式既可以被注入故障,也可以不被注入故障。由於上述F函式的存在,故無論是否被注入故障,上述F函式輸出的運算結果都為攻擊者無法利用的無效結果。
步驟607:對密文P進行解密運算,輸出攻擊者無法利用的無效結果Y。
圖6的實施例公開了一種分組密碼防攻擊的解密方法,在進行第一次正常解密運算時被注入故障,並將被注入故障的第一次正常解密運算輸出的錯誤解密結果與第二次正常解密運算輸出的正確解密結果輸入到F函式中,減少了將兩次正常解密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法解密過程的安全性。
如圖7所示,該發明實施例公開了另一種分組密碼防攻擊的解密方法,包括:步驟701:密文P輸入到解密模組中,進行第一次正常解密運算,輸出的是正確解密結果C;步驟703:同一密文P再次輸入到解密模組中,進行第二次正常解密運算,同時,該步驟被注入故障,故輸出的是錯誤解密結果C’;步驟705:將步驟701中的正確解密結果C和步驟703中的錯誤解密結果C’輸入F函式,該函式的輸出為Y;F函式通過判定得知,,故輸出運算結果為攻擊者無法利用的無效結果;對於不同的分組算法,F函式的表達式不同,《一種分組密碼防攻擊的加解密方法和裝置》以下列表達式進行實施例說明,但F函式的表達式應不限於下列表達式。
以DES算法為例,解密結果C由L和R兩部分組成,解密結果C’由L’和R’兩部分組成,即,,則F函式可以定義為:或或。
在步驟705中,F函式既可以被注入故障,也可以不被注入故障。由於上述F函式的存在,故無論是否被注入故障,上述F函式輸出的運算結果都為攻擊者無法利用的無效結果。
步驟707:對密文P進行解密運算,輸出攻擊者無法利用的無效結果Y。
圖7的實施例公開了一種分組密碼防攻擊的解密方法,在進行第二次正常解密運算時被注入故障,並將被注入故障的第二次正常解密運算輸出的錯誤解密結果與第一次正常解密運算輸出的正確解密結果輸入到F函式中,減少了將兩次正常解密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法解密過程的安全性。
如圖8所示,該發明實施例公開了第三種分組密碼防攻擊的解密方法,包括:步驟801:密文P輸入到解密模組中,進行第一次正常解密運算,同時,該步驟被注入故障,故輸出的是錯誤解密結果C;步驟803:同一密文P再次輸入到解密模組中,進行第二次正常解密運算,同時,該步驟被注入故障,故輸出的是錯誤解密結果C’;步驟805:將步驟801中的錯誤解密結果C和步驟803中的錯誤解密結果C’輸入F函式,該函式的輸出為Y;F函式通過判定得知,,故輸出運算結果為攻擊者無法利用的無效結果;對於不同的分組算法,F函式的表達式不同,《一種分組密碼防攻擊的加解密方法和裝置》以下列表達式進行實施例說明,但F函式的表達式應不限於下列表達式。
以DES算法為例,解密結果C由L和R兩部分組成,解密結果C’由L’和R’兩部分組成,即,,則F函式可以定義為:或或。
在步驟805中,F函式既可以被注入故障,也可以不被注入故障。由於上述F函式的存在,故無論是否被注入故障,上述F函式輸出的運算結果都為攻擊者無法利用的無效結果。
步驟807:對明文P進行解密運算,輸出攻擊者無法利用的無效結果Y。
圖8的實施例公開了第三種分組密碼防攻擊的解密方法,在進行第一次和第二次正常解密運算時都被注入故障,並將被注入故障的第一次正常解密運算輸出的錯誤解密結果與同樣被注入故障的第二次正常解密運算輸出的錯誤解密結果輸入到F函式中,減少了將兩次正常解密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法解密過程的安全性。
如圖9所示,該發明實施例公開了第四種分組密碼防攻擊的解密方法,包括:步驟901:密文P輸入到解密模組中,進行第一次正常解密運算,輸出的是正確解密結果C;步驟903:同一密文P再次輸入到解密模組中,進行第二次正常解密運算,輸出的也是正確解密結果C’;步驟905:將步驟901中的正確解密結果C和步驟903中的正確解密結果C’輸入F函式,該函式的輸出為Y;F函式通過判定得知,,故輸出運算結果為正確的解密運算結果;
對於不同的分組算法,F函式的表達式不同,《一種分組密碼防攻擊的加解密方法和裝置》以下列表達式進行實施例說明,但F函式的表達式應不限於下列表達式。
以DES算法為例,解密結果C由L和R兩部分組成,解密結果C’由L’和R’兩部分組成,即,,則F函式可以定義為:或或。
在步驟905中,F函式既可以被注入故障,也可以不被注入故障。如果F函式未被注入故障,F函式輸出的運算結果為正確的加密運算結果,如果F函式被注入故障,如上述實施例一樣,F函式同樣將輸出攻擊者無法利用的無效結果。
步驟907:對密文P進行解密運算,輸出正確的解密運算結果。
圖9的實施例公開了一種分組密碼防攻擊的解密方法,在進行兩次正常解密運算時都未被注入故障,並將兩次正常解密運算的正確解密結果輸入到F函式中,由F函式輸出正確的解密運算結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法解密過程的安全性。
如圖10所示,公開了一種分組密碼防攻擊的加密裝置,包括:加密運算模組10,用於接收需加密的明文P,對明文P進行兩次正常加密運算,輸出正確加密結果;故障接收模組20,用於在進行正常加密運算時,接收正常加密運算過程被一次或兩次注入的故障,輸出錯誤加密結果;結果輸出模組30,用於正確加密結果和錯誤加密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
其中:在加密運算模組10的兩次正常加密運算中,第一次正常加密運算的加密結果為C,第二次正常加密運算的加密結果為C’,C由L和R兩部分組成,C’由L’和R’兩部分組成,即,,結果輸出模組30中的F函式定義為:或或。
其中:故障接收模組20具體用於,在對明文P進行第一次正常加密運算時,接收本次正常加密運算被注入的故障,輸出錯誤加密結果;在對明文P進行第二次正常加密運算時,輸出正確加密結果。
其中:故障接收模組20具體還用於,在對明文P進行第一次正常加密運算時,輸出正確加密結果;在對明文P進行第二次正常加密運算時,接收本次正常加密運算被注入的故障,輸出錯誤加密結果。
其中:故障接收模組20具體還用於,在對明文P進行第一次正常加密運算時,接收本次正常加密運算被注入的故障,輸出錯誤加密結果;在對明文P進行第二次正常加密運算時,接收本次正常加密運算被注入的故障,輸出錯誤加密結果。
圖10的實施例公開了一種分組密碼防攻擊的加密裝置,在進行第一次和/或第二次正常加密運算時被注入故障,並將第一次正常加密運算輸出的加密結果與第二次正常加密運算輸出的加密結果輸入到F函式中,減少了將兩次正常加密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法加密過程的安全性。
如圖11所示,公開了一種分組密碼防攻擊的解密裝置,包括:解密運算模組40,用於接收需解密的密文P,對密文P進行兩次正常解密運算,輸出正確解密結果;故障接收模組50,用於在進行正常解密運算時,接收正常加密運算過程被一次或兩次注入的故障,輸出錯誤解密結果;結果輸出模組60,用於正確解密結果和錯誤解密結果輸入F函式後,輸出攻擊者無法利用的無效結果。
其中:在解密運算模組40的兩次正常解密運算中,第一次正常解密運算的解密結果為C,第二次正常解密運算的解密結果為C’,C由L和R兩部分組成,C’由L’和R’兩部分組成,即,,結果輸出模組60中的F函式定義為:或或。
其中:故障接收模組50具體用於,在對密文P進行第一次正常解密運算時,接收本次正常解密運算被注入的故障,輸出錯誤解密結果;在對密文P進行第二次正常解密運算時,輸出正確解密結果。
其中:故障接收模組50具體還用於,在對密文P進行第一次正常解密運算時,輸出正確解密結果;在對密文P進行第二次正常解密運算時,接收本次正常解密運算被注入的故障,輸出錯誤解密結果。
其中:故障接收模組50具體還用於,在對密文P進行第一次正常解密運算時,接收本次正常解密運算被注入的故障,輸出錯誤解密結果;在對密文P進行第二次正常解密運算時,接收本次正常解密運算被注入的故障,輸出錯誤解密結果。
圖11的實施例公開了一種分組密碼防攻擊的解密裝置,在進行第一次和/或第二次正常解密運算時被注入故障,並將第一次正常解密運算輸出的解密結果與第二次正常解密運算輸出的解密結果輸入到F函式中,減少了將兩次正常解密運算結果進行比較的步驟,最後由F函式輸出攻擊者無法利用的無效結果,有效的抵抗了對分組密碼算法的雙點攻擊,提高了分組密碼算法解密過程的安全性。
專利榮譽
2021年6月24日,《一種分組密碼防攻擊的加解密方法和裝置》獲得第二十二屆中國專利優秀獎。