999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于流體系架構(gòu)的分組密碼處理器設(shè)計(jì)

2017-12-16 05:19:16李功麗戴紫彬徐進(jìn)輝王壽成朱玉飛
計(jì)算機(jī)研究與發(fā)展 2017年12期
關(guān)鍵詞:指令

李功麗 戴紫彬 徐進(jìn)輝 王壽成 朱玉飛 馮 曉

1(解放軍信息工程大學(xué) 鄭州 450001) 2(河南師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院 河南新鄉(xiāng) 453002)

基于流體系架構(gòu)的分組密碼處理器設(shè)計(jì)

李功麗1,2戴紫彬1徐進(jìn)輝1王壽成1朱玉飛1馮 曉1

1(解放軍信息工程大學(xué) 鄭州 450001)2(河南師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院 河南新鄉(xiāng) 453002)

(lig1522@163.com)

為提升密碼處理器性能,構(gòu)建了密碼處理器性能模型.基于該模型,提出多級(jí)資源共享、綁定前/后異或操作、最大化算法并行度等處理器性能提升技術(shù),并根據(jù)性能提升技術(shù)確定了功能單元的種類和數(shù)量.然而功能單元不僅數(shù)量較多,而且在操作位寬和操作延遲方面均有較大差異,如何有效組織這些功能單元成為了一個(gè)關(guān)鍵問題.利用流體系結(jié)構(gòu)可以高效集成大量功能單元的特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了基于流體系結(jié)構(gòu)的可重構(gòu)分組密碼處理器原型,并通過把功能單元?jiǎng)澐譃榛咎幚韱卧琤ank間共享單元和簇間共享單元3個(gè)層次來解決功能單元處理位寬和操作延遲的差異.在65 nm CMOS工藝下對(duì)處理器原型進(jìn)行綜合,并在該結(jié)構(gòu)上映射了典型的分組密碼算法.實(shí)驗(yàn)結(jié)果證明:該處理器以較小的面積獲得了較高的性能,對(duì)典型分組密碼算法的處理速度,不僅超越了國(guó)際上的密碼專用指令處理器,而且高于國(guó)內(nèi)可重構(gòu)陣列結(jié)構(gòu)密碼處理器.

分組密碼;流處理器;性能模型;可重構(gòu);密碼處理器

最近幾十年,信息安全已經(jīng)逐步深入到政治、經(jīng)濟(jì)、軍事以及人們?nèi)粘I畹姆椒矫婷妫⒃谏鲜鲱I(lǐng)域發(fā)揮著越來越重要的作用.分組密碼是保證信息安全的有效措施.隨著信息安全需求的與日俱增,對(duì)分組密碼處理的要求也越來越高,吞吐率一直是密碼處理中首要考慮的性能指標(biāo).而隨著密碼應(yīng)用場(chǎng)景的多樣化和復(fù)雜化,還要求密碼系統(tǒng)能夠靈活適應(yīng)不同算法,以應(yīng)對(duì)不斷發(fā)展的攻擊手段和密碼系統(tǒng)升級(jí)壓力,所以密碼系統(tǒng)的靈活性也變得越來越重要.上述這些要求都給密碼處理器的設(shè)計(jì)提出了新的挑戰(zhàn).

可重構(gòu)分組密碼處理器面向分組密碼處理進(jìn)行優(yōu)化,運(yùn)算單元可重構(gòu)使密碼處理具有了較高的靈活性[1].同時(shí),通過重復(fù)設(shè)置大量的功能單元來提高性能,但是功能單元種類的選擇和功能單元數(shù)量的確定缺乏有效的理論分析作為基礎(chǔ),所以在性能提升的同時(shí),往往導(dǎo)致面積和功耗的急劇增加,這使得開發(fā)出來的密碼處理器因?yàn)槊娣e和功耗的問題,在實(shí)際應(yīng)用時(shí)受到諸多限制.本文以Amdahl定律[2]為基礎(chǔ),結(jié)合分組密碼處理的特點(diǎn),首先構(gòu)建了密碼處理性能模型,然后通過該性能模型確定功能單元種類及數(shù)量,從而在有效提升密碼處理性能的同時(shí),有效控制處理器的面積.

1 相關(guān)研究

國(guó)內(nèi)外針對(duì)可重構(gòu)分組密碼處理器的實(shí)現(xiàn)技術(shù)展開了一系列研究,主要可歸納為可重構(gòu)分組密碼專用指令處理器結(jié)構(gòu)和可重構(gòu)分組密碼陣列處理器結(jié)構(gòu).

可重構(gòu)分組密碼專用指令處理器的指令及運(yùn)算單元面向密碼應(yīng)用進(jìn)行優(yōu)化,運(yùn)算單元可重構(gòu),具有數(shù)據(jù)處理位寬大、處理并行性高、控制簡(jiǎn)單、開發(fā)便捷等優(yōu)點(diǎn).孟濤和戴紫彬[3]提出的可重構(gòu)分簇分組式分組密碼處理架構(gòu)(reconfigurable clustered block cipher processor, RCBCP),可靈活地重構(gòu)為4個(gè)32 b,2個(gè)64 b和1個(gè)128 b的數(shù)據(jù)通路,設(shè)計(jì)并實(shí)現(xiàn)了5級(jí)流水線以及運(yùn)算單元內(nèi)流水結(jié)構(gòu).Gaspar等人[4]提出的密碼處理器HCrypt設(shè)計(jì)了分離的數(shù)據(jù)/密鑰路徑,集成了獨(dú)立的加密模塊和解密模塊.Li等人[5]基于VLIW指令結(jié)構(gòu)開發(fā)了4路32 b并行結(jié)構(gòu)來提高可重構(gòu)密碼處理器的性能.相比于其他實(shí)現(xiàn)模式,專用指令處理器結(jié)構(gòu)工作頻率較低、密碼處理性能有待進(jìn)一步提升.

