国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA實現(xiàn)IPSec的優(yōu)化研究?

2018-02-07 05:45劉路遙
艦船電子工程 2018年1期
關(guān)鍵詞:封包時鐘運算

劉路遙 劉 進 周 勛 袁 濤

(武漢船舶通信研究所 武漢 430200)

1 引言

隨著國際互聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)絡(luò)應(yīng)用也在不斷的演變。利用互聯(lián)網(wǎng)技術(shù),大大提升了全球信息交流的速度,充分體現(xiàn)了互聯(lián)網(wǎng)的開放性帶給全世界的益處。但正是這種開放性的存在,導致互聯(lián)網(wǎng)中潛藏著越來越大的風險,一旦有局域網(wǎng)接入互聯(lián)網(wǎng),那么局域網(wǎng)中用戶的信息很有可能被泄露,被局域網(wǎng)外的用戶知悉、篡改、假冒等。同時,互聯(lián)網(wǎng)應(yīng)對黑客攻擊等安全方面顯得十分的乏力。所以高速發(fā)展的網(wǎng)絡(luò)使得網(wǎng)絡(luò)安全問題愈發(fā)嚴峻,在面對安全威脅時,迫切需要一種行之有效的解決方法。

于是互聯(lián)網(wǎng)工程任務(wù)組IETF(Internet Engi?neering Task Force)提出了IP安全(IPSecurity)體系結(jié)構(gòu),簡稱IPSec,目的是通過采取加密措施保護用戶之間的IP通信。IPSec技術(shù)的出現(xiàn)大大提高了互聯(lián)網(wǎng)環(huán)境中的信息在網(wǎng)絡(luò)中傳輸?shù)陌踩?。IPSec技術(shù)被用于IP層,以IP數(shù)據(jù)包為處理對象,提供數(shù)據(jù)完整性驗證、數(shù)據(jù)源身份認證、抗重放攻擊等各種安全性服務(wù),能夠明顯降低出現(xiàn)安全威脅。

本論文介紹了在硬件上實現(xiàn)IPSec的結(jié)構(gòu)體系和封包解包處理器及其工作流程;詳細介紹了基于FPGA的AES加密算法和SHA-256算法實現(xiàn),針對兩種算法進行了硬件實現(xiàn)的優(yōu)化設(shè)計。本文中的優(yōu)化設(shè)計是在Xilinx公司的Virtex-4芯片上進行仿真。

2 IPSec的硬件體系結(jié)構(gòu)

IPSec的硬件體系結(jié)構(gòu)如圖1所示。包含內(nèi)網(wǎng)模塊、數(shù)據(jù)緩存模塊、IPSec封包處理模塊、IPsec解包處理模塊、加解密模塊、認證模塊、安全關(guān)聯(lián)數(shù)據(jù)庫(SAD)模塊和安全策略數(shù)據(jù)庫(SPD)模塊。

圖1 IPSec硬件體系結(jié)構(gòu)

以IPSec協(xié)議的外出處理為例,內(nèi)網(wǎng)模塊在接收到一幀數(shù)據(jù)之后,檢查該幀是否有效,若該幀數(shù)據(jù)有效則解封掉數(shù)據(jù)幀的頭尾,變成網(wǎng)絡(luò)IP報文,將IP報文發(fā)送至數(shù)據(jù)緩存模塊。然后經(jīng)過IPSec封包處理模塊,將封包后的數(shù)據(jù)發(fā)送到數(shù)據(jù)緩存模塊,再發(fā)送到外網(wǎng)模塊,外網(wǎng)模塊將此數(shù)據(jù)組成數(shù)據(jù)幀并以數(shù)據(jù)流的形式發(fā)送到下一層。

2.1 IPSec封包協(xié)處理器

IPSec的封包協(xié)處理器如圖2所示。當收到的數(shù)據(jù)流進入IPSec封包協(xié)處理器時,IP頭會進入IP?Sec控制器,通過檢索安全策略數(shù)據(jù)庫SPD得到安全關(guān)聯(lián)(SA)指針,然后在安全關(guān)聯(lián)數(shù)據(jù)庫SAD中獲取相應(yīng)的安全關(guān)聯(lián)SA,若是在SAD中沒有相應(yīng)的SA,則由密鑰協(xié)商協(xié)議(IKE)生成相應(yīng)的SA。在包過濾模塊中根據(jù)SA將數(shù)據(jù)包丟棄或者直接發(fā)送到發(fā)送緩沖區(qū)或者應(yīng)用IPSec處理。需要經(jīng)過IPSec處理的數(shù)據(jù)先經(jīng)過AES進行加密,然后經(jīng)過HMAC模塊進行處理,再重新計算數(shù)據(jù)包的IP校驗和,最后才能發(fā)送出去。

