本發明屬于密碼電路實現技術領域,特別是涉及一種基于數據冗余實時檢錯機制的循環展開結構AES加/解密電路。
背景技術:AES(AdvancedEncryptionStandard,高級加密標準)是由美國國家標準與技術研究院2001年制定的新一代分組對稱密碼算法,用于取代原來的DES(DataEncryptionStandard,數據加密標準)。AES密碼算法的數據分組長度為128比特,密鑰長度有128,192和256比特三種。AES規定,根據這三種不同的密鑰長度,加密過程分別需要進行10,12和14輪輪變換運算,每一個輪變換運算又包括字節替換,行移位,列混合和密鑰加四個子運算,除了最后一輪。為了消除對稱性,最后一輪輪變換不包含列混合運算,并且在第一輪輪變換運算之前加上一次密鑰加運算。AES解密過程為加密過程的逆過程,因此也分別需要進行10,12和14輪輪變換運算,且每一輪輪變換包括逆字節替換,逆行移位,逆列混合和逆密鑰加四個子運算,除了第一輪。第一輪輪變換不包括逆列混合運算,在最后一輪運算結束后還需要加上一次逆密鑰加運算。根據不同的應用需求,AES采用不同的實現架構。參見圖1,AES加/解密電路實現架構一般可分為兩種:循環展開結構和全展開結構。循環展開結構中使用了Nk(1≤Nk≤Nr,Nr=10/12/14)個輪變換單元(包括獨立的密鑰加運算),與全展開結構相比,循環展開結構需要更小的電路面積,特別是當Nk=1時(Nk=1時又稱為全循環結構),循環展開結構具有最小的電路面積。但循環展開結構需要迭代?Nr/Nk?次才能得到最終結果,因此數據處理速度比較低。循環展開結構用于要求電路面積小、數據速率不高的場合,如無線傳感網,RFID等。循環展開結構還可以根據具體應用需求對電路面積和速度的進行折衷。全展開結構使用了Nr+1個輪變換電路單元,電路面積大,但數據不需要反饋,數據處理速度高。全展開結構還可以通過增加流水線級數的方式來加快數據處理速度。全展開結構適用于高速數據實時處理場合,如實時視頻信號傳輸等。錯誤注入攻擊是一類針對密碼系統旁路攻擊方式,攻擊者通過電磁、激光等手段向密碼硬件電路中注入錯誤,使密碼設備產生錯誤消息,因而使解密方得不到正確的信息認證而拒絕服務,更進一步,攻擊者可以通過差分錯誤分析得到系統密鑰。另外一些極端條件應用環境,如高空環境、深海環境,對設備要求可靠性較高。針對錯誤注入攻擊,以及一些極端條件應用環境對設備高可靠性的要求,傳統的解決方案主要采用結構冗余檢錯機制,即將采用多個相同功能的電路,同時對同一組數據進行處理,并將結果數據進行比較。一個簡單的結構冗余檢錯機制的電路原理框圖如圖2所示,電路1和電路2具有相同的運算功能,電路1和電路2對數據A同時進行處理,比較器對電路1和電路2的輸出結果進行比較,如果電路1和電路2的輸出結果相同,則電路工作正常,如果電路1和電路2的輸出結果不同,則電路工作發生異常。結構冗余檢錯機制需要增加大量冗余電路來實現檢錯功能。
技術實現要素:本發明針對
背景技術:中結構冗余檢錯機制需要增加大量冗余電路來實現檢錯功能的技術問題,提出了一種基于數據冗余實時檢錯機制的循環展開結構AES加/解密電路,用于抵御錯誤注入攻擊和提高AES密碼電路可靠性。本發明為解決上述技術問題所采用的技術方案如下:一種基于數據冗余實時檢錯機制的循環展開結構AES加/解密電路,包括AES加/解密單元和檢測單元,以及數據輸入端口、檢測輸出端口和數據輸出端口;所述AES加/解密單元由Nk個輪變換單元和兩個二選一選擇器構成,所述兩個二選一選擇器分別為第一選擇器、第二選擇器;2≤Nk≤Nr+1,Nr為AES標準所規定的輪變換運算數量;其中,所述數據輸入端口分別與第一選擇器的一個輸入端、第二選擇器的一個輸入端相連接,第一選擇器的另一個輸入端與第Nk輪變換單元的輸出端相連接,第一選擇器的輸出端與第一輪變換單元的輸入端相連接;第一輪變換單元的輸出端與第二選擇器的另一個輸入端相連接,第二選擇器的輸出端與第二輪變換單元的輸入端相連接;第i輪變換單元的輸入端與第i?1輪變換單元的輸出端相連接,第i輪變換單元的輸出端與第i+1輪變換單元的輸入端相連接,其中3≤i≤Nk–1;所有輪變換單元的輸出端都與檢測單元相連接;第m輪變換單元的輸出端還與數據輸出端口相連接,其中m=mod((Nr+1)/Nk)+1;AES加/解密單元在數據處理過程中采用數據冗余處理技術,由相鄰的兩級輪變換單元對每組數據進行兩次相同的運算,檢測單元對兩次運算...