陣列結(jié)構(gòu)可重構(gòu)分組密碼處理系統(tǒng)設(shè)計(jì)了面向分組密碼的可重構(gòu)運(yùn)算單元,大幅提升了密碼處理的性能.楊曉輝等人[6]提出的可重構(gòu)分組密碼處理模型(reconfigurable cipher processing architecture, RCPA),采用粗粒度可重構(gòu)密碼單元,能夠在橫向和縱向上開發(fā)分組密碼并行特征.陳韜等人[7]提出了一種基于流處理架構(gòu)的可重構(gòu)分組密碼陣列結(jié)構(gòu)(stream based reconfigurable clustered block cipher processing array, S -RCCPA),通過設(shè)計(jì)基于Crossbar的分級(jí)互連網(wǎng)絡(luò)連接多個(gè)粗粒度可重構(gòu)的功能單元,構(gòu)造了分簇式的密碼處理陣列.Sayilar和Chiou[8]提出的可重構(gòu)密碼處理結(jié)構(gòu)Cryptoraptor,通過集成80個(gè)基本重構(gòu)單元實(shí)現(xiàn)了較高的性能.陣列結(jié)構(gòu)的單元一般為同構(gòu)結(jié)構(gòu),為確保處理單元能夠廣泛支持分組密碼操作,處理單元設(shè)計(jì)比較復(fù)雜,面積和功耗較大,存在資源利用率低、用戶開發(fā)困難等問題.

流處理器[9-10]作為近年來興起的一種高性能處理器,主要針對(duì)計(jì)算密集型應(yīng)用,通過集成大量的功能單元提供豐富的計(jì)算能力,從而獲得了較高的性能.如Imagine流處理器在250 MHz下的峰值性能達(dá)到10GFLOPS,而Merrimac在1 GHz下的峰值性能達(dá)到128GFLOPS,且在實(shí)際應(yīng)用中達(dá)到了117.3GFLOPS.流處理器以其對(duì)計(jì)算密集型應(yīng)用所顯示出的強(qiáng)大性能優(yōu)勢(shì)而成為了當(dāng)前高性能計(jì)算領(lǐng)域的研究熱點(diǎn).

分組密碼處理具有典型的計(jì)算密集性特征[11],是適合于流體系結(jié)構(gòu)的應(yīng)用.所以本文首先基于Amdahl定律構(gòu)建了密碼處理器的性能模型,然后在該模型的指導(dǎo)下,確定了密碼處理單元的種類和數(shù)量,并基于流體系結(jié)構(gòu)有效組織功能單元,設(shè)計(jì)了面向分組密碼的可重構(gòu)密碼流處理器原型,最后通過綜合實(shí)驗(yàn)驗(yàn)證了該原型的性能及面積優(yōu)勢(shì).

2 基于Amdahl定律的密碼處理性能模型

(1)

從式(1)可以得出,當(dāng)I≥i時(shí),無論I如何增加,都無法再進(jìn)一步減少執(zhí)行時(shí)間.即通過設(shè)置更多的硬件資源所能提高的并行度受限于算法本身的并行性.

令tpi對(duì)應(yīng)的指令條數(shù)為Npi,則并行加速后所需指令條數(shù)為

(2)

(3)

串行部分減少的指令條數(shù)為

).

(4)

通過對(duì)并行性部分的并行加速和串行部分的合并加速后,處理器完成密碼運(yùn)算所需時(shí)間為

(5)

其中,CPI為執(zhí)行一條指令的平均時(shí)鐘周期數(shù),fclk為系統(tǒng)主頻(單位為MHz).此時(shí),假設(shè)待處理的數(shù)據(jù)長(zhǎng)度為L(zhǎng)(單位為b),則吞吐率P為

(6)

從式(6)可知,為了提高系統(tǒng)的吞吐率P,可通過提高系統(tǒng)頻率fclk、減少指令的平均執(zhí)行周期CPI、增加合并的串行指令數(shù)目Nd以及提供足夠的并行處理資源I這4種途徑提升密碼處理器性能.

3 密碼處理性能提升策略

下面將結(jié)合分組密碼結(jié)構(gòu)特征及基本單元的運(yùn)算特征,分別針對(duì)fclk,CPI,Nd,I這4個(gè)參數(shù)來討論密碼處理器性能提升策略.

3.1 fclk與CPI——多級(jí)資源共享機(jī)制

根據(jù)前面的分析可知,提高系統(tǒng)頻率fclk能夠顯著提升密碼處理器性能,而頻率取決于系統(tǒng)的關(guān)鍵路徑.

首先選取國(guó)際上典型的分組密碼算法作為樣本進(jìn)行研究.算法包括數(shù)據(jù)加密標(biāo)準(zhǔn)DES、高級(jí)加密標(biāo)準(zhǔn)AES,ISO/IEC分組密碼標(biāo)準(zhǔn)(Camellia,MISTY1,CAST-128,TDEA,SEED)、歐洲NESSIE計(jì)劃的分組密碼、日本CRYPYTEC計(jì)劃的分組密碼、韓國(guó)標(biāo)準(zhǔn)ARIA以及行業(yè)標(biāo)準(zhǔn)IDEA,SMS4,CLEFIA,F(xiàn)OX,Skipjack等算法.選取的算法均有比較廣泛的應(yīng)用,結(jié)構(gòu)也具有一定的代表性,基本可以代表當(dāng)前分組密碼的設(shè)計(jì)特點(diǎn).

