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