圖2 IPSec封包協(xié)處理器

2.2 IPSec解包協(xié)處理器

IPSec解包協(xié)處理器如圖3所示。接收到的數(shù)據(jù)包經(jīng)過IP校驗,如果錯誤則直接將此包丟棄。通過IP校驗的數(shù)據(jù)包會根據(jù)數(shù)據(jù)包中的下一協(xié)議是否為安全封裝載荷(ESP)協(xié)議或者認證頭(AH)協(xié)議而做出相應(yīng)的處理,如果不是,則根據(jù)其他地址查找SPD,如果有相應(yīng)的策略則丟棄,否則繞過。若下一個協(xié)議是ESP或者AH,則使用三元組在SAD中查找SA并對數(shù)據(jù)進行IPSec處理。然后通過將SAD和SPD相連的指針進行匹配而找到使用的SPD,驗證是否與采取的IPSec處理相符,如果相符則發(fā)送到上層進行處理,若是不符則丟棄。

圖3 IPSec解包協(xié)處理器

3 AES和SHA-256的優(yōu)化

在IPSec體系結(jié)構(gòu)中,用到的加解密算法通常是3DES或者AES,用到的哈希算法通常是SHA-1、SHA-2系列。由于SHA-1已被攻破,存在安全隱患,所以本試驗采用的是更為安全的SHA-256。本論文將詳述AES算法和SHA-256算法。

本論文是在Xilinx的Virtex-4系列FPGA上進行實驗。此芯片運行速度快,有著并行運算的優(yōu)勢,在每個時鐘周期內(nèi)完成更多的任務(wù),有處理復(fù)雜功能的能力。

3.1 AES的優(yōu)化

AES算法是于2001年由美國國家標準技術(shù)協(xié)會發(fā)布的高級加密標準。作為一個對稱分組密碼算法,其分組長度可以為128位、192位和256位。本論文介紹的是分組長度為128位的,密鑰長度為256位的算法。

AES算法加密過程如圖4所示,加密包括字節(jié)替換、行移位、列混合和輪密鑰加四個過程,其中列混合是運算中最復(fù)雜的。解密過程與加密過程相近,包括逆字節(jié)替換、逆行移位、逆列混合和輪密鑰加。

3.1.1 多項式模運算

若a∈GF(28),則a可以表示為

那么:

圖4 AES加解密過程

由于:f(x)=x8+x4+x3+x+1

當a7=0時有:

當a7=1時有:

所以對于任意給定的輸入數(shù)據(jù)a(7:0),當執(zhí)行GF(28)上的x乘法運算時首先將a(7:0)左移一位,得到數(shù)據(jù)(a(6:0),0),其次判斷數(shù)據(jù)最高位的值,所以輸出的數(shù)據(jù)為

c(x)=xa(x)=(a6a5a4a3a2a1a00)+(000a7a70a7a7)

所以AES算法中GF(28)上的x乘法電路如圖5所示。

圖5 x乘法電路圖

3.1.2 列混合與逆列混合運算

列混合是將狀態(tài)陣列的每一列視為系數(shù)在GF(28)上,次數(shù)小于4的多項式,被同一個固定的多項式c(x)進行模x4+1乘法。AES的設(shè)計者所給出的c(x)為

列混合運算可以表示為GF(28)上的可逆線性變換:

通過上述的介紹可以將此運算改進為循環(huán)移位和異或兩種簡單的邏輯運算,更加適合硬件電路的設(shè)計,不需要進行多項式的模乘和模除這種復(fù)雜的運算,可以大大提高運算的效率。

AES解密過程中的逆列混合運算與加密過程中的列混合運算不同:

由上式可知逆列混合運算的復(fù)雜度遠遠大于列混合運算,可以通過下列方法優(yōu)化其逆列混合運算過程:

逆列混合運算可以變換成:

'05','04'的計算量明顯要比變換之前的計算量小,而且變換之后逆列混合運算可以調(diào)用列混合運算中的模塊,減少AES算法對資源的占用,優(yōu)化前后的資源如表1所示。

表1 AES在Virtex-4上的綜合報告

吞吐率=(分組長度*時鐘頻率)/分組運算占用時鐘周期數(shù)。此算法分組長度為128bit,分組運算占用時鐘周期數(shù)為16個時鐘周期。

從表1中可以看到,在經(jīng)過優(yōu)化后,運算頻率有所提高,吞吐率有了提升,面積占用有所減小,可見本論文中提到的方法有一定的效果。