通過對(duì)所選21種算法的分解發(fā)現(xiàn),首先分組密碼算法整體結(jié)構(gòu)主要有FEISTEL,SP,L-M等,基于相同或相似結(jié)構(gòu)的分組密碼具有相似的運(yùn)算單元,涉及的操作類型有較大的交集,可歸納為S盒替代、移位、有限域乘法、模乘、模加/減、比特置換和基本邏輯等;其次操作的數(shù)據(jù)位寬集中于2類:

1) 32 b以內(nèi)小位寬操作,特點(diǎn)是位寬小、并行度高;

2) 128 b以上大位寬操作,多是異或、置換和移位操作.

為了確定系統(tǒng)的關(guān)鍵路徑,對(duì)上述算法集合中使用的運(yùn)算進(jìn)行統(tǒng)計(jì),并采用65 nm CMOS工藝標(biāo)準(zhǔn)單元庫(kù),對(duì)8 b,16 b,32 b,64 b,128 b等不同操作位寬的基本密碼運(yùn)算單元進(jìn)行邏輯綜合,結(jié)果如表1所示.

由綜合結(jié)果可知,不同運(yùn)算單元的延時(shí)差異較大,運(yùn)算單元的選取將會(huì)直接影響系統(tǒng)頻率.

同時(shí),影響系統(tǒng)性能的另一個(gè)因子——指令的平均執(zhí)行周期CPI:

(7)

其中,CPIi,pi分別為第i類指令的執(zhí)行周期數(shù)和使用頻率.由式(7)可知,指令的使用頻率對(duì)系統(tǒng)CPI有較大影響.假設(shè)系統(tǒng)使用頻率最高的是指令i,當(dāng)pj?pi時(shí),即使CPIj為多個(gè)時(shí)鐘周期,對(duì)CPI的影響也十分有限,所以選擇功能單元的目標(biāo)是盡量減少使用頻率高的指令的執(zhí)行周期,從而降低CPI.

Table 1 Synthesization Results of Cryptographic Units (Frequency & Area)表1 密碼運(yùn)算單元綜合結(jié)果(頻率及面積)

根據(jù)上述分析,為使用頻率高的指令設(shè)置專用的功能單元,使指令可以在1周期或2周期內(nèi)完成,而對(duì)于使用頻率較低的指令,綜合考慮其重構(gòu)代價(jià)和組合延時(shí)由這些基本單元重構(gòu)或組合實(shí)現(xiàn).

通過表1可知,使用頻率高的8 b-8 b的S盒、8 b邏輯操作、32 b模加/減等延時(shí)都低于1 ns,不會(huì)影響處理器關(guān)鍵路徑.而使用頻率高的32 b有限域乘法、32 b模乘、128 b置換等單元的延時(shí)較大.集成這些大延時(shí)的單元會(huì)使系統(tǒng)頻率降為原來的1/2或1/3,若不集成這些單元,一旦算法中包括這類操作,往往需要幾個(gè)甚至十幾個(gè)操作才能組合完成,從而使算法性能急劇變差.所以綜合考慮系統(tǒng)頻率及CPI,根據(jù)單元延時(shí)設(shè)置這些大延時(shí)的單元為2周期或是3周期,從而避免大延時(shí)的單元降低系統(tǒng)頻率.

進(jìn)一步考慮不同位寬單元的重構(gòu)開銷,確定構(gòu)成系統(tǒng)的運(yùn)算單元包括8 b-8 b的S盒、8 b邏輯單元和模加/減單元,32 b的模乘單元和有限域乘法單元以及128 b的移位和比特置換單元.8 b的模加/減單元雖然使用頻率不高,但是通過設(shè)置進(jìn)位鏈[12]可以并行實(shí)現(xiàn)16 b或32 b的模加/減操作,所以把8 b的模加/減單元作為基本運(yùn)算單元.因?yàn)檫x擇的運(yùn)算單元位寬變化較大,所以如何有效地組織這些單元,既能使各個(gè)單元有效配合,高效實(shí)現(xiàn)密碼算法,又能使單元之間的數(shù)據(jù)通路易于實(shí)現(xiàn),是下一步要解決的關(guān)鍵問題.

首先選擇8 b-8 b的S盒替代、邏輯運(yùn)算和模加/減構(gòu)成一個(gè)可重構(gòu)密碼處理bank(reconfigurable cipher processing bank, RCPB)作為系統(tǒng)的基本運(yùn)算核心,RCPB的基本數(shù)據(jù)位寬為8 b.因?yàn)槊艽a操作中,以8 b和32 b操作居多,所以把4個(gè)RCPB組成一個(gè)可重構(gòu)密碼簇(reconfigurable cipher processing cluster, RCPC).同一個(gè)簇中各RCPB的功能單元不是獨(dú)立的,它們可以重構(gòu)或組合實(shí)現(xiàn)16 b或32 b的操作.

有限域乘法和模乘單元均為32 b,組成bank間共享單元(inter-bank-shared unit, BSU),一個(gè)BSU對(duì)應(yīng)4個(gè)RCPB.128 b的移位和置換組成簇間共享單元(inter-cluster-shared unit, CSU),每個(gè)CSU對(duì)應(yīng)4個(gè)簇,可以同時(shí)與4個(gè)簇進(jìn)行數(shù)據(jù)交互.

