版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> AES專用指令處理器的研究與實現(xiàn)</p><p> 夏輝1 賈智平1 張峰1 李新1 陳仁海1 Edwin H. -M. Sha2</p><p> 1(山東大學(xué)計算機科學(xué)與技術(shù)學(xué)院 山東濟南 250101)</p><p> 2(美國德州大學(xué)達拉斯分校計算機科學(xué)系 德克薩斯 75083)</p><p> (s
2、prit_xiahui@mail.sdu.edu.cn)</p><p> The Application Specific Instruction Processor for AES</p><p> Xia Hui1,Jia Zhiping1,Zhang Feng1,Li Xin1,Chen Renhai1,and Edwin H.-M. Sha2</p><p
3、> 1(School of Computer Science and Technology,Shandong University,Jinan,Shandong 250101,China)</p><p> 2(Department of Computer Science,University of Texas at Dallas,Richardson,
4、Texas 75083,USA)</p><p> Abstract Encryption algorithm has been widely used in the embedded trusted computing domain, how to improve its execution efficiency has become an important issue. The Advanced Encr
5、yption Standard (AES) algorithm is a new encryption algorithm which has been widely adopted in the field of trust computation due to its high security, low cost and high enforceability. This paper employs a new instructi
6、on set architecture (ISA) extension method to optimize this algorithm.Based on electronic system le</p><p> Key words Advanced Encryption Standard;Electronic System Level;Instruction Set Architecture;Applic
7、ation Specific Instruction Processor;Field-Programmable Gate Array</p><p> 摘 要 隨著加密算法在嵌入式可信計算領(lǐng)域的廣泛應(yīng)用,如何提高其執(zhí)行效率成為研究的熱點問題.高級加密標準 (AES) 憑借其在安全性、費用開銷和可執(zhí)行性等方面的內(nèi)在優(yōu)勢,成為使用最為廣泛的對稱密鑰加密算法.文中采用指令集架構(gòu) (ISA) 擴展優(yōu)化的方法對AES算法
8、進行指令擴展優(yōu)化.基于電子系統(tǒng)級 (ESL) 方法設(shè)計流程,使用基于LISA語言的處理器生成工具構(gòu)建了一個高效AES專用指令處理器 (AES_ASIP) 模型,最終實現(xiàn)于FPGA中.經(jīng)過一系列的仿真和驗證,對比ARM處理器指令集架構(gòu),實驗結(jié)果顯示AES_ASIP以增加少許硬件資源為代價,提高了算法58.4x%的執(zhí)行效率并節(jié)省了47.4x%的指令代碼存儲空間.</p><p> 關(guān)鍵詞 AES;電子系統(tǒng)級;指令集
9、架構(gòu);專用指令處理器;FPGA</p><p> 中圖法分類號 TP391 文章類別:信息安全</p><p><b> 引言</b></p><p> 加密技術(shù)是一種保護秘密信息或敏感信息的重要手段.加密算法被廣泛應(yīng)用于可信路由、TPM可信根測量、實體認證、數(shù)字簽名和數(shù)據(jù)加密傳輸?shù)确矫妫畬ΨQ密鑰加密技術(shù)憑借其安全性、高效性和靈活
10、性, 已廣泛用于保證數(shù)據(jù)在傳輸過程中的機密性.在加/解密過程中通信雙方使用共享的相同密鑰,密碼學(xué)界已經(jīng)對該類加密技術(shù)進行了深入的研究.此前最常用的對稱密鑰加密算法是數(shù)據(jù)加密標準(DES),它是一種使用56位密鑰的分組密碼加密算法,自1977年公布成為美國政府的商用加密標準以來已使用30多年.DES</p><p> 的主要缺點是密鑰長度較短,已不再適合當(dāng)今分布式開放網(wǎng)絡(luò)對數(shù)據(jù)加密安全性的要求.新一代的數(shù)據(jù)加密標
11、準AES[1]是美國國家標準技術(shù)研究所NIST旨在取代DES的新一代加密標準,Rijindael算法最終被選作高級加密標準.</p><p> AES算法匯聚了對數(shù)據(jù)加密的強安全性、高性能、高效率、易用和靈活等優(yōu)點.然而由于加密與解密過程占用較多的處理器資源,處理器的性能成為加密算法高效運行的主要限制因素.雖然微處理器性能在不斷提升,但在許多領(lǐng)域中加密算法的執(zhí)行效率并不能符合所有的運算設(shè)計需求,尤其是在計算資源
12、有限的嵌入式環(huán)境下.由于嵌入式微處理器性能較低、運算速度較慢,加密算法在該類微處理器中運行的效率較低.如何提高加密算法在嵌入式環(huán)境下的執(zhí)行效率,保證數(shù)據(jù)高效安全傳輸成為國內(nèi)外研究的熱點問題.本文針對AES算法,基于電子系統(tǒng)級方法學(xué)的設(shè)計流程,采用指令集架構(gòu)擴展優(yōu)化的方法,設(shè)計了該算法的專用指令處理器(AES_ASIP)模型,并最終將該處理器模型實現(xiàn)于FPGA中.</p><p> 論文其余部分組織如下,第一部分
13、介紹了該領(lǐng)域的相關(guān)工作;第二部分簡單介紹AES加/解密算法,并具體介紹AES加密算法中復(fù)雜度較高的兩個轉(zhuǎn)換操作;第三部分詳細分析指令集架構(gòu)擴展優(yōu)化設(shè)計方法;第四部分針對AES算法提出5條優(yōu)化擴展指令,基于擴展后的指令集構(gòu)建AES專用指令處理器模型,并設(shè)計新指令執(zhí)行部件的硬件模型;第五部分實驗仿真結(jié)果分析;第六部分對本文工作進行總結(jié).</p><p><b> 相關(guān)工作</b></p&
14、gt;<p> 目前學(xué)術(shù)界存在三種提高密碼算法執(zhí)行效率的方式:第一種是用純軟件方式優(yōu)化密碼算法的程序流程,使算法流程更加合理,運行更加高效.Bertoni等人[2]提出AES算法的優(yōu)化版本來加速該算法在內(nèi)存受限的32位處理器上的執(zhí)行效率.隨著嵌入式環(huán)境下微處理器性能的不斷提高,這種優(yōu)化方式也相應(yīng)地提高了密碼算法的執(zhí)行效率.這種優(yōu)化方式雖然靈活,但其優(yōu)化空間非常狹隘,在同一類型的微處理器下優(yōu)化幅度最多達到21%左右.此外純
15、軟件優(yōu)化方式的實現(xiàn)需使用查找表,在數(shù)據(jù)的查找過程中,查找表容易受到基于cache的側(cè)信道攻擊,這種攻擊方式致使加密算法運行過程中易將對稱密鑰泄露給攻擊者;第二種是用純硬件方式實現(xiàn)密碼算法[3],將底層程序語言中一條或若干條連續(xù)指令用專門的硬件電路實現(xiàn).基于該優(yōu)化方法,Kuo等人[4]提出基于專用集成電路(Application Special Integrated Circuit,ASIC)的方式來實現(xiàn)AES算法,該方法僅用10 cyc
16、les即可完成AES-128算法,文章同時討論了執(zhí)行算法的芯片架構(gòu)和優(yōu)化設(shè)計.這種優(yōu)化方式可以快速實現(xiàn)密碼算法,但其可擴展性較弱,占用的硬件資源較多,致</p><p> 本文采用指令集架構(gòu)擴展的方式來提高AES算法的執(zhí)行效率,并設(shè)計出針對該算法的專用指令處理器(AES_ASIP)模型,用以滿足該算法在運算速度和內(nèi)存空間有限的嵌入式環(huán)境下的需求.對比ARM處理器指令集架構(gòu),經(jīng)過一系列的仿真和驗證,實驗結(jié)果顯示A
17、ES_ASIP以增加少許硬件資源為代價,提高了算法58.4x%的執(zhí)行效率并節(jié)省了47.4x%的指令代碼存儲空間.</p><p><b> AES算法分析</b></p><p><b> AES算法簡介</b></p><p> AES算法屬于分組密碼算法,它的輸入分組、輸出分組以及加/解密過程中的中間分組都是12
18、8比特,使用10、12或14個輪(Nr表示輪數(shù)),與輪數(shù)相對應(yīng)輸入密鑰的長度K為128,192或256比特.用Nk=4,6,8代表密鑰串的字數(shù)(1字=32比特),每一輪都需要一個和輸入分組具有同樣長度(128比特)的擴展密鑰Key的參與.由于外部輸入的密鑰K長度有限,所以在AES算法操作過程中需使用密鑰擴展(Key Expansion)例程把外部密鑰K擴展成更長的比特串,以生成各輪的加輪密鑰. 第一個輪密鑰用作預(yù)備輪轉(zhuǎn)換,剩下的輪密鑰用
19、作每一輪結(jié)尾的最后一個轉(zhuǎn)換.AES算法在操作過程中運用四個轉(zhuǎn)換:S盒字節(jié)置換、行變換、列混淆和密鑰加.除最后一輪外,每一輪都使用四個可逆的轉(zhuǎn)換,最后一輪僅用三個轉(zhuǎn)換(無列混合轉(zhuǎn)換). 在解密方,使用的是可逆轉(zhuǎn)換:S盒置換反演、行變換反演、列混淆反演和加輪密鑰(這個轉(zhuǎn)換是自身可逆的).圖1表示AES加/解密流程.</p><p> Figure.1 The description for AES algrithm
20、</p><p> 圖1 AES算法加/解密流程</p><p><b> (1) 加密變換</b></p><p> 設(shè)X是128比特明文輸入,Y是128比特的密文輸出,則AES密文Y可以用下面的復(fù)合變換得出:</p><p><b> (1)</b></p><p&g
21、t; 其中·表示復(fù)合運算.這里ANi(X)表示對X的一個變換ANi(X)= X xor KNi (KNi為第i輪的子密鑰,為比特串的異或運算).S:S-box字節(jié)置換,即對每一個字節(jié)用S-box做一個置換.為了提升算法執(zhí)行效率,S-box是一個指定的轉(zhuǎn)換表.R:行變換.C:列混淆,列混淆中涉及到多項式乘法運算.</p><p><b> (2) 解密變換</b></p&g
22、t;<p> 解密變換是加密變換的逆變換,這里不再詳述.</p><p> AES加密算法中耗時轉(zhuǎn)換操作分析</p><p> (1) S盒字節(jié)置換 S-box SubBytes()</p><p> 對輸入矩陣的任一個元素A做如下變換S[A]:(1)任意一個元素A從存儲角度看都是一個八位的二進制數(shù).算出前四位所代表的十六進制數(shù)x和后四位所代表
23、的十六進制數(shù)y.如A=11000100時,x=c,y=4.(2)從AES算法給定的S-box(16行16列的矩陣,其中每個元素為一個字節(jié))中找出S[A]=S[x,y]的值.如A:11000100時,S[A]=S[x,y]=S[c,4]=|29|=00101001.或直接通過下面的公式將A=b7b6b5b4b3b2b1b0變?yōu)镾[A]=b'7b'6b'5b'4b'3b'2b'1b
24、39;0.</p><p><b> (2)</b></p><p> (2) 列混淆 MixColumns()</p><p> AES加密算法中列混淆是通過矩陣相乘實現(xiàn)的(矩陣A為列混淆變換矩陣),具體過程如下:</p><p> 加密過程中列混淆變換矩陣與解密過程列混淆變換矩陣分別是:</p>
25、<p> 列混淆轉(zhuǎn)換操作即把狀態(tài)矩陣state的每一列轉(zhuǎn)換成一個新的列.每列當(dāng)中的字節(jié)和常數(shù)變換矩陣都要化為帶有GF(28)中系數(shù)的8比特的字(或多項式).矩陣內(nèi)字節(jié)的乘法是通過伽羅瓦域GF(28)內(nèi)的乘法即多項式相乘實現(xiàn)的,同時為了保證相乘后的元素仍然在域內(nèi),在GF(28)中需要用模m(x)=(10001101)或(x8+ x4+ x3+ x+1)除來實現(xiàn),矩陣內(nèi)的加法是通過異或操作實現(xiàn)的.即對域內(nèi)的任意一個八位的二進制
26、數(shù)A= b7b6b5b4b3b2b1b0,轉(zhuǎn)換成一個多項式A=f(x) = b7x7 + b6x6 + b5x5 + b4x4 + b3x3 + b2x2+ b1x + b0與x相乘[10]:</p><p><b> (3)</b></p><p><b> 對應(yīng)域內(nèi)乘法為:</b></p><p> A = 00
27、000010 B = b7b6b5b4b3b2b1b0</p><p><b> (4)</b></p><p> 乘以高于一次的多項式可以循環(huán)使用上式實現(xiàn),因此GF(28)乘法即為多個中間結(jié)果相加.</p><h2> 指令集架構(gòu)擴展優(yōu)化分析</h2><p> 在設(shè)計新指令的過程中必須保證擴展后的指令要兼容
28、原有模型(如ARM處理器指令集)的指令格式,這樣才能保證譯碼部件的正常執(zhí)行.例如:32位處理器模型中,指令操作碼和操作數(shù)位數(shù)之和最多為32位,設(shè)計新指令時要考慮其操作碼和操作數(shù)位數(shù)之和不能超過32.同時,新指令的執(zhí)行部件不能過于復(fù)雜,如果新指令的執(zhí)行部件過于復(fù)雜,執(zhí)行過程中會產(chǎn)生較大時延,降低系統(tǒng)的運行速度.綜上各方面因素考慮,得出新指令設(shè)計限制條件如下:</p><p> (1) 新指令操作碼長度和原有處理器
29、模型中指令操作碼長度相同;</p><p> (2) 新指令的操作碼和操作數(shù)總和不能超出原指令集的指令位數(shù);</p><p> (3) 新指令的執(zhí)行部件不能過于復(fù)雜,新指令執(zhí)行過程不能降低系統(tǒng)的運行速度;</p><p> (4) 新擴展的指令條數(shù)不能過多,降低由此帶來的硬件資源開銷.</p><p> 在滿足上述條件基礎(chǔ)上,針對特定
30、算法進行指令集架構(gòu)擴展優(yōu)化,能夠極大地減少取址、譯碼的時間,使得原先N條指令的取址、譯碼過程現(xiàn)在僅需一條指令即可完成,即取址、譯碼過程可縮小(N-1)2個時鐘周期.從執(zhí)行單元考慮,指令擴展前需要多個執(zhí)行單元在多個時鐘周期內(nèi)協(xié)同完成的功能,在指令擴展后僅需一個新的執(zhí)行單元在一個時鐘周期內(nèi)就可以完成.同時,在一定程度上能夠避免因指令相關(guān)而產(chǎn)生的氣泡效應(yīng).</p><p> Figure.2 ESL based de
31、sign flow</p><p> 圖2 專用指令處理器設(shè)計流程</p><p> 上圖2描述了基于電子系統(tǒng)級方法學(xué)的專用指令處理器設(shè)計流程.首先利用IAR交叉編譯器環(huán)境下的C-SPY調(diào)試器查看已優(yōu)化的目標算法高層程序代碼經(jīng)編譯后的匯編語言,使用算法模塊復(fù)雜度分析工具分析匯編指令中使用頻率較高且影響算法運算時間較大的多條連續(xù)匯編指令.在滿足前文三個約束條件的基礎(chǔ)上,設(shè)計一條新的匯編指
32、令來實現(xiàn)該多條連續(xù)匯編指令.基于擴展后的指令集,使用基于LISA[11]語言的處理器生成工具構(gòu)建目標算法的專用指令處理器模型,同時為擴展的新指令設(shè)計相應(yīng)的執(zhí)行部件硬件模型.經(jīng)過一系列的仿真和驗證過程,最終在FPGA中實現(xiàn)該專用指令處理器模型,完成對該優(yōu)化方法的實體驗證. </p><h2> 構(gòu)建AES算法專用指令處理器(AES_ASIP)模型</h2><p> 針對AES加/解密算
33、法的指令擴展</p><p> AES加/解密算法高層程序代碼通過匯編編譯器編譯之后,分析匯編語言并設(shè)計5條新指令[12]:</p><p> (1) S盒字節(jié)置換過程中的取位操作,每次仿射變換都需要把八位二進制數(shù)的每一位取出.但在ARM處理器以及常用的嵌入式處理器中,沒有直接的取位操作指令.分析仿射變換的取位操作為:</p><p> y = (x>&
34、gt;i) and 0x1</p><p> 取x的第i位首先將x右移i個位置,然后和0x1進行與操作,結(jié)果賦給y,對應(yīng)的ARM匯編具體含義為:</p><p> move r1, r0</p><p> leftshift r1, r1, (31-i) 使用新指令getbit替換 getbit r1 = r0, i&
35、lt;/p><p> rightshift r1, r1, 31</p><p> 針對取位操作設(shè)計新取位指令getbit <dest> = <src>, <bitpos> 替代上面的三條指令.新指令的功能是從src寄存器中取出第bitpos位,然后存入dest寄存器的最后一位.</p><p> (2) S盒字節(jié)置換過程在取
36、出八位二進制數(shù)的所有位后,需要對每一位用異或后的操作數(shù)替換,每個逆元為8位,因此需要進行8次五元異或操作,分析仿射變換的異或操作為:</p><p> y[i] = x[i] xor x[(i+4)mod8] xor x[(i+5)mod8] xor x[(i+6)mod8] xor x[(i+7)mod8]</p><p> 對x的第i位和(i+4)mod8到(i+7)mod8位進行
37、異或操作,編譯成ARM匯編指令,具體含義為:</p><p> r1 = r2 xor r3</p><p> r1 = r1 xor r4</p><p> r1 = r1 xor r5 使用新指令xor_5替換 xor_5 r1 = r2, r3, r4, r5, r6</p><p> r1 =
38、 r1 xor r6</p><p> 針對五元異或操作設(shè)計新指令xor_5 <dest> = <src1>, <src2>, <src3>, <src4>, <src5> 替代上面四條指令.新指令的功能是將src1到src5所代表的寄存器中的內(nèi)容進行異或操作,結(jié)果保存在dest所代表的寄存器中.受到ARM處理器32位指令長度限制,src1
39、到src5均僅占用四位,若定義占用五位長度,則超出32位指令長度限制.</p><p> (3) 列混淆中使用伽羅瓦域GF(28)內(nèi)的乘法運算.?dāng)?shù)據(jù)分組與S盒256個元素中某個元素相乘時運用2.2節(jié)公式(3)(4),并進行累加求和操作,該過程也需循環(huán)8次,運算過程非常耗時.分析域內(nèi)乘法,可以對下面指令進行擴展優(yōu)化:</p><p> if a and b is 0 then<
40、/p><p> c = c xor d</p><p> 這類語句通過ARM編譯器編譯成四條匯編指令,具體含義為:</p><p> and r1, r1, r0 </p><p> cmp r1, 0</p><p> equal jumpxor 使用新指令ifand替換
41、 ifand r1, r0, r2, r3</p><p> xor r2, r2, r3</p><p> 針對乘法操作設(shè)計新指令ifand <src1>, <src2>, <xor_src1>, <xor_src2> 替代上面四條指令.新指令的功能是src1和src2相與,如果結(jié)果不為0,則xor_src1和xor_src2執(zhí)行
42、異或,并將結(jié)果保存在xor_src1中;如果結(jié)果為0,則不執(zhí)行異或操作.</p><p> (4) 列混淆進行矩陣相乘操作,需要多次定位矩陣中數(shù)據(jù)的位置,在實際內(nèi)存中,矩陣中的數(shù)據(jù)是線性存儲的,查找矩陣S-box第i行第j列位置數(shù)據(jù)的操作在C語中表示如下:</p><p> x = sbox[i][j]</p><p> 編譯成ARM匯編指令,具體含義為:&l
43、t;/p><p> move r1, sbox</p><p> move r2, i</p><p> mul r2 = r2, n move r1, sbox</p><p> add r2 = r2, j 使用新指令matrixpos替換 ma
44、trixpos r1 = r1, i, j,n</p><p> add r2 = r2, r1</p><p> load r1 = r2</p><p> 上面ARM匯編語言的含義為根據(jù)i和j計算出實際內(nèi)存中數(shù)據(jù)的偏移位置,在基地址sbox的基礎(chǔ)上根據(jù)偏移位置查找數(shù)據(jù),最后將查找的數(shù)據(jù)賦值給r1.針對矩陣內(nèi)數(shù)據(jù)查找設(shè)計新指令matrixpos <
45、;dest> = <src1> , <src2> , <src3> , <src4> 替代上面五條指令.新指令的功能是查找矩陣中指定位置的數(shù)據(jù).</p><p> (5) 列混淆大量用到數(shù)據(jù)交換操作,交換操作表示如下:</p><p> c=a; b=a; a=b;</p><p> 編譯成ARM
46、匯編指令,具體含義為:</p><p> mov r2, r0 </p><p> mov r0, r1 使用新指令swap替換 swap r1, r2</p><p> mov r1, r2</p><p>
47、 設(shè)計新的匯編指令swap <src1>,<src2> 替代上面三條指令.新指令的功能是將源操作數(shù)src1和src2交換,即將源操作數(shù)src1的數(shù)值賦給src2同時將src2的數(shù)值賦給src1.</p><p> AES_ASIP模型</p><p> Figure.3 The Architecture of AES_ASIP</p>&
48、lt;p> 圖3 AES專用指令處理器模型架構(gòu)</p><p> 圖3所示的是針對AES加密算法設(shè)計的AES_ASIP處理器模型框圖,模型指令集架構(gòu)由27條指令構(gòu)成如下表1所示:</p><p> Table 1 The AES_ASIP ISA</p><p> 表1 AES專用指令處理器指令集架構(gòu)</p><p> 模型硬
49、件結(jié)構(gòu)主要由數(shù)據(jù)存儲器(Data_RAM)、代碼存儲器(Prog_RAM)、寄存器堆(Registers)和流水線(Pipe)四部分組成.程序存儲器地址空間定義在0x0000-0x7FFF范圍內(nèi),大小32K.代碼存儲器地址空間定義在0x8000-0xFFFF范圍內(nèi),大小32K.寄存器堆由32個通用寄存器(GPR[0…31])、1個取址寄存器(FPR)、1個堆棧指針寄存器(SPR)和1個鏈接寄存器(LR)組成.流水線部分采用三級流水線:取
50、址(FE)、譯碼(DC)和執(zhí)行(EX).流水線控制器(Pipe_Ctl)主要負責(zé)對跳轉(zhuǎn)指令進行控制,跳轉(zhuǎn)指令只需要將跳轉(zhuǎn)地址存儲在取址寄存器(FPR)中,不需要經(jīng)過執(zhí)行部件,緊接著對流水線的緩存部分進行刷新,防止執(zhí)行部件執(zhí)行跳轉(zhuǎn)指令.在AES_ASIP處理器的譯碼、執(zhí)行部件,添加了針對AES算法的專用指令譯碼器(Decode_AES_EX)和執(zhí)行器(AES_EX),對擴展的指令進行專門的譯碼和執(zhí)行.表2表示新指令格式.</p>
51、;<p> Table 2 The AES Specific instructions</p><p> 表2 針對AES擴展的新指令格式</p><p> 新指令執(zhí)行部件的硬件模型</p><p> 圖4-8分別表示與5條新指令相對應(yīng)的執(zhí)行部件硬件模型.</p><p> Figure.4 The Micro-arc
52、hitecture of getbit Instruction</p><p> 圖4 getbit指令執(zhí)行部件硬件模型</p><p> 圖4表示getbit指令執(zhí)行部件.圖中r0, i,r1_addr是輸入信號,通過移位部件rsh,將r0寄存器中的數(shù)據(jù)右移i位,然后通過與門將移位的結(jié)果與0x0001相與,只取移位后的最低有效位.輸出結(jié)果根據(jù)多路選擇器mux控制輸出,A_getbit
53、_EX_in是控制信號,由譯碼階段控制輸出,決定輸入地址r1_addr是否有效.如果A_getbit_EX_in為1,則多路選擇器mux選擇將與結(jié)果保存到r1寄存器中;如果為0則多路選擇器mux選擇一個無效的地址,不進行任何寄存器存儲操作.</p><p> Figure.5 The Micro-architecture of xor_5 Instruction</p><p> 圖5
54、 xor_5指令執(zhí)行部件硬件模型</p><p> 圖5表示xor_5指令執(zhí)行部件.圖中r2, r3, r4, r5, r6, r1_addr是輸入信號,r2, r3, r4, r5, r6寄存器的數(shù)據(jù)通過五元異或部件執(zhí)行異或操作.A_xor_5_EX_in是控制信號,由譯碼階段控制輸出,決定輸入地址r1_addr是否有效.如果A_xor_5_EX_in為1,則多路選擇器mux選擇將結(jié)果保存到r1寄存器中;如果
55、為0則多路選擇器mux選擇一個無效的地址,不進行任何寄存器存儲操作.</p><p> Figure.6 The Micro-architecture of ifand Instruction</p><p> 圖6 ifand指令執(zhí)行部件硬件模型</p><p> 圖6表示ifand指令執(zhí)行部件.圖中r0,r1, r2, r3, r2_addr是執(zhí)行部件的輸
56、入信號,輸出結(jié)果通過多路選擇器mux選擇輸出,ifand_exe是控制信號,由譯碼階段發(fā)出控制命令,決定是否執(zhí)行ifand操作.從上圖電路可以看出,r0與r1以及ifand_exe與操作的結(jié)果如果為1,則多路選擇器mux選擇將r2和r3異或結(jié)果輸出到r2寄存器中;與操作的結(jié)果如果為0,則多路選擇器mux選擇輸出一個無效地址,不進行任何存儲操作.</p><p> Figure.7 The Micro-archi
57、tecture of matrixpos Instruction</p><p> 圖7 matrixpos指令執(zhí)行部件硬件模型</p><p> 圖7表示matrixpos指令執(zhí)行部件.圖中r1, i, n, j是輸入信號,經(jīng)過一個乘法器和一個加法器,計算出矩陣的位置為r1+i*n+j.A_getbit_EX_in是控制信號,由譯碼階段控制輸出,如果為1則多路選擇器mux選擇將計算的
58、有效地址傳送到數(shù)據(jù)內(nèi)存Data_RAM的地址線,根據(jù)地址將內(nèi)存數(shù)據(jù)存儲到寄存器r1中;如果為0則傳送一個無效地址,不進行任何讀操作.</p><p> Figure.8 The Micro-architecture of swap Instruction</p><p> 圖8 swap指令執(zhí)行部件硬件模型</p><p> 圖8表示swap指令執(zhí)行部件.圖中
59、r1, r2, r1_addr, r2_addr是輸入信號,A_swap_EX_in是控制信號,由譯碼階段控制輸出.如果為1則多路選擇器mux選擇將r1寄存器的值存儲到r2寄存器,同時將r2寄存器的值存儲到r1寄存器;如果為0則傳送一個無效地址,不進行任何讀操作.</p><p><b> 實驗仿真結(jié)果分析</b></p><p> 實驗中以Xilinx的Virt
60、ex5 LX110T為目標芯片,對AES(128)_ASIP處理器模型進行綜合模擬仿真,得出的實驗結(jié)果如下表3、4所示:</p><p> Table 3 AES-128 performance</p><p> 表3 AES-128算法實驗結(jié)果對比表</p><p> Table 4 Compared with ARM9 ISA</p><
61、;p> 表4 ARM9與AES_ASIP實驗結(jié)果對比表</p><p> 由表3、4可以得出以下結(jié)論:</p><p> (1) 執(zhí)行效率方面:以AES加密算法為例,通過周期級仿真統(tǒng)計出AES_ASIP運行AES加密算法所需要的時鐘周期數(shù),相對ARM處理器減少了57.3x%,極大地提高了算法的執(zhí)行效率;(2) 代碼空間方面:以AES加密算法為例,在ARM處理器上指令代碼占用78
62、3bytes內(nèi)存空間,而在AES_ASIP上指令代碼僅占用416bytes,節(jié)省了46.6x%的代碼內(nèi)存空間.通過指令集架構(gòu)擴展的優(yōu)化方式進行算法指令優(yōu)化,可以有效地減少存儲算法代碼的內(nèi)存空間.</p><p> 統(tǒng)計實驗結(jié)果我們可以得出,對比ARM處理器,AES_ASIP提高了58.4x%的執(zhí)行效率并節(jié)省了47.4x%的內(nèi)存空間.AES算法在指令擴展前使用處理器資源數(shù)為86816cells,指令擴展后AES_
63、ASIP使用處理器資源數(shù)為93038cells,占用的硬件資源增加了7.2%.</p><p><b> 結(jié)論</b></p><p> 通過指令集架構(gòu)擴展優(yōu)化的方法,針對不同的密碼算法可以設(shè)計其各自的專用指令處理器模型.該方法有較強的設(shè)計靈活性,但需保證擴展后的指令集能夠兼容以往處理器模型.通過上述實驗結(jié)果,以AES密碼算法為例可以發(fā)現(xiàn),該優(yōu)化方法以增加7.2%
64、的硬件資源為代價換取算法58.4%的執(zhí)行效率提升和47.4%的指令內(nèi)存空間的節(jié)省.這種優(yōu)化方法不但能夠以較小的面積資源換來較大的算法執(zhí)行效率的提升,而且能大量地減少算法代碼的存儲空間.由此可以得出,在運算速度、存儲資源有限的嵌入式環(huán)境下,運用指令集架構(gòu)擴展優(yōu)化的方法提高密碼算法執(zhí)行效率的研究是有較大實際意義和必要的.</p><p><b> 參考文獻:</b></p>&l
65、t;p> Rachh R R, Anami, B S, Ananda Mohan P V. Efficient implementations of S-box and inverse S-box for AES algorithm[C] //Proc of TENCON 2009. Singapore: IEEE, 2009: 102-109</p><p> Bertoni G., et al. E
66、fficient Software Implementation of AES on 32-bit Platforms[J]. Lecture Notes In Computer Science, 2003, 25(23):159-171</p><p> Yang Li, Sakiyama K, Batina L, Nakatsu D, Ohta K. Power Variance Analysis brea
67、ks a masked ASIC implementation of AES[C] //Proc of Design, Automation & Test in Europe Conference & Exhibition (DATE). Dresden: IEEE, 2010: 78-82</p><p> Kuo H and Verbauwhede I. Architectural Opti
68、mization for a 1.82 Gb/s VLSI Implementation of the AES Rijndael Algoritm[J]. Lecture Notes in Computer Science, 2001, 21(62): 51-64</p><p> Fiskiran A M and Lee R B. On-Chip Lookup Tables for Fast Symmetri
69、c-Key Encryption[C] //Proc of the 16th IEEE International Conference on Application-Specific Systems, Architectures and Processors (ASAP 2005). IEEE CS Press, 2005: 356–363</p><p> Yue Hong, Shen Li, Dai Ku
70、i, Wang Zhiying. A TTA-Based ASIP Design Methodology for Embedded Systems [J]. Journal of Computer Research and Development, 2006, 43(4):752-758 (in Chinese)</p><p> (岳虹, 沈立, 戴葵, 王志英. 基于TTA的嵌入式ASIP設(shè)計[J]. 計算
71、機研究與發(fā)展, 2006, 43(4):752-758)</p><p> Scharwaechter PHanno, Kammler Pdavid, et al. ASIP architecture exploration for efficient IPSec encryption : A case study[J]. ACM Transactions on Embedded Computing Syste
72、ms (TECS), 2007, 6 (2): 87-99</p><p> Wu L, Weaver C, Austin T. CryptoManiac: A Fast Flexible Architecture for Secure Communication[C] //Proc of Annual Int. Symposium on Computer Architecture (ISCA). IEEE,
73、2001: 110-119</p><p> Sun Yinghong, Tong Yuanman, Wang Zhiying. ASE implementation based on instruction extension and randomized scheduling [J]. Computer Engineering and Applications, 2009, 45(16): 106-110
74、(in Chinese)</p><p> (孫迎紅, 童元滿, 王志英. 采用指令集擴展和隨機調(diào)度的AES算法實現(xiàn)技術(shù)[J]. 計算機工程與應(yīng)用, 2009, 45(16): 106-110)</p><p> William Stallings. Cryptography and Network Security(5th Edition): Principles and Pract
75、ice[M]. Prentice Hall. 2010</p><p> Reference manual - LISA specification Languge [EB/OL]. http://labraj.uni-mb.si/lisa/manual-language.html</p><p> Nalini C, Anandmohan P V, et al. Compact De
76、signs of SubBytes and MixColumn for AES[C] //Proc of Advance Computing Conference IACC 2009. Patiala: IEEE, 2009: 132-140</p><p><b> 作者簡介:</b></p><p> Xia Hui,born in 1986.Doctor.H
77、is main research interests include embedded system, trust computing and wireless network routing protocol.</p><p> E-mail:sprit_xiahui@mail.sdu.edu.cn</p><p> Jia Zhiping,born in 1964.Professo
78、r and PhD supervisor.Senior member of China Computer Federation.His main research interests include embedded system, trust computing, real-time scheduling and wireless network routing protocol.</p><p> E-ma
79、il:jzp@sdu.edu.cn</p><p> Zhang Feng,born in 1978.Doctor.His main research interests include embedded system and trust computing.</p><p> E-mail:attzhangfeng@126.com</p><p> Li X
80、in,born in 1978.PhD and Associate Professor.Member of China Computer Federation.His main research interests include real-time scheduling, embedded system and trust computing.</p><p> E-mail:lx@sdu.edu.cn<
81、;/p><p> Chen Renhai,born in 1987.Master.His main research interests include embedded system and trust computing.</p><p> E-mail:chenrenhai@mail.sdu.edu.cn</p><p> Edwin H.-M.Sha,bo
82、rn in 1964.Professor and PhD supervisor (USA).Member of China Computer Federation.His main research interests include parallel embedded systems, embedded software, parallel computers and networking.</p><p>
83、 E-mail:edsha@utdallas.edu</p><p><b> 校對聯(lián)系人:夏輝</b></p><p> 通訊地址:山東省濟南市高新開發(fā)區(qū)舜華路中段山東大學(xué)齊魯軟件學(xué)院 </p><p> 計算機科學(xué)與技術(shù)學(xué)院系統(tǒng)結(jié)構(gòu)方向2010級博士研究生 </p><p><b> 郵編:2501
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專用指令集安全處理器設(shè)計與實現(xiàn).pdf
- 專用指令集安全處理器設(shè)計與實現(xiàn)(1)
- AES協(xié)處理器IP核的設(shè)計與實現(xiàn).pdf
- 基于AES的安全協(xié)處理器設(shè)計與實現(xiàn).pdf
- 加密專用處理器指令集設(shè)計.pdf
- 低功耗專用指令集處理器設(shè)計與優(yōu)化.pdf
- 微處理器指令級并行控制技術(shù)的研究與實現(xiàn).pdf
- 專用指令集處理器工程化應(yīng)用研究.pdf
- 面向多核向量X-DSP處理器AES設(shè)計與實現(xiàn).pdf
- 面向AES加密的可配置處理器設(shè)計及實現(xiàn).pdf
- 專用視頻處理器指令集研究與數(shù)據(jù)通路設(shè)計.pdf
- 專用指令集處理器可靠性評估技術(shù)研究.pdf
- 多線程微處理器指令雙發(fā)射結(jié)構(gòu)的設(shè)計與實現(xiàn)
- 智能卡AES加解密協(xié)處理器VLSI設(shè)計與實現(xiàn).pdf
- 定制指令與協(xié)處理器加速機制的研究.pdf
- 可配置TTA處理器編譯器的指令調(diào)度技術(shù)研究與實現(xiàn).pdf
- 8086微處理器的指令系統(tǒng)
- 專用指令集處理器(ASIP)體系結(jié)構(gòu)設(shè)計研究.pdf
- 基于專用指令集處理器架構(gòu)的AA-LDPC編譯碼器研究.pdf
- 處理器中指令關(guān)鍵性的研究與應(yīng)用.pdf
評論
0/150
提交評論