《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種GPON-AES的FPGA優(yōu)化實(shí)現(xiàn)
一種GPON-AES的FPGA優(yōu)化實(shí)現(xiàn)
中國(guó)信息產(chǎn)業(yè)網(wǎng)
摘要: 本文介紹了GPON中嵌入AES算法的過程以及AES加解密算法。對(duì)AES計(jì)數(shù)器模式在GPON中的FPGA實(shí)現(xiàn)給出了優(yōu)化的解決方案,詳細(xì)介紹了一種輪間流水和輪內(nèi)流水復(fù)用,控制簡(jiǎn)單的AES的實(shí)現(xiàn)方法,并給出了關(guān)鍵時(shí)序圖和綜合結(jié)果。
Abstract:
Key words :

Abstract:This paper describes the procedure of AES encryption in GPON system and the detail method of AES encryption. We come up with a FPGA implementation of AES CTR mode in GPON system. Particularly introduce a more efficiency and more controllable AES implementation for high speed network. Finally provide key timing figure and synthesis results.

關(guān)鍵詞:Key Words

GPON Gigabit-capable Passive Optical Networks

AES Advanced Encryption Standard

OLT Optical Line Terminal

ONU Optical Network Unit

1. 概述

隨著骨干網(wǎng)的高速發(fā)展,接入網(wǎng)逐漸成為了信息高速公路的瓶頸。GPON是基于ITU-T G.984.x[1]標(biāo)準(zhǔn)的最新一代寬帶無源光網(wǎng)絡(luò)接入技術(shù)。它能提供前所未有的高比特速率(最高可達(dá)2.488Gbps)、更高的QOS、以原有數(shù)據(jù)格式傳送、具有極高的效率等優(yōu)勢(shì),越來越被業(yè)界認(rèn)可,將成為FTTH的最主要的接入形式。

2. GPON-AES算法

GPON系統(tǒng)是一個(gè)點(diǎn)到多點(diǎn)的系統(tǒng),對(duì)于系統(tǒng)中的上行數(shù)據(jù),ONU到OLT為單播方式傳輸,具有良好的方向性,較難攻擊。下行數(shù)據(jù)為廣播式傳輸,用戶在物理上可以接收到OLT發(fā)給所有用戶的信息,所以惡意用戶可以根據(jù)接受到的信息,冒充其他ONU用戶,從而竊聽、盜取他人信息。在GPON啟動(dòng)后,OLT和ONU應(yīng)通過OMCI通道來協(xié)商加密算法。目前GPON僅規(guī)定支持AES[2]加密算法。

2.1 AES算法

AES算法是美國(guó)標(biāo)準(zhǔn)技術(shù)研究所(NIST)于2001年11月正式發(fā)布的,它是一種分組加密算法,處理的最小單元是一個(gè)分組,即把明文或密文分成固定長(zhǎng)度的分組,進(jìn)而進(jìn)行加密或解密處理。GPON中使用的就是AES-128,分組大小為128比特,支持的密鑰長(zhǎng)度也是128比特。

AES算法定義了加密過程和解密過程,對(duì)應(yīng)的流程如圖1所示。加密過程和解密過程都是一個(gè)周期迭代的過程,對(duì)于AES-128迭代次數(shù)為10。由于采用了迭代過程,而且每次迭代所需要的密鑰也不同,AES算法定義了密鑰擴(kuò)展過程。密鑰擴(kuò)展過程也是一個(gè)迭代過程,通過10個(gè)周期產(chǎn)生10個(gè)不同的密鑰供加密和解密使用。

圖1 AES的加密框圖

由于介紹AES原理的文章很多,本文就不展開介紹AES的各個(gè)部分,并且重點(diǎn)介紹加密過程。

2.2 GPON中AES加密過程

GPON采用的是適合高速網(wǎng)絡(luò)的計(jì)數(shù)器模式,通過這種方式可以很容易的產(chǎn)生隨機(jī)密碼流,更加難以被破譯,本文將主要討論計(jì)數(shù)器工作模式下AES-128算法的實(shí)現(xiàn)。

圖2是計(jì)數(shù)器模式下的AES算法的實(shí)現(xiàn)步驟。其中 是密鑰, 是計(jì)數(shù)器值; 是加密前的明文; 是加密后的密文,它們都是128bit。值得注意的是,計(jì)數(shù)器模式下,進(jìn)行AES加密的并不是明文,而是計(jì)數(shù)器的值,密文由計(jì)數(shù)器加密結(jié)果與明文相異或產(chǎn)生。

圖2計(jì)數(shù)器模式下的AES算法計(jì)算步驟

GPON中,加密計(jì)數(shù)器與整個(gè)GTC下行幀有關(guān),而AES密碼分組僅與數(shù)據(jù)的有效載荷有關(guān)。這兩個(gè)序列的關(guān)系如圖3所示,其中H表示GEM幀頭,P表示GEM幀靜荷。當(dāng)一個(gè)數(shù)據(jù)包在OLT段發(fā)送或被ONU接受,包頭的第一個(gè)字節(jié)位置將被記錄,該字節(jié)位置的加密計(jì)數(shù)器的值將作為此幀靜荷的密碼分組計(jì)數(shù)器的起始值。對(duì)于接下來的密碼分組,密碼分組計(jì)數(shù)器將逐一遞增。這種排列保證了OLT和ONU計(jì)數(shù)器值的一致性。