通過把使用頻率高的指令用專用單元實(shí)現(xiàn),使指令可以在1周期或2周期完成,從而有效降低CPI;把延時(shí)較長(zhǎng)的指令設(shè)置為多周期,可以避免大延時(shí)單元降低系統(tǒng)頻率;然后根據(jù)單元的位寬和重構(gòu)效率等,把8 b位寬的運(yùn)算單元組織成基本運(yùn)算核心,大位寬的單元由多個(gè)基本核心共享.這種小位寬的運(yùn)算核心加大位寬的共享資源,既能夠讓多個(gè)小位寬單元并行執(zhí)行,又可以減少大位寬運(yùn)算單元的數(shù)量,從而在提升處理器性能的同時(shí),提高資源利用率并減少處理器面積.

3.2 Nd——綁定前/后異或

異或操作是分組密碼中使用頻率最高的運(yùn)算,而且異或操作的延時(shí)和面積都非常小,通過將異或操作與其他密碼操作組合實(shí)現(xiàn)復(fù)合操作,可以有效減少算法所需指令條數(shù).以SMS4算法為例,在無綁定操作情況下,輪函數(shù)需使用13條指令,在支持指令綁定前/后異或的情況下,輪函數(shù)僅需使用7條指令,從而使指令條數(shù)減少了46.15%.通過對(duì)算法集合中的運(yùn)算進(jìn)行分析統(tǒng)計(jì),異或運(yùn)算綁定使用頻率如表2所示:

Table 2 Usage of Binding Xor Operation表2 綁定異或操作使用頻率

綁定有2種實(shí)現(xiàn)方式:

1) 利用執(zhí)行過程中流水線的譯碼和寫回段延時(shí)較小,把異或操作綁定在寄存器取數(shù)和寫回段,這種方法不會(huì)影響系統(tǒng)的工作頻率,但是會(huì)產(chǎn)生嚴(yán)重的數(shù)據(jù)相關(guān)問題,特別是無法實(shí)現(xiàn)數(shù)據(jù)旁路,而在密碼運(yùn)算中有大量的中間運(yùn)算結(jié)果需要旁路,所以使用該方法會(huì)造成嚴(yán)重的流水線停頓;

2) 直接把密碼操作與異或綁定,但是這可能會(huì)影響系統(tǒng)的關(guān)鍵路徑,從而影響頻率.通過分析異或操作與其他操作的使用頻率及延時(shí),選擇使用頻率高且對(duì)關(guān)鍵路徑不影響或是影響較小的操作進(jìn)行綁定.根據(jù)表2的統(tǒng)計(jì)結(jié)果,確定綁定異或的功能單元有S盒前后綁定、邏輯后綁定、模加后綁定、移位后綁定.

上述4個(gè)操作綁定后,延時(shí)均未超過關(guān)鍵路徑.綁定異或操作前后,算法輪函數(shù)所需要的指令條數(shù)如表3所示:

Table 3 Number of Round Function Instruction Pre-bindingand Post-binding

Continued(Table 3)

Note:* has more than one round functions

在綁定異或操作后,95%以上的密碼算法輪函數(shù)所需要的指令條數(shù)均有所減少,平均減少了19.3%.但是也有算法在綁定后,指令條數(shù)并未減少,如IDEA.這是因?yàn)镮DEA算法中的異或操作出現(xiàn)在延時(shí)較大的模乘操作之后,為了不影響關(guān)鍵路徑,未對(duì)模乘操作綁定異或.

3.3 I——算法并行度分析

通過多路并行執(zhí)行能夠提升密碼算法實(shí)現(xiàn)性能.但是對(duì)于密碼算法來說,可實(shí)現(xiàn)的最大并行度受限于算法本身的并行性.基于3.1節(jié)所確定的運(yùn)算單元,對(duì)算法集合中各算法的分組內(nèi)最大并行度i進(jìn)行分析,結(jié)果如表4所示:

Table 4 Max Parallelism in Block表4 分組內(nèi)最大并行度

以AES算法為例,16個(gè)RCPB可以實(shí)現(xiàn)AES分組內(nèi)最大并行.同時(shí),在ECB模式下,這16個(gè)RCPB還可以實(shí)現(xiàn)多個(gè)分組的縱向流水執(zhí)行.因?yàn)橛邢抻虺朔ň枰?個(gè)周期,成為了流水線的瓶頸,所以把有限域乘法單元設(shè)置為2段流水,從而使AES算法在ECB模式下可以流水執(zhí)行4個(gè)分組.

Fig. 1 AES mapping result圖1 AES算法映射圖

Fig. 3 General architecture of RCSP圖3 RCSP結(jié)構(gòu)圖

而對(duì)于并行度小于16的密碼算法,在ECB模式下或是CBC模式下通過交錯(cuò)技術(shù)[13],可以在多個(gè)RCPB上運(yùn)行不同的分組,實(shí)現(xiàn)多個(gè)分組的橫向并行.例如SMS4算法,執(zhí)行1個(gè)128 b的分組需要4個(gè)RCPB,16個(gè)8 b的數(shù)據(jù)在4個(gè)RCPB上的映射結(jié)果如圖2所示.如果使用全部16個(gè)RCPB,可以實(shí)現(xiàn)4個(gè)分組的并行執(zhí)行.

多個(gè)RCPB既可以通過流水線技術(shù)實(shí)現(xiàn)多個(gè)分組的縱向并行,同時(shí)對(duì)于并行度小于16的算法,還可以實(shí)現(xiàn)多個(gè)分組的橫向并行.2個(gè)維度上的并行性開發(fā)可以大大提高密碼處理器的吞吐率以及資源利用率.

4 可重構(gòu)分組密碼流處理器原型

