淺談GPON-AES的FPGA優(yōu)化實現(xiàn)
出處:lhqlhq1 發(fā)布于:2011-08-27 08:06:09
1. 概述
隨著通信技術迅猛發(fā)展,電信業(yè)務向綜合化、數(shù)字化、智能化、寬帶化和個人化方向發(fā)展,人們對電信業(yè)務多樣化的需求也不斷提高,同時由于主干網(wǎng)上SDH、ATM、無源光網(wǎng)絡(PON)及DWDM技術的日益成熟和使用,為實現(xiàn)話音、數(shù)據(jù)、圖象“三線合一,一線入戶”奠定了基礎。如何充分利用現(xiàn)有的網(wǎng)絡資源增加業(yè)務類型,提高服務質(zhì)量,已成為電信和運營商日益關注研究的課題,“一公里”解決方案是大家關心的焦點。因此,接入網(wǎng)成為網(wǎng)絡應用和建設的熱點。
所謂接入網(wǎng)是指骨干網(wǎng)絡到用戶終端之間的所有設備。其長度一般為幾百米到幾公里,因而被形象地稱為"一公里"。由于骨干網(wǎng)一般采用光纖結(jié)構(gòu),傳輸速度快,因此,接入網(wǎng)便成為了整個網(wǎng)絡系統(tǒng)的瓶頸。接入網(wǎng)的接入方式包括銅線(普通電話線)接入、光纖接入、光纖同軸電纜(有線電視電纜)混合接入、無線接入和以太網(wǎng)接入等幾種方式。
2. GPON-AES算法
中國普天推出的CP EPON01/OLT系列是業(yè)界款同時具備L2/L3交換功能的高集成度的GEPON系統(tǒng)設備,利用FTTH/FTTB/FTTC光纖網(wǎng)絡為各種用戶,如家庭用戶、企業(yè)用戶等,提供帶寬達到1Gbps的傳輸平臺。同時,又由于無源光網(wǎng)絡系統(tǒng)的天然優(yōu)勢,利用CP EPON01/OLT的新特性,運營商可以經(jīng)濟的造價和極少的光纜線路投資,方便地實現(xiàn)高速上網(wǎng)、實現(xiàn)高帶寬IP數(shù)據(jù)包以及IPTV組播業(yè)務的傳送。該系統(tǒng)主要由OLT(Optical Line Terminal,光纖線路終端)和ONU(Optical Network Unit,光纖網(wǎng)絡單元)以及分離器(Splitter)構(gòu)成,OLT提供到IP網(wǎng)的上行接口,連接IP城域網(wǎng)、IPTV網(wǎng)絡以及NGN網(wǎng)絡,同時提供8個PON下行端口,每個端口在單根光纖上支持32個光分路,因此單臺OLT設備即可支持256個ONU用戶,傳輸距離可達20km。其高度僅1U,安裝方便靈活。
2.1 AES算法
AES算法是美國標準技術研究所(NIST)于2001年11月正式發(fā)布的,密碼學中的加密標準(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標準。這個標準用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。經(jīng)過五年的甄選流程,加密標準由美國國家標準與技術研究院 (NIST)于2001年11月26日發(fā)布于FIPS PUB 197,并在2002年5月26日成為有效的標準。2006年,加密標準已然成為對稱密鑰加密中的算法之一。該算法為比利時密碼學家Joan Daemen和Vincent Rijmen所設計,結(jié)合兩位作者的名字,以Rijndael之命名之,投稿加密標準的甄選流程。(Rijdael的發(fā)音近于 "Rhinedoll"。)
AES算法定義了加密過程和解密過程,對應的流程如圖1所示。加密過程和解密過程都是一個周期迭代的過程,對于AES-128迭代次數(shù)為10。由于采用了迭代過程,而且每次迭代所需要的密鑰也不同,AES算法定義了密鑰擴展過程。密鑰擴展過程也是一個迭代過程,通過10個周期產(chǎn)生10個不同的密鑰供加密和解密使用。

圖1 AES的加密框圖
由于介紹AES原理的文章很多,本文就不展開介紹AES的各個部分,并且重點介紹加密過程。
2.2 GPON中AES加密過程
GPON采用的是適合高速網(wǎng)絡的計數(shù)器模式,通過這種方式可以很容易的產(chǎn)生隨機密碼流,更加難以被破譯,本文將主要討論計數(shù)器工作模式下AES-128算法的實現(xiàn)。
圖2是計數(shù)器模式下的AES算法的實現(xiàn)步驟。其中 是密鑰, 是計數(shù)器值; 是加密前的明文; 是加密后的密文,它們都是128bit。值得注意的是,計數(shù)器模式下,進行AES加密的并不是明文,而是計數(shù)器的值,密文由計數(shù)器加密結(jié)果與明文相異或產(chǎn)生。

圖2計數(shù)器模式下的AES算法計算步驟
GPON中,加密計數(shù)器與整個GTC下行幀有關,而AES密碼分組僅與數(shù)據(jù)的有效載荷有關。這兩個序列的關系如圖3所示,其中H表示GEM幀頭,P表示GEM幀靜荷。當一個數(shù)據(jù)包在OLT段發(fā)送或被ONU接受,包頭的個字節(jié)位置將被記錄,該字節(jié)位置的加密計數(shù)器的值將作為此幀靜荷的密碼分組計數(shù)器的起始值。

圖3加密計數(shù)器與加密塊的關系圖
3. GPON-AES的具體實現(xiàn)
由圖3可知,由于GEM幀的分組的一塊的長度會在1字節(jié)-16字節(jié)之間。對于大多數(shù)情況的16字節(jié)分組塊,要求AES在16個字節(jié)的傳輸時間內(nèi)給出加密結(jié)果,而嚴重的情況是分組塊只有一個字節(jié)加上后面跟著的5字節(jié)GEM幀頭,要求AES在6個字節(jié)的傳輸時間內(nèi)給出加密結(jié)果。
3.1. 整體優(yōu)化思路
OLT的下行支持2.488G的數(shù)據(jù)帶寬,考慮到FPGA設計的安全性,我們將FPGA系統(tǒng)工作在155. 52MHz的時鐘上。這樣整個系統(tǒng)的處理數(shù)據(jù)位寬為16bit,每個時鐘發(fā)送2個字節(jié)的數(shù)據(jù),16字節(jié)的分組用8個時鐘就可以發(fā)送完。對于GEM分組16字節(jié)長度凈荷的情況,其對AES的加密帶寬要求是2.488G。嚴重的情況(一個分組的長度是1個字節(jié),加上后面得5字節(jié)GEM幀頭),對AES的加密帶寬要求約是6.635G。
我們實際應用中,GPON走的是以太網(wǎng)業(yè)務。以65字節(jié)的以太網(wǎng)幀幀長(以太網(wǎng)的幀長為64字節(jié))為例進行分析,總共要進行4次16字節(jié)的分組和1字節(jié)的分組。這樣帶寬的需求為: 。而硬件設計AES的處理帶寬為W,需要滿足公式:即 ;因此在不影響電路的性能基礎上,考慮資源優(yōu)先,我們將AES的處理帶寬設計為4G左右,通過在AES的前后加上緩存Ram來平滑瞬時帶寬的影響。

圖4 GPON-AES的硬件結(jié)構(gòu)框圖
如圖4所示,AES的加密帶寬為4G,則在155.52MHz的時鐘上,每隔5個時鐘輸入AES加密。在GPON中,短的密碼塊分組是1個字節(jié),那么加上5字節(jié)的GEM幀頭,總共6個字節(jié),下行3個時鐘就能傳送完,因此Cntfifo緩存加密塊的密鑰和計數(shù)器信息。AES會將加密結(jié)果128bit花5個時鐘寫入ShaperFifo中,而Datafifo的數(shù)據(jù)位寬是16bit,因此Shaperfifo設計為兩級fifo,其中前是32位寬,后的寫端口是8bit、16bit、32bit的可變位寬,讀端口是8bit、16bit可變位寬fifo。而Datafifo只是起到一個延時的作用。而Cntfifo和Shaperfifo互相作用,用來平滑瞬時帶寬。
3.2. AES優(yōu)化實現(xiàn)
傳統(tǒng)實現(xiàn)方法包括基本迭代方法和流水線方法?;镜椒?0輪函數(shù)共用同一塊電路,消耗的資源,但AES加密至少要耗時10個時鐘節(jié)拍,并且每次加密完成之前,下一組的明文無法進入加密電路。流水線方法又分為輪內(nèi)流水和輪間流水,而輪內(nèi)流水的增加雖然可以提高整個電路的工作頻率,也導致每輪計算對時鐘節(jié)拍的需求增加。因此,加密帶寬也并沒有大幅度提高。輪間流水級別的增加,會提高吞吐率,相應的會直接導致了電路資源的成倍增加。
根據(jù)GPON-AES的電路需求,我們使用了一個輪間、輪內(nèi)流水復用的方法。這種方法結(jié)合了輪間流水和輪內(nèi)流水兩種方法的優(yōu)點,整個電路控制方便,電路的使用效率接近100%。首先AES加密,要經(jīng)過10輪,每一輪的處理又包括查表和一大堆的組合邏輯,我們將每一輪進行輪內(nèi)二級流水設計,并且每一輪都復用這個二級流水電路,這樣整個AES加密會消耗20個時鐘節(jié)拍,電路會安全的工作在155MHz的時鐘上。顯然這種方法達不到加密帶寬支持4G的設計目標。我們將10輪AES進行兩級輪間流水設計,前5輪共用一塊二級流水電路,后5輪共用另一塊二級流水電路。這樣AES加密每隔10個時鐘節(jié)拍,會輸出加密結(jié)果,可支持2G的處理帶寬,還是達不到系統(tǒng)的要求??紤]到每一輪使用兩個時鐘節(jié)拍,一個時鐘節(jié)拍分配給查找表,一個時鐘節(jié)拍分配給組合邏輯。查找電路和組合電路的利用率都是50%。因此每隔5個時鐘節(jié)拍,新的AES加密啟動進入電路,它們占用另外的時鐘進行查表和組合電路的執(zhí)行。

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

