0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AES算法的流水線性能在可重構(gòu)平臺上的優(yōu)化實(shí)現(xiàn)方法研究

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-05-03 09:08 ? 次閱讀

1 、AES-RijndaeI算法總體結(jié)構(gòu)

AES-Rijndael算法是一個替換一置換網(wǎng)絡(luò)結(jié)構(gòu)的分組密碼算法。它的設(shè)計基于有限域上的多項(xiàng)式運(yùn)算,密碼算法的主體結(jié)構(gòu)由4部分組成:SubBytes,進(jìn)行S-盒非線性變換;ShiftRows,狀態(tài)矩陣的水平置換;MixCol-umns,執(zhí)行有限域GF(28)上的矩陣乘運(yùn)算;AddRoundK-eys,通過簡單異或運(yùn)算使子密鑰與狀態(tài)矩陣發(fā)生聯(lián)系。算法經(jīng)過Nr輪變換,將一個128位明文分組加密成為一個128位的密文分組。這里Nr是一個與密鑰長度相關(guān)的常數(shù)。對于128位密鑰的情況,Nr的值為 10。除了最后一輪外,其他每一輪加密過程都相同。最后一輪加密中省去了 MixColumns變換,以抵抗某些特殊密碼分析。

2 、循環(huán)展開和流水線優(yōu)化

對于前述AES加密過程的實(shí)現(xiàn),如圖1(a)所示,我們針對可重構(gòu)平臺下4個變換函數(shù)的實(shí)現(xiàn)方法進(jìn)行了優(yōu)化,優(yōu)化后的加密過程時鐘頻率達(dá)到了127.9 MHz。這樣,對于一個128位明文分組的加密需要11個時鐘周期,因此,其加密速率為1.49 Gb/s。這一速率已經(jīng)能滿足絕大多數(shù)應(yīng)用的需要,然而為了滿足一些更高速應(yīng)用的需要,可以通過改變加密處理過程體系結(jié)構(gòu)進(jìn)一步優(yōu)化相應(yīng)設(shè)計。要提高加密速率,最簡單的方法是使用循環(huán)展開技術(shù)將迭代加密的結(jié)構(gòu)展開,并將多份加密輪變換電路的輸入輸出首尾相連,如圖1(b)所示。這樣可以節(jié)省寄存器建立延遲和選路器的傳輸延遲時間,從而加快加密變換處理的速度。然而,這種方法會消耗大量的邏輯資源,并且性能提高得不多。根據(jù)我們的實(shí)驗(yàn),循環(huán)展開后的芯片速度比迭代結(jié)構(gòu)增加了17%,然而所消耗的邏輯資源卻是迭代結(jié)構(gòu)的6倍。因此,這一優(yōu)化方法的效率是極其低的;只有在對性能要求很高,但資源又充分的情況下才能采用。

AES算法的流水線性能在可重構(gòu)平臺上的優(yōu)化實(shí)現(xiàn)方法研究

另外一種優(yōu)化方法是使用流水線技術(shù)。它是將關(guān)鍵執(zhí)行路徑切分為多級短的執(zhí)行步,并在各執(zhí)行步電路間插入寄存器存儲上一級執(zhí)行結(jié)果。這樣,雖然關(guān)鍵執(zhí)行路徑?jīng)]有變短,但電路可以在一個較少的時鐘周期內(nèi)同時處理多個數(shù)據(jù)塊的加密,從而提高了并發(fā)程度,因此,加密速率也就能大大提高。在設(shè)計加密算法處理流水線的過程中,最常用的是輪間流水線技術(shù)。輪問流水線技術(shù)是將循環(huán)展開結(jié)構(gòu)按各加密輪切分為一系列的流水線,其中每一輪加密變換為一級。在流水線的各級之間插入寄存器,寄存器由同步時鐘來控制,每次時鐘觸發(fā),就保存上一次的變換結(jié)果,同時將之前保存的結(jié)果送流水線處理部件處理并將結(jié)果保存到下一級寄存器中,如圖1(c)所示。根據(jù)我們的實(shí)驗(yàn)結(jié)果(見圖3),輪間流水線結(jié)構(gòu)的設(shè)計,加密速率是迭代結(jié)構(gòu)的12倍;同時資源消耗也大量增長,是迭代結(jié)構(gòu)的7倍。由實(shí)驗(yàn)結(jié)果可見,輪間流水線技術(shù)是一種對分組加密算法很有效的優(yōu)化技術(shù)。特別是當(dāng)算法中加密輪函數(shù)較為簡單的情況下,輪間流水線技術(shù)是相當(dāng)適用的;但是,對于一些輪函數(shù)復(fù)雜,加密輪數(shù)較少的算法,輪問流水線技術(shù)的優(yōu)化效果就不是很突出了。