為了提高系統(tǒng)的時(shí)鐘頻率和減少指令的平均執(zhí)行周期,選擇使用頻率高的功能單元構(gòu)成系統(tǒng)的運(yùn)算部件,并根據(jù)其位寬分別組成基本運(yùn)算核心RCPB和多級(jí)共享單元BSU及CSU;為了減少算法的指令條數(shù),在不影響關(guān)鍵路徑的前提下綁定異或操作;通過對(duì)典型算法的并行性分析發(fā)現(xiàn),設(shè)置16個(gè)RCPB時(shí),可以最大限度地實(shí)現(xiàn)密碼算法的分組內(nèi)并行.基于上述分析,以流處理器框架為基礎(chǔ),設(shè)計(jì)了可重構(gòu)密碼流處理器(reconfigurable cipher stream processor, RCSP),結(jié)構(gòu)如圖3所示.

整個(gè)RCSP的結(jié)構(gòu)分為控制層和運(yùn)算層2個(gè)部分.控制層由流控制器和微控制器兩級(jí)控制組成.當(dāng)需要執(zhí)行密碼算法時(shí),首先由流控制器加載算法指令和數(shù)據(jù)到RCSP中,指令存儲(chǔ)在指令存儲(chǔ)器中,指令存儲(chǔ)器的容量為512×128 b,數(shù)據(jù)通過IO接口送入到與每個(gè)功能單元直接相連的局部寄存器(local register file, LRF)中.指令執(zhí)行時(shí)由微控制器讀取指令和譯碼,并把指令信息廣播到對(duì)應(yīng)的功能單元.同時(shí),微控制器還負(fù)責(zé)執(zhí)行循環(huán)跳轉(zhuǎn)等控制指令.RCSP采用VLIW指令結(jié)構(gòu),所以它的控制部分相對(duì)簡(jiǎn)單,從而可以把更多的片上面積用于運(yùn)算部件.

RCSP的運(yùn)算層由基本運(yùn)算核心RCPB,bank間共享單元BSU和簇間共享單元CSU組成.處于不同層次中的功能單元之間的連接方式如圖4所示,其中白色表示的是RCPB內(nèi)部的功能單元,淺灰色表示的是BSU單元,深灰色表示的是CSU單元.

Fig. 4 Architecture of operation layer圖4 運(yùn)算層結(jié)構(gòu)圖

為了實(shí)現(xiàn)各個(gè)功能單元之間的快速數(shù)據(jù)交換,通過交叉互聯(lián)開關(guān)把各個(gè)功能單元連接起來.每個(gè)功能單元在一個(gè)RCPB中都對(duì)應(yīng)一個(gè)8 b位寬的結(jié)果輸出總線和若干個(gè)輸入寄存器.輸入寄存器中包括了綁定操作時(shí)前/后綁定的操作數(shù).

從邏輯結(jié)構(gòu)上看,因?yàn)锽SU和CSU中的共享單元在每個(gè)RCPB內(nèi)通過交叉互連網(wǎng)絡(luò)與RCPB內(nèi)的功能單元連接,相當(dāng)于共享單元在每個(gè)RCPB中均有一個(gè)8 b位寬的功能單元,是獨(dú)立屬于每個(gè)RCPB的,即每個(gè)RCPB中均有7個(gè)8 b位寬的功能單元,它們之間的數(shù)據(jù)交換通過交叉互連網(wǎng)絡(luò)在單周期內(nèi)實(shí)現(xiàn).RCPB與共享單元這種邏輯結(jié)構(gòu)上相互獨(dú)立的設(shè)計(jì),可以使密碼算法映射變得簡(jiǎn)單.

因?yàn)槊艽a算法有大量的中間運(yùn)算結(jié)果,需要頻繁進(jìn)行中間結(jié)果的寫回與讀取操作,所以中間結(jié)果的寫回與讀取時(shí)間對(duì)系統(tǒng)的執(zhí)行速度有較大影響.設(shè)置與每個(gè)功能單元直接相連的LRF保存中間結(jié)果,每次運(yùn)算單元所需要的操作數(shù)都是直接從與它對(duì)應(yīng)的LRF中取出,當(dāng)操作完成,結(jié)果通過交叉互連網(wǎng)絡(luò)寫入下一個(gè)要使用該結(jié)果的功能單元所對(duì)應(yīng)的LRF中.同時(shí),LRF支持寫穿透[9].中間結(jié)果保存到寄存器的同時(shí)傳送給需要該結(jié)果的功能單元,避免因?yàn)閿?shù)據(jù)寫后讀相關(guān)造成的流水線停頓.因?yàn)楣δ軉卧际菑淖约簩?duì)應(yīng)的LRF中取操作數(shù),相比于集中式的寄存器,這種分布式的結(jié)構(gòu)可以有效減少操作延遲和寄存器面積.

密鑰寄存器(key scratch pad, KSP)設(shè)置為32×128 b,在每個(gè)bank中對(duì)應(yīng)的位寬是8 b,即每個(gè)bank一次可以向KSP中讀/寫一個(gè)8 b的數(shù)據(jù).

每個(gè)RCPB中都有一個(gè)共享存儲(chǔ)單元(shared memory unit, SMU),各個(gè)bank的SMU通過字節(jié)置換單元連接,實(shí)現(xiàn)單周期內(nèi)多個(gè)RCPB之間的數(shù)據(jù)交換.

5 實(shí)驗(yàn)及性能對(duì)比

