摘要:可重構密碼芯片提高了密碼芯片的安全性和靈活性,具有良好的應用前景,但其處理速度較ASIC實現的專用密碼芯片卻有很大程度的下降。在此分析AES和SMS4密碼算法的可重構性,利用流水線、并行處理和可重構技術,提出了一種可重構體系結構。基于該體系結構實現的AES和SMS4算法較其他同類設計相比,在資源規模相當的情況下,處理速度有了較大的提高。
關鍵詞:可重構體系結構;AES算法;SMS4算法;密碼芯片
中圖分類號:TN91134文獻標識碼:A文章編號:1004373X(2012)18006403
引言
密碼技術是信息安全的核心技術,在通信安全中扮演著極其重要的地位??芍貥嬅艽a芯片利用可重構的硬件資源,根據不同的應用需求靈活地改變自身硬件結構,為不同的密碼算法提供與之匹配的內部結構和外部特性[1],大大的提高了密碼芯片的靈活性、安全性和擴展性,具有良好的應用前景。與單一密碼算法芯片相比,可重構密碼芯片雖然增強了安全性和靈活性,但是處理速度卻大大降低了。信息技術的飛速發展,對密碼算法的處理速度要求也越來越高,尤其用于數據加/解密的分組密碼算法,其低吞吐率成為安全通信的瓶頸。
AES算法[2]的分組長度和密鑰長度均可變。當密鑰長度為128位,192位和256位時,加密輪數分別為10,12和14,每輪由4個變換組成,依次為字節代替、行移位、列混合及輪密鑰加。最后一輪變換與其他輪略有不同,沒有列混合變換。解密過程與加密過程相反,4個變換為相應加密變換的逆變換。SMS4算法[3],其分組長度和密鑰長度均為128位,加密過程為32輪迭代運算以及最后輸出的反序變換。解密運算和加密運算相同,只是子密鑰使用順序剛好相反。輪運算主要包括32位異或運算、S盒查找表及32位循環左移。
AES和SMS4分別是國際、國內重要的加密算法,研究同時實現AES和SMS4密碼算法的可重構芯片有著重要的意義。本文設計了一種實現AES和SMS4密碼算法的可重構體系結構,它既有較好的安全性和靈活性,又有接近ASIC實現的高速度。
1重構性分析
每一個密碼算法均有一系列的基本操作按照一定的順序連接而成,并且不同密碼算法往往具有相同或相似的操作。要對不同的密碼算法進行可重構設計,必須先提取出相同或相似的操作,并把相同或相似的操作設計為可重構單元,為不同的算法所共用。為適應不同應用需求,通過控制模塊改變可重構單元的內部結構及其連接關系,進而適應不同的密碼算法。分析借鑒文獻[4]對可重構單元進行劃分的方法,對AES和SMS4算法單元劃分得到表1。