Chodowiec等人提出了輪內(nèi)流水線技術(shù),以優(yōu)化這類加密變換輪較為復(fù)雜的算法。輪內(nèi)流水線將加密輪分割為多級,在每一級間插入寄存器,以實(shí)現(xiàn)流水線,如圖2(a)所示。這種方法的優(yōu)點(diǎn)在于所增加的資源消耗很少,僅需多級寄存器;然而也存在缺點(diǎn),輪內(nèi)流水線很難平衡各級間的延遲,而整體時鐘的頻率只能由最長流水線的延遲決定。我們的實(shí)驗(yàn)將AES加密函數(shù)按其組成模塊分割為4級流水線,要將其分為更多級也是可以做到的,但較為困難,因?yàn)轭愃芐一盒這樣的長結(jié)構(gòu)很難再分,而它們的延遲將決定總體時鐘的頻率。

AES算法的流水線性能在可重構(gòu)平臺上的優(yōu)化實(shí)現(xiàn)方法研究

根據(jù)圖3所示實(shí)驗(yàn)結(jié)果,輪內(nèi)流水線結(jié)構(gòu)的執(zhí)行效率比迭代結(jié)構(gòu)的執(zhí)行效率高5倍,而所需資源反而比迭代結(jié)構(gòu)減少11%。經(jīng)分析,輪間流水線結(jié)構(gòu)加入了模塊問寄存器,所需資源應(yīng)該增加,而實(shí)際綜合結(jié)果卻是減少。為此我們詳細(xì)分析了兩模塊中各結(jié)構(gòu)的綜合報告。從報告的數(shù)據(jù)看,應(yīng)該是邏輯綜合軟件對設(shè)計的優(yōu)化,使得輪間流水線結(jié)構(gòu)所需資源反而減少。

AES算法的流水線性能在可重構(gòu)平臺上的優(yōu)化實(shí)現(xiàn)方法研究

為了達(dá)到極高的加密速度,將輪內(nèi)流水線和輪外流水線結(jié)合使用,設(shè)計了混和輪內(nèi)外流水線結(jié)構(gòu)。混合輪內(nèi)外流水線結(jié)構(gòu)具有極短的流水線單級延遲,因而時鐘頻率可以提高到212.5 MHz。同時,混合輪內(nèi)外流水線結(jié)構(gòu)能夠在每一時鐘周期內(nèi)完成一個數(shù)據(jù)分組的加密,這樣,加密的速度就可以達(dá)到27.1 Gb/s。這一速度是目前有關(guān)AES的高速加密芯片實(shí)現(xiàn)的報告中數(shù)據(jù)較高的。為了達(dá)到這樣高的加密速度,所需要的資源也是相當(dāng)可觀的。邏輯綜合結(jié)果顯示,完成這一設(shè)計需要17 887個邏輯單元,如圖4所示。這相當(dāng)于4塊Xilinx XC2V1000 FPGA的容量。同時,我們也*估了各種實(shí)現(xiàn)結(jié)構(gòu)的效率,用速率資源比,即每秒所能進(jìn)行加密的Mb數(shù)除以設(shè)計所需的邏輯單元數(shù)目得到的比值作為結(jié)構(gòu)的效率。從圖5可以看到,輪內(nèi)循環(huán)結(jié)構(gòu)是最高效的一種設(shè)計,其比值為3.49;而循環(huán)展開結(jié)構(gòu)效率最低,僅0.12。因此,在邏輯資源相對有限的條件下,選擇使用輪內(nèi)循環(huán)是比較合適的。

AES算法的流水線性能在可重構(gòu)平臺上的優(yōu)化實(shí)現(xiàn)方法研究

3 、結(jié) 論