使用Verilog語言對(duì)RCSP進(jìn)行描述后,通過65 nm CMOS工藝標(biāo)準(zhǔn)單元庫(kù)及相應(yīng)負(fù)載模型對(duì)設(shè)計(jì)的處理器原型進(jìn)行邏輯綜合,綜合結(jié)果如表5所示.其中Slack為正值表示實(shí)際延遲時(shí)間滿足約束條件,且其值越大表示實(shí)際時(shí)鐘頻率可以綜合得更高;而Slack為負(fù)值表示實(shí)際延遲時(shí)間超過了約束條件,DC綜合工具已經(jīng)無法再繼續(xù)優(yōu)化.根據(jù)綜合結(jié)果,RCSP時(shí)鐘頻率最高可達(dá)826 MHz,為保證工作穩(wěn)定性,將RCSP工作頻率確定為800 MHz.后文討論均為RCSP在800 MHz工作頻率下的運(yùn)算性能.

Table 5 Result Based on ASIC Implementation表5 基于ASIC實(shí)現(xiàn)的結(jié)果

對(duì)選取的算法集合進(jìn)行適配,結(jié)果表明RCSP可以高效處理SP結(jié)構(gòu)、Feistel結(jié)構(gòu)、LM結(jié)構(gòu)的分組密碼算法.由于目前密碼處理器文獻(xiàn)中,一般僅列出AES,DES,IDEA的實(shí)現(xiàn)結(jié)果,考慮到MISTY結(jié)構(gòu)算法具有一定代表性,增加了MISTY結(jié)構(gòu)的代表算法KUSAMI.RCSP與其他密碼處理器性能對(duì)比情況如表6所示.其中,Cryptonite[14]、CCProc[15]、RCBCP[3]、文獻(xiàn)[5]和MCCP[16]為可重構(gòu)密碼專用指令處理器;Celator[17],RCPA[6],S-RCCPA[7],Cryptorapto[8],RCPC[18]為陣列結(jié)構(gòu)可重構(gòu)密碼處理器.

Table 6 Performance Comparison with Other Cryptographic Processors表6 不同密碼處理器性能對(duì)比

根據(jù)綜合結(jié)果,RCSP以較小的面積代價(jià)獲得了較高的性能.RCSP對(duì)AES的實(shí)現(xiàn)性能在CBC和ECB模式下分別達(dá)到了2.63 Gbps和10.24 Gbps.而對(duì)于DES和IDEA,在CBC模式下吞吐率均為0.52 Gbps,在ECB模式下,通過縱向流水和橫向并行,吞吐率分別達(dá)到了1.7 Gbps和3.76 Gbps.通過性能對(duì)比發(fā)現(xiàn),RCSP對(duì)密碼算法的實(shí)現(xiàn)性能明顯高于其他專用指令處理器,大大提升了可重構(gòu)密碼處理器的實(shí)現(xiàn)性能.

與陣列結(jié)構(gòu)的可重構(gòu)密碼處理器比較,RCSP實(shí)現(xiàn)性能仍高于Celator,RCPA,S-RCCPA處理架構(gòu).由此可見,通過設(shè)置8 b的基本處理單元和多級(jí)共享單元、綁定前/后異或以及多維度開發(fā)并行化等性能提升策略,可重構(gòu)分組密碼流處理器RCSP獲得了與當(dāng)前陣列結(jié)構(gòu)可重構(gòu)密碼處理器相當(dāng)?shù)拿艽a處理性能.

考慮到資源消耗及單元使用頻率,RCSP中未設(shè)計(jì)大位寬查找表單元,對(duì)于9-9的S盒操作需使用多條指令組合實(shí)現(xiàn).由于KASUMI結(jié)構(gòu)使用了大量的9-9的S盒,RCSP對(duì)KASUMI算法實(shí)現(xiàn)性能較低.Cryptoraptor設(shè)計(jì)了10-32的查找表,對(duì)AES,DES,KASUMI的實(shí)現(xiàn)性能均高于RCSP,但Cryptoraptor結(jié)構(gòu)未設(shè)計(jì)乘法單元,對(duì)使用范圍較廣的IDEA算法支持效果差,Cryptoraptor作者在性能對(duì)比中回避了IDEA算法,因此無法作出比較,同時(shí)Cryptoraptor資源消耗大約是RCSP的5倍(考慮到工藝差距),且Cryptoraptor是陣列結(jié)構(gòu),應(yīng)用開發(fā)難度較大.

6 結(jié)束語

設(shè)計(jì)高效、靈活的可重構(gòu)密碼處理器是信息安全領(lǐng)域的熱點(diǎn)研究課題.密碼專用指令處理器具有配置信息少、靈活便捷的優(yōu)點(diǎn),但處理性能不高,成為限制其進(jìn)一步發(fā)展的主要因素.

針對(duì)上述問題,根據(jù)分組密碼算法特征,以提高分組密碼處理器性能為目標(biāo),構(gòu)建了分組密碼處理器性能模型,并基于該模型研究密碼處理器性能提升技術(shù).提出了通過提升系統(tǒng)工作頻率和減少指令平均周期的多級(jí)資源共享技術(shù)、提升單周期密碼操作數(shù)目的綁定前/后異或技術(shù)、開發(fā)分組密碼并行特征的并行處理技術(shù).利用流處理器可以集成大量功能單元、控制結(jié)構(gòu)簡(jiǎn)單的特點(diǎn),在性能提升技術(shù)的指導(dǎo)下,設(shè)計(jì)并實(shí)現(xiàn)了面向分組密碼的可重構(gòu)密碼流處理器原型RCSP.在65 nm CMOS工藝下完成了RCSP的邏輯綜合,通過典型分組密碼算法的映射結(jié)果表明,RCSP的密碼實(shí)現(xiàn)性能均高于其他專用指令處理器,而且高于Celator,RCPA,S-RCCPA等陣列結(jié)構(gòu)可重構(gòu)密碼處理結(jié)構(gòu),具有很好的應(yīng)用場(chǎng)景.