3.2 SHA-256的優(yōu)化

SHA-256算法是指將長度不大于264bit的信息通過64次循環(huán)運算計算出256位的哈希值。哈希運算單元每次處理512位信息。SHA-256單次循環(huán)步驟如圖6所示。

圖6 SHA-256單步運算

其中前16個Wt是最初的512bit消息塊分成的16個32bit數(shù)據(jù),后48個Wt由上面的公式計算所得。

SHA-256算法由64個圖6中的單步運算組成,每一輪 a,b,c,d,e,f,g,h 都是當前輪的輸入,也是上一輪的輸出。每一輪運算里面求a的關(guān)鍵路徑最長,也是延時最大的,可以通過流水的方式減少其最長路徑。

可以通過增加寄存器,減少關(guān)鍵路徑的長度,將a的計算分解成兩個時鐘完成,第一個時鐘計算:

第二個時鐘計算:

然后采用流水的方式在計算a的同時計算下一輪的T1,T2,T3,通過這種并行計算使整個算法的時鐘只增加一個,但是減少了關(guān)鍵路徑的長度,提高了運算速度。

采用本論文中提到的方法前后資源占用、最大時鐘頻率和吞吐率如表2所示。

表2 SHA-256在Virtex-4上的綜合報告

從表2可以看到,與文獻[8],文獻[9]相比,本論文優(yōu)化后的最大時鐘頻率有了一定的提高,資源占用面積也減小了,在數(shù)據(jù)最大吞吐率上面有了明顯的提高,在提升算法性能上有著顯著的效果。

4 結(jié)語

本論文通過分析IPSec硬件實現(xiàn)的結(jié)構(gòu)體系,詳細介紹了基于此安全協(xié)議上的封包和解包流程,針對其中對稱算法AES和哈希算法SHA-256的運算過程進行了詳細的分析。并對這兩個算法進行了硬件實現(xiàn)和優(yōu)化設(shè)計,在頻率、面積上有了一定的優(yōu)化,使得數(shù)據(jù)吞吐率和優(yōu)化之前有了明顯的提高,提升了兩種算法的性能。

[1]Atkinson R.Kent S.Security Architecture for the Internet Protocol[S].RFC2401,1998.

[2]田春歧,王立明,蔡勉.IPSec VPN的研究和分析[J].計算機工程與應(yīng)用,2004,40(4):163-166.

[3]劉航.一種用于IPSec協(xié)議的AES算法可重配置硬件實現(xiàn)[J].小型微型計算機系統(tǒng),2005.12(26):2083-2085.

[4] Wu Jianwu.Implementation of Virtual Private Network based on IPSec Protocol[C]//IEEE Future Computer and Communication,2009:138-141.

[5]A J.Elbirt.Accelerated AES implementations via general?ized instruction set extensions[J].Journal of Computer Se?curity,2008,16(3):265-288.

[6]梁旭,凌朝東,張麗紅.基于FPGA的AES算法的實現(xiàn)[J].通信技術(shù),2011,44(12):111-113.

[7]陳華鋒.高速SHA-256算法硬件實現(xiàn)[J].浙江大學學報,2009,11(6):675-678.

[8]劉鈺力.基于FPGA的SHA256高效數(shù)字加密系統(tǒng)[D].蘭州:蘭州大學,2011.

[9]湯煜,翁秀玲,王云峰.SHA_256哈希運算單元的硬件優(yōu)化實現(xiàn)[J].中國集成電路,2016,25(5):26-31.

[10]何潤民.單向Hash函數(shù)SHA-256的研究與改進[J].信息技術(shù),2013,14(8):22-25.

[11]葛輝.一種256位hash函數(shù)算法[J].大眾科技,2005,6(5):107-108.

[12]佟玉偉,陸浪如,李明等.基于FPGA先進加密算法AES的并行實現(xiàn)[J].交通信息與安全,2002,20(6):20-22.

[13]沈啟峰,黃士坦,楊靚.基于FPGA先進加密算法AES的高速實現(xiàn)[J].西安理工大學學報,2006,22(2):203-206.

猜你喜歡
封包時鐘運算
中藥封包在急診老年急性胃腸炎患者中的臨床應(yīng)用
重視運算與推理,解決數(shù)列求和題
古代的時鐘
護膚 巧用保鮮膜
一種無人機回收系統(tǒng)的安全優(yōu)化
長算式的簡便運算
這個時鐘一根針
“整式的乘法與因式分解”知識歸納
有趣的時鐘
時鐘會開“花”