王壽成,徐進(jìn)輝,嚴(yán)迎建,李功麗,2,賈永旺
(1.信息工程大學(xué) 密碼工程學(xué)院,鄭州 450001; 2.河南師范大學(xué) 計(jì)算機(jī)信息工程學(xué)院, 河南 新鄉(xiāng) 453002)
面向密碼流處理器的AES算法軟件流水實(shí)現(xiàn)方法
王壽成1*,徐進(jìn)輝1,嚴(yán)迎建1,李功麗1,2,賈永旺1
(1.信息工程大學(xué) 密碼工程學(xué)院,鄭州 450001; 2.河南師范大學(xué) 計(jì)算機(jī)信息工程學(xué)院, 河南 新鄉(xiāng) 453002)
(*通信作者電子郵箱jeremy_419@163.com)
針對(duì)輪函數(shù)在分組密碼實(shí)現(xiàn)過程中耗時(shí)過長(zhǎng)的問題,提出了面向可重構(gòu)密碼流處理器(RCSP)的高級(jí)加密標(biāo)準(zhǔn)(AES)算法軟件流水實(shí)現(xiàn)方法。該方法將輪函數(shù)操作劃分為若干流水段,不同流水段對(duì)應(yīng)不同的并行密碼資源,通過并行執(zhí)行多個(gè)輪函數(shù)的不同流水段,從而開發(fā)指令級(jí)并行性提高輪函數(shù)執(zhí)行速度,進(jìn)而提升分組密碼的執(zhí)行性能。在RCSP的單簇、雙簇和四簇運(yùn)算資源下分析了AES算法的流水線劃分過程和軟件流水映射方法,實(shí)驗(yàn)結(jié)果表明,該軟件流水實(shí)現(xiàn)方法使得單分組或多分組不同數(shù)據(jù)分塊的操作并行執(zhí)行,不僅能夠提升單分組串行執(zhí)行性能,還能夠通過開發(fā)分組間的并行性來提高多分組并行執(zhí)行性能。
分組密碼;高級(jí)加密標(biāo)準(zhǔn)算法;軟件流水;指令級(jí)并行性;吞吐率
隨著網(wǎng)絡(luò)與信息安全地位的不斷提升,分組密碼算法廣泛應(yīng)用于數(shù)據(jù)加密、數(shù)字簽名/認(rèn)證及密鑰管理等領(lǐng)域。分組密碼算法的高效實(shí)現(xiàn)直接影響網(wǎng)絡(luò)與信息通信系統(tǒng)的性能,如何高效實(shí)現(xiàn)分組密碼算法已經(jīng)成為重要的研究方向。
實(shí)現(xiàn)分組密碼的結(jié)構(gòu)主要有四種:專用集成電路(Application Specific Integrated Circuit, AISC)結(jié)構(gòu)[1]、專用指令處理器結(jié)構(gòu)[2-3]、陣列處理器結(jié)構(gòu)[4-5]和多核處理器系統(tǒng)[6-7]。專用ASIC密碼處理器是針對(duì)一種或幾種特定算法的定制芯片,具有較高的密碼處理性能和最小的硬件資源,但其兼容性差,可擴(kuò)展性和應(yīng)用領(lǐng)域均受限。專用指令處理器以密碼指令驅(qū)動(dòng)系統(tǒng)運(yùn)行,通過指令編程來實(shí)現(xiàn)密碼算法,具有靈活性高、控制簡(jiǎn)單、開發(fā)便捷的特點(diǎn),但目前專用指令處理器實(shí)現(xiàn)密碼算法的吞吐率普遍較低。陣列處理器將大量密碼運(yùn)算單元通過總線或片上網(wǎng)絡(luò)(Network-on-Chip, NoC)連接起來構(gòu)成密碼處理系統(tǒng),通過配置信息將運(yùn)算單元與互連網(wǎng)絡(luò)重構(gòu)為算法數(shù)據(jù)路徑以完成密碼算法,其密碼實(shí)現(xiàn)性能普遍很高,但其面積和功耗較大,算法映射困難,同時(shí)資源利用率較低。多核密碼處理器集成了多個(gè)密碼運(yùn)算核心和任務(wù)調(diào)度器,多核間通過任務(wù)調(diào)度可實(shí)現(xiàn)密碼處理的任務(wù)級(jí)并行,能夠有效提升密碼運(yùn)算性能,但存在著面積較大、任務(wù)調(diào)度較復(fù)雜的問題。
可重構(gòu)密碼流處理器(Reconfigurable Cipher Stream Processor, RCSP)[8]融合了可重構(gòu)技術(shù)和流體系結(jié)構(gòu)[9],使得密碼運(yùn)算的性能、靈活性和資源利用率都得到巨大提升。本文將軟件流水技術(shù)[10]應(yīng)用于分組密碼算法的輪函數(shù)執(zhí)行過程中,通過映射AES-128在可重構(gòu)密碼流處理器RCSP的單簇、雙簇和四簇運(yùn)算資源的軟件流水實(shí)現(xiàn),分析了相應(yīng)的軟件流水段的劃分及算法映射過程,并進(jìn)行了順序執(zhí)行、串行/并行模式下吞吐率比較。
高級(jí)加密標(biāo)準(zhǔn)(Advanced encryption standard, AES)是美國國家標(biāo)準(zhǔn)與技術(shù)研究所(National Institute of Standards and Technology, NIST)主持開發(fā)的算法公開、免費(fèi)使用和世界通用的高級(jí)數(shù)據(jù)加密標(biāo)準(zhǔn)算法。AES屬于迭代型分組密碼算法,其分組長(zhǎng)度為128 b,密鑰長(zhǎng)度可設(shè)置為128 b、192 b或256 b,迭代圈數(shù)取決于密鑰長(zhǎng)度,其中AES-128的迭代圈數(shù)為10圈。
AES采用的是SP(代替-線性變換)網(wǎng)絡(luò)結(jié)構(gòu),待加密的128比特明文分組首先進(jìn)行初始圈密鑰加法,然后進(jìn)行算法迭代,除最后一圈沒有列混合變換外,每圈迭代的變換有字節(jié)代替變換、行移位變換、列混合變換和圈密鑰加法。硬件實(shí)現(xiàn)時(shí),AES算法可映射為S盒操作(Substitution)、字節(jié)置換操作(Permutation)、有限域(Galois Field, GF)乘法和異或操作(XOR)。以AES-128為例,其加密數(shù)據(jù)路徑如圖1所示,其中:S盒操作的運(yùn)算粒度為8 b,有限域乘法和異或操作的運(yùn)算粒度為32 b,字節(jié)置換操作的運(yùn)算粒度為128 b。
圖1 AES-128的加密數(shù)據(jù)路徑
軟件流水技術(shù)是一種重組循環(huán)體的技術(shù),通過調(diào)度使得不同循環(huán)體的指令能夠并行執(zhí)行,從而提高運(yùn)算效率。軟件流水技術(shù)把不同循環(huán)間的指令交織在一起執(zhí)行,但每個(gè)循環(huán)的指令依然是串行執(zhí)行的,從而在提高并行性的同時(shí)保證指令間的相關(guān)性。
軟件流水的原理如圖2所示,軟件流水技術(shù)將每個(gè)循環(huán)體分成若干段Stage,每個(gè)段中包括若干操作(一個(gè)流水段也可能不包含任何操作),不同的段能夠并行執(zhí)行。相鄰循環(huán)體的啟動(dòng)間隔稱為啟動(dòng)間距(Initiation Interval, II),每個(gè)流水段的執(zhí)行時(shí)間都等于II,本文中II均為1。軟件流水被分為3個(gè)階段:填充、核心和排空。
圖2 軟件流水技術(shù)原理
在填充階段,每隔II個(gè)周期啟動(dòng)一個(gè)新的循環(huán)體。在核心階段,軟件流水線完全填滿,以其最大生產(chǎn)能力并行執(zhí)行所有Stage,最高效情況下核心段能夠在一個(gè)周期內(nèi)遍歷所有Stage。在排空階段,不再有新的循環(huán)體啟動(dòng),但處于流水線中的循環(huán)仍在執(zhí)行,直到全部執(zhí)行完畢。
AES-128的輪函數(shù)較為規(guī)整,通過軟件流水技術(shù)重組單個(gè)分組的輪函數(shù)或多個(gè)分組的輪函數(shù),能夠挖掘不同操作間的指令級(jí)并行性,在提高功能單元利用率的同時(shí)有效提升算法執(zhí)行效率。
軟件流水技術(shù)非常依賴硬件結(jié)構(gòu)的支持,它要求功能單元能夠并行執(zhí)行,同時(shí)循環(huán)體的重疊執(zhí)行增加了寄存器需求。本文中的算法映射平臺(tái)RCSP支持功能單元并行執(zhí)行,且有足夠寄存器滿足需求。在RCSP處理器的單簇、雙簇和四簇結(jié)構(gòu)下進(jìn)行了AES-128的軟件流水實(shí)現(xiàn)及算法映射,不同運(yùn)算簇?cái)?shù)目時(shí)使用的功能單元數(shù)目也不同,具體的實(shí)現(xiàn)過程如下文所述。
3.1 單簇的軟件流水實(shí)現(xiàn)
單簇運(yùn)算時(shí)數(shù)據(jù)位寬為32 b,此時(shí)AES-128的順序執(zhí)行、串行/并行工作模式下軟件流水執(zhí)行如圖3所示。單簇運(yùn)算時(shí)使用到的運(yùn)算單元有1個(gè)32 b的異或單元、4個(gè)8—8并行的S盒單元、1個(gè)128 b的字節(jié)置換單元和1個(gè)32 b的有限域矩陣乘法單元,128 b的分組分為4個(gè)32 b的數(shù)據(jù)分塊,每個(gè)數(shù)據(jù)分塊依次執(zhí)行上述功能單元。
AES-128順序執(zhí)行過程如圖3(a)所示,每個(gè)數(shù)據(jù)分塊依次執(zhí)行同一操作后,再執(zhí)行下一操作。此時(shí)的輪函數(shù)由4個(gè)S盒操作、1個(gè)字節(jié)置換操作、4個(gè)有限域矩陣乘法操作和4個(gè)異或操作完成。在順序執(zhí)行時(shí),操作之間無法并行執(zhí)行,功能單元利用率和執(zhí)行效率都比較低。
在AES-128串行工作模式時(shí),密碼分組無法并行執(zhí)行。其軟件流水實(shí)現(xiàn)過程如圖3(b)所示,在填充階段,填充軟件流水線,即每經(jīng)過1個(gè)時(shí)鐘周期啟動(dòng)一個(gè)數(shù)據(jù)分塊去填充軟件流水線,由于P操作需要在4個(gè)分塊都完成S操作后才能啟動(dòng),故在前3個(gè)數(shù)據(jù)分塊完成S操作后插入NOP來填充流水線。此時(shí)的循環(huán)核心由S、P、GF、XOR和3個(gè)NOP操作組成7段Stage,由于串行模式下只能并行處理4個(gè)數(shù)據(jù)分塊,故軟件流水線無法填滿。在排空階段,循環(huán)核心段循環(huán)執(zhí)行9輪后軟件流水線開始“排水”,此時(shí)不再啟動(dòng)新的數(shù)據(jù)分塊操作,繼續(xù)完成尚未完成操作的數(shù)據(jù)分塊。
在AES-128并行工作模式時(shí),密碼分組能夠并行執(zhí)行。其軟件流水實(shí)現(xiàn)過程如圖3(c)所示,此時(shí)同一分組的不同數(shù)據(jù)分塊的操作能夠并行執(zhí)行,同時(shí)不同分組的不同數(shù)據(jù)分塊的操作也能夠并行執(zhí)行。在循環(huán)核心階段,軟件流水線以其完全最大生產(chǎn)能力并行執(zhí)行四種操作,值得注意的是由于P操作必須在S操作全部完成后才能啟動(dòng),故需要在等待周期內(nèi)插入空操作NOP,最高效情況下循環(huán)核心段能夠在一個(gè)時(shí)鐘周期內(nèi)遍歷所有的操作,即同一時(shí)鐘周期完成四個(gè)不同操作。此時(shí)的循環(huán)核心由S、P、GF、XOR和4個(gè)NOP操作組成8段Stage,并且并行處理8個(gè)數(shù)據(jù)分塊,完全填充軟件流水線。
3.2 雙簇的軟件流水實(shí)現(xiàn)
雙簇運(yùn)算時(shí)數(shù)據(jù)位寬為64 b,此時(shí)AES-128的順序執(zhí)行、串行/并行工作模式下軟件流水執(zhí)行如圖4所示。雙簇運(yùn)算時(shí)使用到的運(yùn)算單元有2個(gè)32 b的異或單元、8個(gè)8—8并行的S盒單元、1個(gè)128 b的字節(jié)置換單元和2個(gè)32 b的有限域矩陣乘法單元,128 b的分組分為2個(gè)64 b的數(shù)據(jù)分塊,每個(gè)數(shù)據(jù)分塊依次執(zhí)行上述功能單元。
圖3 單簇時(shí)順序執(zhí)行、串行/并行模式軟件流水實(shí)現(xiàn)
圖4 雙簇的順序執(zhí)行、串行/并行模式軟件流水實(shí)現(xiàn)
AES-128順序執(zhí)行過程如圖4(a)所示,每個(gè)數(shù)據(jù)分塊依次執(zhí)行同一操作后,再執(zhí)行下一操作。此時(shí)的輪函數(shù)由2個(gè)S盒操作、1個(gè)字節(jié)置換操作、2個(gè)有限域矩陣乘法操作和2個(gè)異或操作完成。在順序執(zhí)行時(shí),操作之間無法并行執(zhí)行,功能單元利用率和執(zhí)行效率都比較低。
AES-128串行工作模式軟件流水實(shí)現(xiàn)過程如圖4(b)所示,在填充階段,只能夠啟動(dòng)2個(gè)數(shù)據(jù)分塊填充軟件流水線。每個(gè)數(shù)據(jù)分塊的循環(huán)核心由S、P、GF、XOR和NOP操作組成5段Stage,此時(shí)軟件流水無法填滿。在排空階段,循環(huán)核心段循環(huán)執(zhí)行9輪后軟件流水線開始“排水”。
AES-128并行工作模式軟件流水實(shí)現(xiàn)過程如圖4(c)所示,此時(shí)每個(gè)數(shù)據(jù)分塊的循環(huán)核心由S、P、GF、XOR和2個(gè)NOP操作組成6段Stage,并且并行處理6個(gè)數(shù)據(jù)分塊,完全填充軟件流水線,使得功能單元的利用率得到較大提升。
軟件流水把不同數(shù)據(jù)分塊的加密操作交織在一起執(zhí)行,而單個(gè)數(shù)據(jù)分塊的操作依然按圖1所示的加密數(shù)據(jù)路徑串行執(zhí)行,這樣,既保證了每個(gè)數(shù)據(jù)分塊的指令相關(guān)依賴關(guān)系,又提高了指令級(jí)并行性和執(zhí)行效率。
3.3 四簇的軟件流水實(shí)現(xiàn)
四簇運(yùn)算時(shí)數(shù)據(jù)位寬為32 b,此時(shí)AES-128的順序執(zhí)行、串行/并行工作模式下軟件流水執(zhí)行如圖5所示。四簇運(yùn)算時(shí)使用到的運(yùn)算單元有4個(gè)32 b的異或單元、16個(gè)8—8并行的S盒單元、1個(gè)128 b的字節(jié)置換單元和4個(gè)32 b的有限域矩陣乘法單元,128 b的分組作為1個(gè)數(shù)據(jù)分塊依次執(zhí)行上述功能單元。
圖5 四簇的串行/并行模式軟件流水實(shí)現(xiàn)
如圖5(a)所示,AES-128順序執(zhí)行過程和串行工作模式軟件流水實(shí)現(xiàn)過程相同。此時(shí)128 b的分組數(shù)據(jù)按圖1所示的加密數(shù)據(jù)路徑遍歷所有操作完成密碼運(yùn)算,分組在執(zhí)行所有操作時(shí)完全并行,故無法開發(fā)不同操作間的并行性。
AES-128并行工作模式軟件流水實(shí)現(xiàn)過程如圖5(b)所示,此時(shí)每個(gè)數(shù)據(jù)分塊的循環(huán)核心由S、P、GF和XOR組成4段Stage,能夠并行處理4個(gè)分組,充分填充軟件流水線。值得注意的是由于末輪變換少1個(gè)GF,導(dǎo)致分組1的最后1個(gè)XOR操作與分組4的第10個(gè)XOR操作產(chǎn)生資源沖突,故4個(gè)分組的最后1個(gè)XOR前均插入NOP操作。
本文分析了AES-128的順序執(zhí)行、串行/并行模式下的軟件流水實(shí)現(xiàn)過程,并在可重構(gòu)密碼流處理器RCSP的單簇、雙簇和四簇資源下進(jìn)行了AES算法的映射,結(jié)果如表1所示。其中RCSP在65 nm互補(bǔ)金屬氧化物半導(dǎo)體(Complementary Metal Oxide Semiconductor, CMOS)工藝下的工作頻率為500 MHz。
表1 AES在RCSP處理器的映射結(jié)果 Gb/s
從表1中可知,當(dāng)算法處理數(shù)據(jù)位寬較小時(shí),各操作的數(shù)據(jù)級(jí)并行性開發(fā)較小,通過軟件流水技術(shù)能夠較大幅度提高算法的吞吐率。當(dāng)算法處理數(shù)據(jù)位寬較大時(shí),各操作的數(shù)據(jù)級(jí)并行性得到較大開發(fā),此時(shí)通過軟件流水在減小執(zhí)行周期的同時(shí)擴(kuò)展并行執(zhí)行分組數(shù),從而提高在并行工作模式下的算法吞吐率。
為了充分說明本文提出的AES算法軟件流水實(shí)現(xiàn)方法的優(yōu)勢(shì),本節(jié)選擇了3款處理器結(jié)構(gòu)進(jìn)行了吞吐率的對(duì)比。其中,BCORE[11]由16×32的可重構(gòu)單元構(gòu)成,每個(gè)單元的運(yùn)算粒度為8 b,涵蓋了分組密碼算法所需的基本運(yùn)算。RCCPA[12]采用分簇式設(shè)計(jì),包含4個(gè)處理簇,可根據(jù)密碼處理需要,靈活配置簇內(nèi)和簇間的互連結(jié)構(gòu),充分適應(yīng)密碼處理的并行及流水特性,其運(yùn)算資源規(guī)模與3.3節(jié)四簇結(jié)構(gòu)相當(dāng)。CCproc[13]有4個(gè)密碼運(yùn)算簇,每個(gè)簇的數(shù)據(jù)位寬為32 b,其運(yùn)算資源規(guī)模也與3.3節(jié)四簇結(jié)構(gòu)相當(dāng)。各結(jié)構(gòu)AES算法的吞吐率對(duì)比如圖6所示。
圖6 AES算法吞吐率對(duì)比
通過圖6對(duì)比可以看出,通過軟件流水技術(shù)來重組輪函數(shù),不僅能夠減小單分組的執(zhí)行周期數(shù),而且能夠擴(kuò)展并行執(zhí)行分組數(shù)來提高多分組執(zhí)行性能,同時(shí)還能夠提升功能單元利用率。
分組密碼算法大多是迭代型,通過多次調(diào)用輪函數(shù)從而實(shí)現(xiàn)數(shù)據(jù)的混亂和擴(kuò)散,進(jìn)而達(dá)到隱蔽數(shù)據(jù)的目的。本文通過軟件流水技術(shù)來開發(fā)單分組或多分組不同數(shù)據(jù)分塊的輪函數(shù)的指令級(jí)并行度,提高算法的執(zhí)行效率。AES-128的算法映射結(jié)果證明,軟件流水技術(shù)能夠有效提升密碼算法的執(zhí)行性能。由于不同的分組密碼算法結(jié)構(gòu)存在較大的差異性,其軟件流水實(shí)現(xiàn)過程也有所不同。下一步,將對(duì)分組密碼算法的結(jié)構(gòu)特征進(jìn)行分析總結(jié),并提出面向可重構(gòu)密碼流處理器RCSP的分組密碼算法軟件流水實(shí)現(xiàn)算法,使得密碼算法的映射過程更加自動(dòng)快速。
References)
[1] LIU B, BAAS B M. Parallel AES encryption engines for many-core processor arrays [J].IEEE Transactions on Computers, 2013, 62(3): 536-547.
[2] FRONTE D, PEREZ A, PAYRAT E. Celator: a multi-algorithm cryptographic co-processor [C] // Proceedings of the 2008 International Conference on Reconfigurable Computing and FPGAs. Piscataway, NJ: IEEE, 2008: 438-443.
[3] WANG S C, XU J H, YAN Y J, et al. A high-efficiency reconfigurable cryptographic processor [C]// Proceedings of the 2016 International Conference on Integrated Circuits and Microsystems. Piscataway, NJ: IEEE, 2016: 200-204.
[4] SAYILAR G, CHIOU D. Cryptoraptor: high throughput reconfigurable cryptographic processor [C]// ICCAD’14: Proceedings of the 2014 IEEE/ACM International Conference on Computer-Aided Design. Piscataway, NJ: IEEE, 2014: 154-161.
[5] WANG B, LIU L B. A flexible and energy-efficient reconfigurable architecture for symmetric cipher processing [C]// Proceedings of the 2015 IEEE International Symposium on Circuits and Systems. Piscataway, NJ: IEEE, 2015: 1182-1185.
[6] GRAND M, BOSSUET L, GAL B L, et al. Design and implementation of a multi-core crypto-processor for software defined radios [C]// ARC’11: Proceedings of the 7th International Conference on Reconfigurable Computing: Architectures, Tools and Applications, LNCS 6578. Berlin: Springer, 2011: 29-40.
[7] 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): Article No. 41.
[8] 王壽成,嚴(yán)迎建,徐進(jìn)輝,等.可重構(gòu)密碼流體系結(jié)構(gòu)模擬器設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2016,37(11):2923-2927.(WANG S C, YAN Y J, XU J H, et al. Design and implementation of reconfigurable cipher stream processor simulator [J]. Computer Engineering and Design, 2016, 37(11): 2923-2927.)
[9] 嚴(yán)迎建,王壽成,徐進(jìn)輝,等.面向密碼流體系結(jié)構(gòu)的超長(zhǎng)指令字可重構(gòu)研究[J].電子與信息學(xué)報(bào),2017,39(1):206-212.(YAN Y J, WANG S C, XU J H, et al. Research of reconfigurable very large instruction word on cipher stream architecture [J]. Journal of Electronics & Information Technology, 2017, 39(1): 206-212.)
[10] IQBAL N, SIDDIQUE M A, HENKEL J. RMOT: recursion in model order for task execution time estimation in a software pipeline [C]// DATE’10: Proceedings of the 2010 IEEE Conference on Design, Automation & Test in Europe. Leuven, Belgium: European Design and Automation Association, 2010: 953-956.
[11] 郭巖松,劉雷波.一種面向分組密碼的粗粒度可重構(gòu)陣列及AES算法映射[J].微電子學(xué)與計(jì)算機(jī),2015,32(9):1-5.(GUO Y S, LIU L B. A block cipher oriented coarse-grained reconfigurable array and AES algorithm mapping [J]. Microelectronics & Computer, 2015, 32(9): 1-5.)
[12] 李校南,王雪瑞,戴紫彬,等.可重構(gòu)分簇式分組密碼處理架構(gòu)[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(1):315-318.(LI X N, WANG X R, DAI Z B, et al. Reconfigurable clustered block cipher processing architecture [J]. Computer Applications and Software, 2014, 31(1): 315-318.)
[13] THEODOROPOULOS D, PAPAEFSTATHIOU I, PNEVMATIKATOS D. CCproc: an efficient cryptography coprocessor [C]// Proceedings of 16th IFIP/IEEE International Conference on Very Large Scale Integration. Piscataway, NJ: IEEE, 2008: 160-163.
This work is partially supported by the National Natural Science Foundation of China (61404175).
WANG Shoucheng, born in 1992, M. S. candidate. His research interests include design of application specific processor architecture.
XU Jinhui, born in 1978, Ph. D., lecturer. His research interests include reconfigurable computing.
YAN Yingjian, born in 1973, Ph. D., professor. His research interests include design of safety specific chip.
LI Gongli, born in 1981, Ph. D. candidate. Her research interests include information security.
JIA Yongwang, born in 1992, M. S. candidate. His research interests include information security.
Software pipelining realization method of AES algorithm based on cipher stream processor
WANG Shoucheng1*, XU Jinhui1, YAN Yingjian1, LI Gongli1,2, JIA Yongwang1
(1.CollegeofCryptogramEngineering,InformationEngineeringUniversity,ZhengzhouHenan450001,China; 2.CollegeofComputer&InformationEngineering,HenanNormalUniversity,XinxiangHenan453002,China)
Aiming at the excessively long time consumption of round function in block cipher implementation, a new software pipelining realization method of Advanced Encryption Standard (AES) algorithm based on Reconfigurable Cipher Stream Processor (RCSP) was proposed. The operations of round function were divided into several pipelining segments. The different pipelining segments corresponded to different cipher resources. The instruction level parallelism was developed to accelerate the execution speed of round function by executing different pipelining segments of multiple round functions in parallel. The execution efficiency of block cipher algorithm was improved. The separation processes of pipelining segments and software pipelining mapping methods of AES algorithm were analyzed with the computing resources of single cluster, two clusters and four clusters of RCSP. The experimental results show that, the proposed software pipelining realization method, which makes different data fragments of one block or multiple blocks processed in parallel, can not only improve the performance of a block serial execution, but also improve the performance of multiple blocks parallel execution by developing the parallelism between the blocks.
block cipher; Advanced Encryption Standard (AES) algorithm; software pipelining; instruction level parallelism; throughput
2016- 12- 02;
2017- 01- 29。 基金項(xiàng)目:國家自然科學(xué)基金資助項(xiàng)目(61404175)。
王壽成(1992—),男,甘肅金昌人,碩士研究生,主要研究方向:專用處理器體系結(jié)構(gòu)設(shè)計(jì); 徐進(jìn)輝(1978—),男,江西贛州人,講師,博士,主要研究方向:可重構(gòu)計(jì)算; 嚴(yán)迎建(1973—),男,河南周口人,教授,博士,主要研究方向:安全專用芯片設(shè)計(jì); 李功麗(1981—),女,河南信陽人,博士研究生,主要研究方向:信息安全; 賈永旺(1992—),男,河北邯鄲人,碩士研究生,主要研究方向:信息安全。
1001- 9081(2017)06- 1620- 05
10.11772/j.issn.1001- 9081.2017.06.1620
TP309.7
A