由于缺少大位寬S盒運(yùn)算單元,RCSP對(duì)MSITY,KUSAMI等算法的實(shí)現(xiàn)性能較低,為提升密碼算法實(shí)現(xiàn)性能,下一步可考慮集成9-9的查找表.

[1]Compton K, Hauck S. Reconfigurable computing: A survey of systems and software[J]. ACM Computing Surveys, 2002, 34(2): 171-210

[2] Chen Shuming, Chen Shenggang, Yin Yaming. Revisiting Amdahl’s law in the hierarchical chip multicore processors[J]. Journal of Computer Research and Development, 2012, 49(1): 83-92 (in Chinese)(陳書明, 陳勝剛, 尹亞明. Amdahl定律在層次化片上多核處理器中的擴(kuò)展[J]. 計(jì)算機(jī)研究與發(fā)展, 2012, 49(1): 83-92)

[3] Meng Tao, Dai Zibin. Reconfigurable clustered architecture of block cipher processor[J]. Journal of Electronics & Information Technology, 2009, 31(2): 453-456 (in Chinese)(孟濤, 戴紫彬. 分組密碼處理器的可重構(gòu)分簇式架構(gòu)[J]. 電子與信息學(xué)報(bào), 2009, 31(2): 453-456)

[4] Gaspar L, Fisher V, Bernard F, et al. HCrypt: A novel concept of crypto-processor with secured key management[C] //Proc of Int Conf on Reconfigurable Computing and FPGAs(RECONFIG 2010). Piscataway, NJ: IEEE, 2010: 280-285

[5] Li Wei, Zeng Xiaoyang, Nan Longmei, et al. A reconfigurable block cryptographic processor based on VLIW architecture[J]. China Communications, 2016, 13(1): 91-99

[6] Yang Xiaohui, Dai Zibin, Zhang Yongfu. Research and design of reconfigurable computing targeted at block cipher processing[J]. Journal of Computer Research and Development, 2009, 46(6): 962-967 (in Chinese)(楊曉輝, 戴紫彬, 張永福. 可重構(gòu)分組密碼處理結(jié)構(gòu)模型研究與設(shè)計(jì)[J]. 計(jì)算機(jī)研究與發(fā)展, 2009, 46(6): 962-967)

[7] Chen Tao, Luo Xingguo, Li Xiaonan, et al. An architecture of stream based reconfigurable clustered block cipher processing array[J]. Journal of Electronics & Information Technology, 2014, 36(12): 3027-3034 (in Chinese) (陳韜, 羅興國(guó), 李校南, 等. 一種基于流處理框架的可重構(gòu)分簇式分組密碼處理結(jié)構(gòu)模型[J]. 電子與信息學(xué)報(bào), 2014, 36(12): 3027-3034)

[8] Sayilar G, Chiou D. Cryptoraptor: High throughput reconfigurable cryptographic processor[C] //Proc of IEEE/ACM Int Conf on Computer-Aided Design (ICCAD 2014). Piscataway, NJ: IEEE, 2014: 155-161

[9] Rixner M. Stream Processor Architecture[M]. Amsterdam, Netherlands: Kluwer Academic Publishers, 2001

[10] Zhang Chunyuan, Wen Mei, Wu Nan, et al. Research and Design of Stream Processor[M]. Beijing: Publishing House of Electronics Industry, 2009 (in Chinese)(張春元, 文梅, 伍楠, 等. 流處理器研究與設(shè)計(jì)[M]. 北京: 電子工業(yè)出版社, 2009)

[11] Wang Yuliang. Research and design on coarse-grain reconfigurable architecture for cryptographic algorithms[D]. Zhengzhou: PLA Information Engineering University (in Chinese)(王玉良. 面向密碼算法的粗粒度可重構(gòu)結(jié)構(gòu)研究與設(shè)計(jì)[D]. 鄭州: 解放軍信息工程大學(xué), 2010)

[12] Jarvinen K, Dimitrov V, Azarderakhsh R. A generalization of addition chains and fast inversions in binary fields[J]. IEEE Trans on Computers, 2015, 64(9): 2421-2432

[13] Desai A, Ankalgi K, Yamanur H, et al. Parallelization of AES algorithm for disk encryption using CBC and ICBC modes[C] //Proc of the 4th Int Conf on Computer Communication and Networking Technology. Piscataway, NJ: IEEE, 2013: 1-7

[14] Buchty R. Cryptonite —a programmable crypto processor architecture for high-bandwidth applications[D]. München, Bavaria, Germany: Technische University München, 2002

[15] Theodoropoulos D, Papaefstathiou I, Pnevmatikatos D N. CCproc: An efficient cryptographic coprocessor[C] //Proc of the 16th IFIP/IEEE Int Conf on Very Large Scale Integration (VLSI’08). Berlin: Springer, 2008: 160-163

[16] Bossuet L, Grand M, Gaspar L, et al. Architectures of flexible symmetric key crypto engines-a survey: From hardware coprocessor to multi-crypto-processor system on chip[J]. ACM Computing Surveys, 2013, 45(4): 115-123

[17] Fronte D, Perez A, Payrat E. Celator: A multi-algorithm cryptographic co-processor[C] //Proc of Int Conf on Reconfigurable Computing and FPGAs (RECONFIG’08). Piscataway, NJ: IEEE, 2008: 438-443

[18] Wang Bo, Liu Leibo. A flexible and energy-efficient reconfigurable architecture for symmetric chipper processing [C] //Proc of IEEE Int Symp on Circuits and Systems (ISCAS 2015). Piscataway, NJ: IEEE, 2015: 1182-1185

DesignofBlockCipherProcessorBasedonStreamArchitecture