圖6 AES的五輪操作關鍵時序圖
圖5是一塊兩級輪內(nèi)流水的電路結(jié)構(gòu),對應的時序圖為圖6。具體實現(xiàn)時,我們使用兩塊這樣的電路,前一塊電路的結(jié)果直接輸出給后一塊電路的輸入端。這種方法充分利用流水和復用,時序緊湊,控制簡單,電路得到百分之百的利用。
4. 綜合結(jié)果比較
我們使用優(yōu)化方案對AES加密電路進行綜合,AES中的S-box查找表使用LUT搭建。使用Xillinx公司的Virtex5的器件,時鐘可以跑到為161MHz,綜合結(jié)果如下:
表1與參考文獻的綜合結(jié)果進行比較

如表1,綜合結(jié)果與參考文獻結(jié)果進行了比較。由于Xilinx器件的更新,其Slices的單元大小也發(fā)生了變化。我們這里統(tǒng)一Slices的大小為包含兩個LUT和兩個DF。可以看出與傳統(tǒng)方法相比,本文使用的輪內(nèi)流水輪間流水復用的方法具有很高的“加密帶寬資源比”。經(jīng)仿真驗證,此種方案完夠達到GPON實際系統(tǒng)的要求。
參考文獻:
[1]. NIST datasheet http://www.hbjingang.com/datasheet/NIST_2562226.html.
版權(quán)與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復控制的復合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎知識2025/6/18 16:30:52