圖3加密計(jì)數(shù)器與加密塊的關(guān)系圖

3. GPON-AES的具體實(shí)現(xiàn)

由圖3可知,由于GEM幀的分組的最后一塊的長(zhǎng)度會(huì)在1字節(jié)-16字節(jié)之間。對(duì)于大多數(shù)情況的16字節(jié)分組塊,要求AES在16個(gè)字節(jié)的傳輸時(shí)間內(nèi)給出加密結(jié)果,而最嚴(yán)重的情況是分組塊只有一個(gè)字節(jié)加上后面跟著的5字節(jié)GEM幀頭,要求AES在6個(gè)字節(jié)的傳輸時(shí)間內(nèi)給出加密結(jié)果。簡(jiǎn)言之,GPON-AES系統(tǒng)對(duì)AES的加密瞬時(shí)帶寬的要求不是固定的。

3.1. 整體優(yōu)化思路

OLT的最大下行支持2.488G的數(shù)據(jù)帶寬,考慮到FPGA設(shè)計(jì)的安全性,我們將FPGA系統(tǒng)工作在155. 52MHz的時(shí)鐘上。這樣整個(gè)系統(tǒng)的處理數(shù)據(jù)位寬為16bit,每個(gè)時(shí)鐘發(fā)送2個(gè)字節(jié)的數(shù)據(jù),16字節(jié)的分組用8個(gè)時(shí)鐘就可以發(fā)送完。對(duì)于GEM分組16字節(jié)長(zhǎng)度凈荷的情況,其對(duì)AES的加密帶寬要求是2.488G。最嚴(yán)重的情況(最后一個(gè)分組的長(zhǎng)度是1個(gè)字節(jié),加上后面得5字節(jié)GEM幀頭),對(duì)AES的加密帶寬要求約是6.635G。如果將AES硬件模塊的處理帶寬設(shè)計(jì)大于6.635G,會(huì)滿足系統(tǒng)的各種情況,但整個(gè)電路資源消耗也會(huì)非常龐大。

我們實(shí)際應(yīng)用中,GPON走的是以太網(wǎng)業(yè)務(wù)。以65字節(jié)的以太網(wǎng)幀幀長(zhǎng)(以太網(wǎng)的最小幀長(zhǎng)為64字節(jié))為例進(jìn)行分析,總共要進(jìn)行4次16字節(jié)的分組和一次1字節(jié)的分組。這樣帶寬的需求為: 。而硬件設(shè)計(jì)AES的處理帶寬為W,需要滿足公式: ,即 ;因此在不影響電路的性能基礎(chǔ)上,考慮資源優(yōu)先,我們將AES的處理帶寬設(shè)計(jì)為4G左右,通過在AES的前后加上緩存Ram來平滑瞬時(shí)帶寬的影響。

圖4 GPON-AES的硬件結(jié)構(gòu)框圖

如圖4所示,AES的加密帶寬為4G,則在155.52MHz的時(shí)鐘上,每隔5個(gè)時(shí)鐘輸入一次AES加密。在GPON中,最短的密碼塊分組是1個(gè)字節(jié),那么加上5字節(jié)的GEM幀頭,總共6個(gè)字節(jié),下行3個(gè)時(shí)鐘就能傳送完,因此Cntfifo緩存加密塊的密鑰和計(jì)數(shù)器信息。AES會(huì)將加密結(jié)果128bit花5個(gè)時(shí)鐘寫入ShaperFifo中,而Datafifo的數(shù)據(jù)位寬是16bit,因此Shaperfifo設(shè)計(jì)為兩級(jí)fifo,其中前一級(jí)是32位寬,后一級(jí)的寫端口是8bit、16bit、32bit的可變位寬,讀端口是8bit、16bit可變位寬fifo。而Datafifo只是起到一個(gè)延時(shí)的作用。而Cntfifo和Shaperfifo互相作用,用來平滑瞬時(shí)帶寬。調(diào)整這三個(gè)fifo的深度,則會(huì)改變電路的平滑瞬時(shí)加密帶寬的能力。

3.2. AES優(yōu)化實(shí)現(xiàn)

傳統(tǒng)實(shí)現(xiàn)方法包括基本迭代方法和流水線方法?;镜椒?0輪函數(shù)共用同一塊電路,消耗的資源最小,但AES加密至少要耗時(shí)10個(gè)時(shí)鐘節(jié)拍,并且每次加密完成之前,下一組的明文無法進(jìn)入加密電路。流水線方法又分為輪內(nèi)流水和輪間流水,而輪內(nèi)流水的增加雖然可以提高整個(gè)電路的工作頻率,也導(dǎo)致每輪計(jì)算對(duì)時(shí)鐘節(jié)拍的需求增加。因此,加密帶寬也并沒有大幅度提高。輪間流水級(jí)別的增加,會(huì)提高吞吐率,相應(yīng)的會(huì)直接導(dǎo)致了電路資源的成倍增加。