Li Gongli1,2, Dai Zibin1, Xu Jinhui1, Wang Shoucheng1, Zhu Yufei1, and Feng Xiao1

1(PLAInformationEngineeringUniversity,Zhengzhou450001)2(CollegeofComputer&InformationEngineering,HenanNormalUniversity,Xinxiang,Henan453002)

To improve the performance of cipher processor, the performance model of cipher processor is proposed. And based on this model, three ways for enhancing cipher processor’s performance are presented, which are sharing multi-level resources, binding operations of pre-xor or post-xor and maximizing parallelism of block cipher algorithms. According to these improvement methods, the type and amount of cryptographic function units are determined. However, the function units are not only numerous but also different in operation data width and latency, so how to organize these function units efficiently becomes a key problem. The stream processor architecture can integrate a large number of function units to obtain high performance. Then, we design and implement a reconfigurable block cipher processor prototype which is based on stream processor architecture, and in order to organize the numerous function units effectively, the function units are divided into basic units, inter-bank-shared units and inter-cluster-shared units respectively according to their processing width. The prototype is synthesized in 65nm CMOS process and several typical block cipher algorithms are mapped on it. The evaluation results show that the processor prototype is area-efficient and its performance is not only beyond that of international application specific instruction cipher processors, but also higher than that of the domestic reconfigurable array processors.

block cipher; stream processor; performance model; reconfigurable; cipher processor

2016-08-31;

2016-12-09

國(guó)家自然科學(xué)基金項(xiàng)目(61404175)

This work was supported by the National Natural Science Foundation of China (61404175).

TP309.7

LiGongli, born in 1981. PhD candidate of the PLA Information Engineering University. Her main research interests include crypto-graphic arithmetic, computer architecture and high-performance cryptographic processor.

DaiZibin, born in 1966. Professor and PhD supervisor in the PLA Information Engineering University. His main research interests include cryptographic arithmetic, VLSI design of crypto-ICs, and SoC platform for security applications.

XuJinhui, born in 1978. PhD. His main research interests include reconfigurable computing, information security and SoC system design.

WangShoucheng, born in 1992. Master. His main research interests include reconfigurable computing and SoC system design.

ZhuYufei, born in 1990. Master. His main research interests include VLSI designs for security applications.

FengXiao, born in 1987. PhD. Her main research interests include high performance multi-core processor, design of SoC platform for security applications.

猜你喜歡
指令
聽我指令:大催眠術(shù)
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
殺毒軟件中指令虛擬機(jī)的脆弱性分析
巧用G10指令實(shí)現(xiàn)橢圓輪廓零件倒圓角
中斷與跳轉(zhuǎn)操作對(duì)指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測(cè)算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設(shè)備等產(chǎn)品安全規(guī)定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動(dòng)制冷劑行業(yè)發(fā)展
汽車零部件(2014年2期)2014-03-11 17:46:27
主站蜘蛛池模板: 日韩精品专区免费无码aⅴ| 久久人人爽人人爽人人片aV东京热 | 蜜芽国产尤物av尤物在线看| 一区二区三区国产精品视频| 亚洲天堂日韩av电影| www.91在线播放| 国产女人综合久久精品视| 精品人妻AV区| 青青操国产视频| 午夜人性色福利无码视频在线观看| 国产在线98福利播放视频免费| 国产亚洲精久久久久久无码AV| 欧美在线视频不卡| 精品国产香蕉在线播出| 成人免费视频一区| 91精品国产一区| 亚洲区欧美区| 视频一区视频二区日韩专区| 成年看免费观看视频拍拍| 国产精品hd在线播放| 凹凸国产熟女精品视频| 午夜毛片福利| 999国产精品永久免费视频精品久久| 综合色88| 91亚洲精选| 亚洲一区免费看| 国产剧情一区二区| 亚洲动漫h| 幺女国产一级毛片| 毛片在线播放a| 国产乱论视频| 国产性猛交XXXX免费看| 久久精品无码国产一区二区三区 | 久久青草免费91线频观看不卡| 熟妇无码人妻| 免费精品一区二区h| 欧美中文字幕在线播放| 一级毛片在线播放| 亚洲欧美精品一中文字幕| 国产精品视频白浆免费视频| 色综合手机在线| 毛片国产精品完整版| 97精品久久久大香线焦| 日本午夜精品一本在线观看| 亚洲日本一本dvd高清| 亚洲一区网站| 久久亚洲国产视频| 蜜臀av性久久久久蜜臀aⅴ麻豆| 免费在线国产一区二区三区精品| 国产成人亚洲毛片| 免费观看国产小粉嫩喷水| 亚洲开心婷婷中文字幕| 波多野结衣一区二区三视频| 99伊人精品| 国产久操视频| 白浆视频在线观看| 九色91在线视频| 国产99视频在线| 国产欧美视频一区二区三区| 中文字幕无码电影| 国产精品片在线观看手机版| 无码福利视频| 国产真实自在自线免费精品| 国产无人区一区二区三区| 伊人丁香五月天久久综合| 中文字幕在线观| 久久亚洲中文字幕精品一区| 亚洲国产精品一区二区高清无码久久| 熟女成人国产精品视频| 亚洲伊人久久精品影院| 午夜高清国产拍精品| 色成人亚洲| 午夜国产大片免费观看| 91麻豆国产在线| 国产一级裸网站| 3p叠罗汉国产精品久久| 波多野结衣中文字幕一区二区 | 国产一级毛片在线| 亚洲欧美一区二区三区蜜芽| 久久精品日日躁夜夜躁欧美| 996免费视频国产在线播放| 99热这里只有精品免费|