專利名稱:一種適用于mips處理器的aes加密單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集成電路設(shè)計技術(shù)領(lǐng)域,具體涉及一種適用于MIPS處理器的AES加密單元電路。
背景技術(shù):
在當(dāng)代,隨著信息化的不斷深入,越來越多的信息將暴露在公開的媒介中。為了保護(hù)那些敏感信息,各種密碼算法被應(yīng)用到無線網(wǎng)絡(luò)通信領(lǐng)域中。然而,通信設(shè)備尤其是便攜式設(shè)備相對有限的處理能力已無法滿足日益增大的數(shù)據(jù)量的需求。專用集成電路(ASIC)的解決方案可以滿足速度上的要求,但是這種方案缺乏靈活性和可配置性。而通用處理器具有很好的靈活性,但速度較慢。 一種折中的方案可以很好的處理這個問題,那就是在通用處理器中添加能夠高效處理密碼學(xué)運算的專用單元。這種集成了專用加密功能單元的可編程處理器可以很好的應(yīng)付高強(qiáng)度的密碼學(xué)運算。 分組密碼一直是密碼學(xué)中重要的加密技術(shù),被廣泛的應(yīng)用在數(shù)據(jù)的加密傳輸和加密儲存上,它在很多的密碼系統(tǒng)中都處于核心地位。于2001年被美國國家標(biāo)準(zhǔn)和技術(shù)協(xié)會NIST定為美國政府新的加密標(biāo)準(zhǔn)的AES (Advanced Encryption Standard)算法是一種常見的分組密碼算法,其應(yīng)用場合見于諸多安全領(lǐng)域。AES是以塊為單位對數(shù)據(jù)進(jìn)行操作。AES算法允許的數(shù)據(jù)塊和密鑰塊的長度為128, 192或256位,在AES標(biāo)準(zhǔn)算法中采用的數(shù)據(jù)塊長度為128位,密鑰長度可為128, 192或256位。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種適用于MIPS處理器的AES加密單元,能集成于MIPS處理器中,加速AES算法的計算,同時顯著地降低硬件成本。 本發(fā)明提出的適用于MIPS處理器的AES加密單元執(zhí)行密鑰長度為128位, 一次AES運算的時間為3. 78ms,吞吐率達(dá)到33. 9MHz。如采用中芯國際(SMIC)O. 13iim標(biāo)準(zhǔn)CM0S工藝進(jìn)行邏輯綜合,最高時鐘頻率可達(dá)到125MHz,核心電路等效門為18K。
AES算法是一種迭代的算法,每一次迭代可以稱為一輪(Round),本發(fā)明中的專用加密功能單元所采用的數(shù)據(jù)塊長度是實際應(yīng)用中最常見的128位,其加密輪數(shù)為10。 AES算法的加密流程如附圖5所示,其主要運算包括行變換(ShiftRow)、字節(jié)替換(SubByte)和列混合(MixColumn)運算。第1至9輪需要順次經(jīng)過這三種變換運算,而最后一輪不需要進(jìn)行列混合變換。AES解密流程則是加密過程的完全逆過程,即第1輪只進(jìn)行逆行變換和逆字節(jié)替換,第2至10輪每輪都要順次經(jīng)過逆列混合運算、逆行變換和逆字節(jié)替換,如附圖6所示。 下面分別闡述以上幾個基本操作步驟的硬件實現(xiàn)方式 行變換就是將128位輸入數(shù)據(jù)的位置以某種規(guī)律進(jìn)行重新排布以組成一個新的128位數(shù)據(jù),這在硬件電路中就是用簡單的硬連線實現(xiàn)的; 字節(jié)替換單元的實現(xiàn)方法一般有兩種,一是查找表,二是有限域運算。為了減小硬件實現(xiàn)面積,本發(fā)明字節(jié)替換單元采用了有限域計算的方法來實現(xiàn)。即將原本在GF(28)域的求逆計算,轉(zhuǎn)換到GF(24)域?qū)崿F(xiàn)。由于GF(24)域的運算相對簡單,就可以快速而有效的進(jìn)行GF(28)域上的求逆運算。 本發(fā)明中的字節(jié)替換單元既可以進(jìn)行字節(jié)替換運算,也可以進(jìn)行逆字節(jié)替換運
算,由2個多路選擇器來控制其工作模式,整個字節(jié)替換模塊的面積僅為IIK等效門。字節(jié)
替換模塊的結(jié)構(gòu)如附圖2所示,它由映射單元11,逆仿射及映射單元12,第六和第七多選器
13、 17, GF(24)2域上求逆單元14,逆映射單元15,逆映射及仿射單元16組成,其中 映射單元11 ,將GF (28)域上的8位輸入數(shù)據(jù)映射到復(fù)合域GF (24)2上,輸出送入第
六多路選擇器13 ; 逆仿射及映射單元12,它將逆仿射矩陣和映射矩陣合并,在解密時將輸入的8位輸入數(shù)據(jù)進(jìn)行逆仿射運算并且映射到復(fù)合域GF(2"s上,輸出結(jié)果送入第六多路選擇器13 ;
第六多路選擇器13,它的輸入為逆仿射及映射單元12的輸出和映射單元11的輸出,控制信號為模式信號(AES加密、AES解密),根據(jù)模式信號選擇相應(yīng)的輸入作為輸出結(jié)果送入GF (24)2域上求逆單元14,具體說來加密時選擇映射單元的輸出,解密時選擇逆仿射及映射單元的輸出; GF (24)2域上求逆單元14,它將輸入的數(shù)據(jù)在GF (24)2域上求逆,并將輸出結(jié)果送入逆映射單元15和逆映射及仿射單元16中。 逆映射單元15,它將復(fù)合域GF(2Y上的輸入數(shù)據(jù)變換成GF(28)域上的數(shù)據(jù),結(jié)果送入第七多選器17 ; 逆映射及仿射單元16,它將復(fù)合域GF(2Y上的輸入數(shù)據(jù)變換成GF(28)域上的數(shù)據(jù)并且將其進(jìn)行仿射運算,輸出結(jié)果送入第七多路選擇器17中; 第七多路選擇器17,它的輸入為逆映射單元的輸出和逆映射及仿射單元的輸出,控制信號為模式信號,根據(jù)模式信號選擇相應(yīng)的輸入作為輸出結(jié)果,具體說來加密時選擇逆映射及仿射單元的輸出,解密時選擇逆映射單元的輸出。 列混合運算在加密和解密時所乘的矩陣是不同的,如果分別用兩塊硬件來實現(xiàn),那么將提高該模塊總體的硬件成本。為此,本發(fā)明將解密時所乘矩陣拆分兩個矩陣的乘積,如下式所示,其中式子右面的第一個矩陣恰好是加密時所乘的矩陣。這樣解密時的列混合運算就可以拆分為加密時的列混合運算和預(yù)處理運算兩個部分。
{06},}{09}、{03}{01}{01}、、05}{00}{04}{00}、
{09}{0e}辯}{(W}{01}{02}{03}{01}{00}卿{00}{04}闊{09}{Oe}{06}{01}{01}{02}卿{04}{00}{05}{00}
闊{09}{0叱、{03}{01}{01}卿J、{00}{04}{00}{05} J
列混合(解密模式) 列混合(加密) 預(yù)處理 基于以上原理,本發(fā)明中的列混合單元由第八多路選擇器18,列混合矩陣單元19和預(yù)處理單元20組成,其中 第八多路選擇器18,它的輸入為32位的輸入數(shù)據(jù)和預(yù)處理單元20的輸出,控制信號為模式信號,具體來說,加密時選擇32位的輸入數(shù)據(jù),解密時選擇預(yù)處理單元20的輸出作為輸出結(jié)果送入列混合矩陣單元; 列混合矩陣單元19,它將輸入數(shù)據(jù)進(jìn)行列混合運算,輸出作為最后的結(jié)果;
5
預(yù)處理單元20,它的輸入為32位的輸入數(shù)據(jù),經(jīng)過預(yù)處理運算后將結(jié)果送入第八 多路選擇器18。 本發(fā)明中的AES專用加密單元采用兩級流水線結(jié)構(gòu),如附圖1所示該單元由第一、 第二、第三、第四和第五多選器1、3、6、8、10,字節(jié)替換單元2,第一和第二64位寄存器4、9, 異或單元5,列混合單元7組成,其中 第一多路選擇器1,輸入為明文與輪密鑰異或的128位輸出和第一 64位寄存器4 的輸出,根據(jù)控制信號(AES加密、AES解密和運算開始信號),選擇64位輸出到字節(jié)替換單 元; 字節(jié)替換單元2,它將第一多路選擇器1的輸出在有限域上進(jìn)行字節(jié)替換,將替換 后的結(jié)果輸出到第二多路選擇器3、第四多路選擇器8和第五多路選擇器10 ;
第二多路選擇器3,輸入為字節(jié)替換單元2的64位輸出和列混合單元7的64位輸 出,選擇控制信號為模式信號(AES加密、AES解密)。根據(jù)模式信號,加密運算則將字節(jié)替 換單元2的輸出結(jié)果輸入到第一 64位寄存器4 ;解密運算則將列混合單元7的輸出結(jié)果輸 入到第一64位寄存器4中; 第一 64位寄存器4,輸入為第二多路選擇器3的輸出,它將這一結(jié)果擋一拍時鐘再 輸出到第一多路選擇器1和第三多路選擇器6,以減小關(guān)鍵路徑延時;
異或單元5,將明文和輪密鑰異或; 第三多路選擇器6,輸入為明文與輪密鑰異或的128位輸出和第一 64位寄存器的 輸出,選擇控制信號為模式信號(AES加密、AES解密信號)和運算開始信號,選擇64位輸 出到列混合單元; 列混合單元7,它將第三多路選擇器的輸出結(jié)果進(jìn)行列混合運算,運算結(jié)果送入第 二多路選擇器、第四多路選擇器和第五多路選擇器; 第四多路選擇器8,輸入為字節(jié)替換單元的輸出和列混合單元的輸出,控制信號為 模式信號,加密則將列混合單元的結(jié)果送入第二 64位寄存器,解密則將字節(jié)替換單元的結(jié) 果送入第二 64位寄存器; 第二 64位寄存器9,它將每輪中第一個64位的加密結(jié)果儲存,使能信號為運算開 始信號存儲兩個時鐘周期后的脈沖信號; 第五多路選擇器IO,輸入為字節(jié)替換單元的64位輸出、列混合單元的64位輸出、 明文與輪密鑰異或的128位輸出和第二 64位寄存器的鎖存結(jié)果,控制信號為模式信號和異
或判斷信號,異或則直接選擇明文與輪密鑰的異或結(jié)果作為最后輸出,加密則選擇列混合 單元的輸出和第二64位寄存器的鎖存結(jié)果作為最后的輸出,解密則選擇字節(jié)替換單元的 輸出和第二 64位寄存器的鎖存結(jié)果作為最后的輸出。 本發(fā)明中AES加密單元由第一 64位寄存器將整個AES加密單元分為兩級,AES加 密單元內(nèi)部數(shù)據(jù)以64位為基準(zhǔn),由5個多路選擇器(MUX)根據(jù)模式控制信號來控制數(shù)據(jù)在 AES加密單元內(nèi)的流動。選擇2級流水線結(jié)構(gòu)是在芯片面積與速度間的一種折中。
由于字節(jié)替換單元的面積占據(jù)了整個AES加密單元面積中的大部分,因此根據(jù)本 發(fā)明中的字節(jié)替換單元應(yīng)當(dāng)具有較小的面積,并且即可以進(jìn)行字節(jié)替換運算又可以進(jìn)行逆 字節(jié)替換運算。本發(fā)明中的字節(jié)替換單元采用了有限域計算的方法來實現(xiàn),由2個多路選 擇器來控制單元的工作方式,這樣整個字節(jié)替換單元只需要約iooo等效門,大大降低了芯片的面積。 AES單元中的列混合單元也應(yīng)當(dāng)具有比較小的芯片面積,并且即可以進(jìn)行列混合 運算,也可以進(jìn)行逆列混合運算。本發(fā)明中的列混合單元將逆列混合運算拆分為預(yù)處理運 算和列混合運算兩部分,即在逆列混合運算時復(fù)用了列混合運算的模塊,有效降低了硬件 成本。
圖1AES加密單元中字節(jié)替換單元結(jié)構(gòu)圖。
圖2AES加密單元中列混合單元結(jié)構(gòu)圖。
圖3AES加密單元結(jié)構(gòu)圖。 圖4AES加密單元在MIPS處理器中集成方法示意圖。
圖5AES加密流程圖。
圖6AES解密流程圖。 圖中標(biāo)號1為第一多選器,2為字節(jié)替換單元,3為第二多選器,4為第一 64位寄 存器,5為異或門,6為第三多選器,7為列混合單元,8為第四多選器,9為第二 64位寄存器, 10為第五多選器,11為映射單元,12為逆仿射及映射單元,13為第六多選器,14為GF(24)2 域上求逆單元,15為逆映射單元,16為逆映射及仿射單元,17為第七多選器,18為第八多選 器,19為列混合矩陣單元,20為預(yù)處理單元,21為數(shù)據(jù)存儲器,22為數(shù)據(jù)緩存,23為第九多 選器,24為第一寄存器,25為意外控制單元,26為算術(shù)邏輯單元,27為譯碼單元,28為取指 單元,29為指令緩存,30為指令存儲器,31為第二寄存器,32為AES加密單元。
具體實施例方式
本發(fā)明中AES專用加密模塊在MIPS處理器中集成方法如附圖4所示,下面結(jié)合其 他幾個附圖進(jìn)一步描述本發(fā)明。 本發(fā)明具有2種工作模式AES加密和AES解密。因此,本發(fā)明在MIPS處理器中 引入4條專用指令,分別是AES_ld, AES_st, AES_start和AES_st_last。這四條指令都為 原MIPS指令集中所保留而未使用的指令,它們的指令編碼分別為
AES_ld : 111100xx_xxxxxxxx_xxxxxxxx_xxxxxxxx
AES_st : 11110lxx_xxxxxxxx_xxxxxxxx_xxxxxxxx AES_st_last :llllllxx—xxxxxxxx—xxxxxxxx—xxxxxxxx
AES_start : lllllOxx—xxxxxxxx—xxxxxxxx—xxxxxxxx
其中 AESJd指令將數(shù)據(jù)和輪密鑰按順序從數(shù)據(jù)存儲器21中通過數(shù)據(jù)緩存22和多選器 23送入寄存器31中。 AES_start通過譯碼單元27指令給出start脈沖信號,送到AES加密單元,使得 AES加密單元開始工作,同時指令的最后三位給出AES加密單元的工作模式,具體來說
100 :AES加密操作;
101 :AES第IO輪加密;
000 :AES解密操作;
001 :AES第1輪解密;
xlx :異或運算; 在start脈沖信號進(jìn)入AES單元之后,AES單元中的五個多路選擇器根據(jù)工作模 式對數(shù)據(jù)進(jìn)行選擇。 當(dāng)進(jìn)行AES加密操作時,AES—start指令的最后3位為100。 128位明文先與輪密 鑰進(jìn)行異或運算,之后第一多路選擇器1選擇出64位數(shù)據(jù)(行變換在這一步完成)送人字 節(jié)替換模塊2,之后第二多路選擇器3將字節(jié)替換單元2的結(jié)果送到64位寄存器4中,記 這一結(jié)果為statel。 一個周期之后start脈沖消失,這時第一選擇器1選擇另外64位數(shù) 據(jù),并將其送入字節(jié)替換單元,之后第二多路選擇器3將選擇字節(jié)替換的結(jié)果送入64位寄 存器4中,記這一結(jié)果為state2 ;與此同時,statel在時鐘上升沿之后被送入第三多路選擇 器6,選擇器將statel送入列混合模塊中進(jìn)行列混合運算,之后由第四多路選擇器將列混 合運算后的結(jié)果送入第二64位寄存器9中進(jìn)行鎖存,此時start—reg信號為低電平有效信 號。再一個時鐘周期后,state2也將通過64位寄存器被第三多路選擇器6送入列混合模 塊中進(jìn)行列混合運算,結(jié)果送入第五多路選擇器10,同時64位寄存器9也將上一周期的列
混合運算結(jié)果送入第五多路選擇器io,第五多路選擇器將這兩個結(jié)果以字節(jié)為單位重新排
布為一個128位的數(shù)據(jù)后送到輸出,即為本輪最后的加密結(jié)果。如果是最后一輪加密操作, 即AES_Start指令的后三位是101,那么列混合模塊將讓輸入數(shù)據(jù)直接穿過至輸出,而不進(jìn) 行列混合運算。 對于AES解密操作,AES—start指令的最后3位為000。 128位明文先與輪密鑰進(jìn) 行異或運算,之后第三多路選擇器6選擇出64位數(shù)據(jù)(行變換在這一步完成)送入列混合 模塊7,之后第二多路選擇器3將列混合模塊7的結(jié)果送到64位寄存器4中,記這一結(jié)果為 state3。 一個周期之后start脈沖消失,這時第三多路選擇器6選擇另外64位數(shù)據(jù),并將 其送入列混合模塊7,之后第二多路選擇器3將選擇列混合的結(jié)果送入第一 64位寄存器4 中,記這一結(jié)果為state4 ;與此同時,state3在時鐘上升沿之后被送入第一多路選擇器1, 選擇器將state3送入字節(jié)替換模塊2中進(jìn)行逆字節(jié)替換操作,之后由第四多路選擇器8將 逆字節(jié)替換后的結(jié)果送入第二 64位寄存器9中進(jìn)行鎖存,此時start—reg信號為低電平有 效信號。再一個時鐘周期后,state2也將通過64位寄存器被第一路選擇器1入字節(jié)替換模 塊中進(jìn)行運算,結(jié)果送入第五多路選擇器10,同時第二 64位寄存器9也將上一周期的逆字 節(jié)替換運算結(jié)果送入第五多路選擇器IO,第五多路選擇器將這兩個結(jié)果以字節(jié)為單位重新 排布為一個128位的數(shù)據(jù)后送到輸出,即為本輪最后的解密結(jié)果。如果是第一輪解密操作, 即AES_Start指令的后三位是001,那么列選擇模塊將讓輸入數(shù)據(jù)直接穿過至輸出,而不進(jìn) 行列混合運算。 當(dāng)只進(jìn)行密鑰與數(shù)據(jù)的異或運算,即AES_Start的倒數(shù)第二位為1時,第五多路選 擇器將異或門5的輸出直接送到模塊的輸出。 AES加密單元每一輪產(chǎn)生的加解密結(jié)果都以word為單位由AES_st和AES_st_ last指令分四次送回到數(shù)據(jù)存儲器21中,其中AES_st_last指令為最后一次存儲操作,它 將產(chǎn)生一個脈沖信號將AES加解密模塊內(nèi)的一些寄存器狀態(tài)位清0。
8
權(quán)利要求
一種適用于MIPS處理器的AES加密單元,能夠完成AES加/解密運算,米用2級流水線結(jié)構(gòu),其特征在于由第一、第二、第三、第四和第五多選器(1、3、6、8、10),字節(jié)替換單元(2),第一和第二64位寄存器(4、9),異或單元(5),列混合單元(7)組成,其中第一多路選擇器(1),輸入為明文與輪密鑰異或的128位輸出和第一64位寄存器(4)的輸出,根據(jù)控制信號,選擇64位輸出到字節(jié)替換單元;字節(jié)替換單元(2),它將第一多路選擇器(1)的輸出在有限域上進(jìn)行字節(jié)替換,將替換后的結(jié)果輸出到第二多路選擇器(3)、第四多路選擇器(8)和第五多路選擇器(10);第二多路選擇器(3),輸入為字節(jié)替換單元(2)的64位輸出和列混合單元(7)的64位輸出,選擇控制信號為模式信號;根據(jù)模式信號,加密運算則將字節(jié)替換單元(2)的輸出結(jié)果輸入到第一64位寄存器(4);解密運算則將列混合單元(7)的輸出結(jié)果輸入到第一64位寄存器(4)中;第一64位寄存器(4),輸入為第二多路選擇器(3)的輸出,它將這一結(jié)果擋一拍時鐘再輸出到第一多路選擇器(1)和第三多路選擇器(6),以減小關(guān)鍵路徑延時;異或單元(5),將明文和輪密鑰異或;第三多路選擇器(6),輸入為明文與輪密鑰異或的128位輸出和第一64位寄存器的輸出,選擇控制信號為模式信號和運算開始信號,選擇64位輸出到列混合單元;列混合單元(7),它將第三多路選擇器的輸出結(jié)果進(jìn)行列混合運算,運算結(jié)果送入第二多路選擇器、第四多路選擇器和第五多路選擇器;第四多路選擇器(8),輸入為字節(jié)替換單元的輸出和列混合單元的輸出,控制信號為模式信號,加密則將列混合單元的結(jié)果送入第二64位寄存器,解密則將字節(jié)替換單元的結(jié)果送入第二64位寄存器;第二64位寄存器(9),它將每輪中第一個64位的加密結(jié)果儲存,使能信號為運算開始信號存儲兩個時鐘周期后的脈沖信號;第五多路選擇器(10),輸入為字節(jié)替換單元的64位輸出、列混合單元的64位輸出、明文與輪密鑰異或的128位輸出和第二64位寄存器的鎖存結(jié)果,控制信號為模式信號和異或判斷信號,異或則直接選擇明文與輪密鑰的異或結(jié)果作為最后輸出,加密則選擇列混合單元的輸出和第二64位寄存器的鎖存結(jié)果作為最后的輸出,解密則選擇字節(jié)替換單元的輸出和第二64位寄存器的鎖存結(jié)果作為最后的輸出。
2. 根據(jù)權(quán)利要求1所述的適用于MIPS處理器的AES加密單元,其特征在于所述的字 跡替換單元由映射單元(ll),逆仿射及映射單元(12),第六和第七多選器(13、17),GF(24)2 域上求逆單元(14),逆映射單元(15),逆映射及仿射單元(16)組成,其中映射單元(11),將GF(28)域上的8位輸入數(shù)據(jù)映射到復(fù)合域GF(2Y上,輸出送入第六 多路選擇器(13);逆仿射及映射單元(12),它將逆仿射矩陣和映射矩陣合并,在解密時將輸入的8位輸 入數(shù)據(jù)進(jìn)行逆仿射運算并且映射到復(fù)合域GF(2"s上,輸出結(jié)果送入第六多路選擇器(13);第六多路選擇器(13),它的輸入為逆仿射及映射單元(12)的輸出和映射單元(11)的 輸出,控制信號為模式信號,根據(jù)模式信號選擇相應(yīng)的輸入作為輸出結(jié)果送入GF(2"2域上 求逆單元(14),其中,加密時選擇映射單元的輸出,解密時選擇逆仿射及映射單元的輸出;GF (24)2域上求逆單元(14),它將輸入的數(shù)據(jù)在GF (24)2域上求逆,并將輸出結(jié)果送入逆映射單元(15)和逆映射及仿射單元(16)中;逆映射單元(15),它將復(fù)合域GF(2Y上的輸入數(shù)據(jù)變換成GF(28)域上的數(shù)據(jù),結(jié)果送 入第七多選器(17);逆映射及仿射單元(16),它將復(fù)合域GF(2"s上的輸入數(shù)據(jù)變換成GF(28)域上的數(shù)據(jù) 并且將其進(jìn)行仿射運算,輸出結(jié)果送入第七多路選擇器(17)中;·第七多路選擇器(17),它的輸入為逆映射單元的輸出和逆映射及仿射單元的輸出,控 制信號為模式信號,根據(jù)模式信號選擇相應(yīng)的輸入作為輸出結(jié)果,其中,加密時選擇逆映射 及仿射單元的輸出,解密時選擇逆映射單元的輸出。
3. 根據(jù)權(quán)利要求1所述的適用于MIPS處理器的AES加密單元,其特征在于所述的列混 合單元單元由第八多路選擇器(18),列混合矩陣單元(19)和預(yù)處理單元(20)組成,其中第八多路選擇器(18),它的輸入為32位的輸入數(shù)據(jù)和預(yù)處理單元(20)的輸出,控制信 號為模式信號,其中,加密時選擇32位的輸入數(shù)據(jù),解密時選擇預(yù)處理單元(20)的輸出作 為輸出結(jié)果送入列混合矩陣單元;列混合矩陣單元(19),它將輸入數(shù)據(jù)進(jìn)行列混合運算,輸出作為最后的結(jié)果; 預(yù)處理單元(20),它的輸入為32位的輸入數(shù)據(jù),經(jīng)過預(yù)處理運算后將結(jié)果送入第八多 路選擇器(18)。
4. 根據(jù)權(quán)利要求1所述的適用于MIPS處理器的AES加密單元,其特征在于對應(yīng)于所述 AES加密單元的兩種工作模式AES加密和AES解密,在所述MIPS處理器中引入4條專用指 令A(yù)ES_ld, AES_st, AES_start禾口 AES_st_last ;其中AES—ld指令將數(shù)據(jù)和輪密鑰按順序從數(shù)據(jù)存儲器(21)中通過數(shù)據(jù)緩存(22)和多選器 (23)送入寄存器(31)中;AES_start通過譯碼單元(27)指令給出start脈沖信號,送到AES加密單元,使得AES 加密單元開始工作,同時指令的最后三位給出AES加密單元的工作模式,其中·100 :AES加密操作;·101 :AES第IO輪加密;·000 :AES解密操作;·001 :AES第1輪解密; Xlx :異或運算;AES加密單元每一輪產(chǎn)生的加解密結(jié)果以word為單位由AES_st和AES_st_last指令 分四次送回到數(shù)據(jù)存儲器(21)中,其中AES—st—last指令為最后一次存儲操作,它將產(chǎn)生 一個脈沖信號將AES加解密模塊內(nèi)的一些寄存器狀態(tài)位清0。
全文摘要
本發(fā)明屬于集成電路設(shè)計技術(shù)領(lǐng)域,具體為一種適用于MIPS處理器的AES加密單元。該AES加密單元由5個多路選擇器、字節(jié)替換單元、異或單元、列混合單元和寄存器組成。該AES加密單元執(zhí)行密鑰長度為128位,內(nèi)部的字節(jié)替換模塊采用了有限域運算的方式實現(xiàn),減小了芯片的面積。同時采用2級流水線結(jié)構(gòu),提高了加密速度,一次AES加/解密運算的時間為3.78ms,吞吐率達(dá)到33.9Mbps。
文檔編號H04L9/00GK101702709SQ20091019831
公開日2010年5月5日 申請日期2009年11月5日 優(yōu)先權(quán)日2009年11月5日
發(fā)明者盧仕聽, 曾曉洋, 王帥, 韓軍 申請人:復(fù)旦大學(xué)