根據(jù)GPON-AES的電路需求,我們使用了一個(gè)輪間、輪內(nèi)流水復(fù)用的方法。這種方法結(jié)合了輪間流水和輪內(nèi)流水兩種方法的優(yōu)點(diǎn),整個(gè)電路控制方便,電路的使用效率接近100%。首先一次AES加密,要經(jīng)過10輪,每一輪的處理又包括查表和一大堆的組合邏輯,我們將每一輪進(jìn)行輪內(nèi)二級(jí)流水設(shè)計(jì),并且每一輪都復(fù)用這個(gè)二級(jí)流水電路,這樣整個(gè)AES加密會(huì)消耗20個(gè)時(shí)鐘節(jié)拍,電路會(huì)安全的工作在155MHz的時(shí)鐘上。顯然這種方法達(dá)不到加密帶寬支持4G的設(shè)計(jì)目標(biāo)。我們將10輪AES進(jìn)行兩級(jí)輪間流水設(shè)計(jì),前5輪共用一塊二級(jí)流水電路,后5輪共用另一塊二級(jí)流水電路。這樣AES加密每隔10個(gè)時(shí)鐘節(jié)拍,會(huì)輸出加密結(jié)果,可支持2G的處理帶寬,還是達(dá)不到系統(tǒng)的要求??紤]到每一輪使用兩個(gè)時(shí)鐘節(jié)拍,一個(gè)時(shí)鐘節(jié)拍分配給查找表,一個(gè)時(shí)鐘節(jié)拍分配給組合邏輯。查找電路和組合電路的利用率都是50%。因此每隔5個(gè)時(shí)鐘節(jié)拍,新的AES加密啟動(dòng)進(jìn)入電路,它們占用另外的時(shí)鐘進(jìn)行查表和組合電路的執(zhí)行。這樣AES經(jīng)過兩次輪間流水和兩次輪內(nèi),整個(gè)系統(tǒng)工作在155MHz,每隔5個(gè)時(shí)鐘節(jié)拍就可以輸出結(jié)果,整個(gè)電路支持4G的處理帶寬。

圖5兩級(jí)流水的輪操作電路結(jié)構(gòu)

圖6 AES的五輪操作關(guān)鍵時(shí)序圖

圖5是一塊兩級(jí)輪內(nèi)流水的電路結(jié)構(gòu),對(duì)應(yīng)的時(shí)序圖為圖6。具體實(shí)現(xiàn)時(shí),我們使用兩塊這樣的電路,前一塊電路的結(jié)果直接輸出給后一塊電路的輸入端。這種方法充分利用流水和復(fù)用,時(shí)序緊湊,控制簡(jiǎn)單,電路得到百分之百的利用。

4. 綜合結(jié)果比較

我們使用優(yōu)化方案對(duì)AES加密電路進(jìn)行綜合,AES中的S-box查找表使用LUT搭建。使用Xillinx公司的Virtex5的器件,時(shí)鐘可以跑到為161MHz,綜合結(jié)果如下:

表1與參考文獻(xiàn)的綜合結(jié)果進(jìn)行比較

如表1,綜合結(jié)果與參考文獻(xiàn)結(jié)果進(jìn)行了比較。由于Xilinx器件的更新,其Slices的單元大小也發(fā)生了變化。我們這里統(tǒng)一Slices的大小為包含兩個(gè)LUT和兩個(gè)DF??梢钥闯雠c傳統(tǒng)方法相比,本文使用的輪內(nèi)流水輪間流水復(fù)用的方法具有很高的“加密帶寬資源比”。經(jīng)仿真驗(yàn)證,此種方案完全能夠達(dá)到GPON實(shí)際系統(tǒng)的要求。

參考書目:

[1] TIU-T Standard G.984.3[S], 2008-03

[2] FIPS Publication 197, Advanced Encryption Standard (AES) [S]

[3] K. Gaj and P. Chodowiec, “Comparison of the Hardware Performance of the AES Candidates using Reconfigurable Hardware,” The Third Advanced Encryption Standard (AES3) Candidate Conference, New York, USA, April 13-14, 2000.

[4] Shuenn-Shyang Wang, Wan-Sheng Ni. An Efficient FPGA Implementation of Advanced Encryption Standard Algorithm. Circuits and Systems, 2004. ISCAS’04. Proceedings of the 2004 International Symposium on Volume 2, 23-26 May 2004 Page(s):II-597-600 Vol.2

[5] Kimmo U. Järvinen, Matti Tommiska, Jorma Skyttä (bib), “A fully pipelined memoryless 17.8 Gbps AES-128 encryptor”, FPGA 2003, Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays, February 23-25, 2003, Monterey, CA, USA. ACM, 2003.

[6] Muhammad H.Rais and Syed M. Qasim. A Novel FPGA Implementation of AES-128 using Reduced Residue of Prime Numbers based S-Box. IJCSNS International Journal of Computer Science and Network Security, VOL.9 No.9, September 2009
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。