綜上所述,除對AES加密算法基本運(yùn)算變換的優(yōu)化外,算法的整體實(shí)現(xiàn)結(jié)構(gòu)對其加密性能的影響是很重要的一個方面。一般情況下,在對效率要求不是很高的環(huán)境中,迭代結(jié)構(gòu)實(shí)現(xiàn)簡單,所需資源最少,因而較為合適;但要達(dá)到更高的加密效率,并且希望實(shí)現(xiàn)代價較低的情況下,采用輪內(nèi)流水線結(jié)構(gòu)是一個較為合理的折中方案;只有當(dāng)有大量資源可用并且追求最高的加密性能時,才有必要采用輪內(nèi)輪間多級混合流水線結(jié)構(gòu)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49636

    瀏覽量

    417189
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119206
收藏 人收藏

    評論

    相關(guān)推薦

    基于粒子群算法的自適應(yīng)LMS濾波器設(shè)計及重構(gòu)硬件實(shí)現(xiàn)

    空間,從而獲得全局優(yōu)化的系數(shù).設(shè)計的濾波器應(yīng)用于系統(tǒng)的跟蹤響應(yīng)中,并在基于重構(gòu)硬件的平臺上實(shí)現(xiàn)自適應(yīng)濾波器.從收斂和失調(diào)
    發(fā)表于 04-26 16:13

    重構(gòu)平臺AES算法流水線性能怎么優(yōu)化?

    重構(gòu)平臺AES算法流水線性能怎么優(yōu)化
    發(fā)表于 04-28 06:46

    現(xiàn)代RISC中的流水線技術(shù)

    作Stretch計算機(jī))。后來的CDC 6600同時采用了流水線和多功能部件。到了20世紀(jì)80年代,流水線技術(shù)成為RISC處理器設(shè)計方法中最基本的技術(shù)之一。RISC設(shè)計方法的大部分技術(shù)
    發(fā)表于 03-01 17:52

    基于FPGA的AES加密算法的高速實(shí)現(xiàn)

    介紹AES算法的原理以及基于FPGA的高速實(shí)現(xiàn)。結(jié)合算法和FPGA的特點(diǎn),采用查表法優(yōu)化處理了字節(jié)代換運(yùn)算、列混合運(yùn)算。同時,為了提高系統(tǒng)工
    發(fā)表于 07-17 18:09 ?46次下載

    什么是流水線技術(shù)

    什么是流水線技術(shù) 流水線技術(shù)
    發(fā)表于 02-04 10:21 ?3892次閱讀

    YHFT-DX高性能DSP指令控制流水線設(shè)計與優(yōu)化

    摘要:YHFT-DX是國防科技大學(xué)設(shè)計的一款高性能定點(diǎn)DSP。論文設(shè)計并實(shí)現(xiàn)了YHFT-DX指令控制流水線,提出了在YHFT-DX超長指令字結(jié)構(gòu)中跨取指包邊界派發(fā)和指令預(yù)取的方法,有效
    發(fā)表于 02-28 15:22 ?36次下載

    電鍍流水線的PLC控制

    電鍍流水線的PLC控制電鍍流水線的PLC控制電鍍流水線的PLC控制
    發(fā)表于 02-17 17:13 ?36次下載

    一種針對重構(gòu)處理器流水線簡化編程的設(shè)計范式

    一種針對重構(gòu)處理器流水線簡化編程的設(shè)計范式_周君宇
    發(fā)表于 01-07 21:39 ?0次下載

    分布式調(diào)度算法流水線單位產(chǎn)能優(yōu)化設(shè)計_李世光

    分布式調(diào)度算法流水線單位產(chǎn)能優(yōu)化設(shè)計_李世光
    發(fā)表于 01-12 20:03 ?0次下載

    電能計量設(shè)備自動檢定流水線調(diào)度優(yōu)化研究_方彥軍

    電能計量設(shè)備自動檢定流水線調(diào)度優(yōu)化研究_方彥軍
    發(fā)表于 01-18 20:23 ?1次下載

    面向RCSP的AES算法軟件流水實(shí)現(xiàn)方法

    針對輪函數(shù)在分組密碼實(shí)現(xiàn)過程中耗時過長的問題,提出了面向重構(gòu)密碼流處理器( RCSP)的高級加密標(biāo)準(zhǔn)( AES算法軟件
    發(fā)表于 12-01 17:15 ?1次下載

    淺談GPU的渲染流水線實(shí)現(xiàn)

    顏色表示了不同階段的可配置性或可編程性:綠色表示該流水線階段是完全可編程控制的,黃色表示該流水線階段可以配置但不是可編程的,藍(lán)色表示該流水線階段是由GPU固定實(shí)現(xiàn)的,開發(fā)者沒有任何控制
    發(fā)表于 05-04 09:16 ?3764次閱讀
    淺談GPU的渲染<b class='flag-5'>流水線</b><b class='flag-5'>實(shí)現(xiàn)</b>

    各種流水線特點(diǎn)及常見流水線設(shè)計方式

    按照流水線的輸送方式大體可以分為:皮帶流水裝配線、板鏈線、倍速鏈、插件線、網(wǎng)帶線、懸掛線及滾筒流水線這七類流水線。
    的頭像 發(fā)表于 07-05 11:12 ?7042次閱讀
    各種<b class='flag-5'>流水線</b>特點(diǎn)及常見<b class='flag-5'>流水線</b>設(shè)計方式

    嵌入式_流水線

    流水線一、定義流水線是指在程序執(zhí)行時多條指令重疊進(jìn)行操作的一種準(zhǔn)并行處理實(shí)現(xiàn)技術(shù)。各種部件同時處理是針對不同指令而言的,他們同時為多條指令的不同部分進(jìn)行工作。? 把一個重復(fù)的過程分解
    發(fā)表于 10-20 20:51 ?6次下載
    嵌入式_<b class='flag-5'>流水線</b>

    什么是流水線 Jenkins的流水線詳解

    jenkins 有 2 種流水線分為聲明式流水線與腳本化流水線,腳本化流水線是 jenkins 舊版本使用的流水線腳本,新版本 Jenkin
    發(fā)表于 05-17 16:57 ?971次閱讀