概述
近年來,信息安全應(yīng)用于生活中的各個領(lǐng)域.在光通信系統(tǒng)中,往往對速率有著較高的追求。其中對光模塊,光纖通信中的傳輸算法,傳輸?shù)哪J揭约肮獠ǘ芜x取有密切關(guān)聯(lián)。傳統(tǒng)的光通信系統(tǒng)在于保證傳輸帶寬和吞吐量而并未考慮到對信息安全的保護(hù)。隨著對帶寬,速率等要求日益增加,高速通信已經(jīng)成為基本的要求。光纖通信因其具有低損耗,高抗干擾性,從而廣泛得到應(yīng)用。近幾年由于大量用戶數(shù)據(jù)的泄露,造成了極大的損失,使得信息安全成為人們關(guān)注的焦點(diǎn)。
目前光纖加密的研究多采用量子加密的方法,本人在中科大量子物理實(shí)驗(yàn)室下屬機(jī)構(gòu)問天量子實(shí)習(xí)發(fā)現(xiàn),目前國內(nèi)外在實(shí)際工程上存在很多漏洞,無法做到光纖通信中的絕對安全,實(shí)現(xiàn)軍用和民用任重道遠(yuǎn)。華為傳輸加密解決方案,采用L1層加密技術(shù),對業(yè)務(wù)層透明,采用高強(qiáng)度的美學(xué)256算法,確保各行業(yè)的數(shù)據(jù)安全性。此方案雖然實(shí)現(xiàn)簡單,但缺點(diǎn)是吞吐量小、端口少、速率低。
對于AES算法的硬件實(shí)現(xiàn),國內(nèi)外研究學(xué)者大部分是基于FPGA的硬件實(shí)現(xiàn)。解放軍理工大學(xué)的呂游等人研究高級加密標(biāo)準(zhǔn)俄歇算法的設(shè)計(jì)原理,并通過加密部分和密鑰拓展共用S盒以減少資源占用,然后在FPGA上完成加密部分的優(yōu)化實(shí)現(xiàn),其加密模塊的最大吞吐率可達(dá)到1.326 Gbit/s,消耗1507個樂(1 BLM=1 LE=0.5 Slice)。埃及開羅德國大學(xué)的Mazen ei Maraghi,Salma Hesham等人研究速度與面積優(yōu)化的俄歇算法的FPGA實(shí)現(xiàn),利用循環(huán)迭代的方法減少邏輯資源的消耗,在FPGA芯片Xilinx Virtex 5 XC5VLX 50上實(shí)現(xiàn),使用了303個可編程邏輯單元(切片)、加密速度為1.33 Gbit/s...通過分析國內(nèi)外ASE在硬件上實(shí)現(xiàn)的研究現(xiàn)狀,我們想要用FPGA硬件實(shí)現(xiàn),達(dá)到5 Gbps的傳輸速率,這是完全可行的。
主要創(chuàng)新點(diǎn)
1.AES加密算法在上的實(shí)現(xiàn)
最常用的數(shù)據(jù)加密方式是軟件加密,即在通用微處理器上編程實(shí)現(xiàn),但其加密速度普遍不高,算法實(shí)現(xiàn)的效率較低,安全性和可靠性有限,很多時(shí)候不能滿足用戶的需求。因此,需要更加快速,更加安全可靠的加密實(shí)現(xiàn)方式來滿足人們在一些場合下的數(shù)據(jù)保密要求。
由于我們傳輸?shù)乃俾蔬_(dá)到5 Gbps、這種GTP高速接口下若使用FPGA+ARM架構(gòu)(如Zynq)、通過手臂完成加密算法將會使得我們效率大大降低,因此串行通信實(shí)現(xiàn)俄歇加密算法已經(jīng)不能滿足我們的需求,故我們采用純Pl端FPGA設(shè)計(jì)來實(shí)現(xiàn)加密算法。FPGA設(shè)計(jì)加密算法具有安全性高,加密速度快,開發(fā)周期短,開發(fā)成本較低,可重配,可靠性高以及移植性好等優(yōu)點(diǎn)。
2.AES算法在光纖鏈路上的算法移植
算法移植通常是通過成熟的庫函數(shù)進(jìn)行調(diào)用,該串行方式下一個時(shí)鐘周期只能完成一條指令的實(shí)現(xiàn),算法移植相對簡單,不會出現(xiàn)異步跨時(shí)鐘域處理高速數(shù)據(jù)等問題.我們選擇純Pl端完成算法移植,在一個時(shí)鐘周期下,既要完成算法的數(shù)據(jù)輸出,也要考慮到此刻光纖鏈路中傳輸狀態(tài)。因此我們的效率雖然大大提升,但對我們的設(shè)計(jì)是一個巨大的挑戰(zhàn)。
針對速率匹配,數(shù)據(jù)對接,緩沖設(shè)計(jì)等問題,我們分別進(jìn)行了模塊化設(shè)計(jì),分別對其進(jìn)行仿真和上板測試。在軟件調(diào)試部分有詳細(xì)的分析和設(shè)計(jì)介紹。證明我們的算法移植是成功的。
3.針對AES算法在光纖發(fā)送端進(jìn)行特定的幀定制
在算法移植過程中,我們針對俄歇算法對光纖協(xié)議進(jìn)行了幀定制。傳統(tǒng)的幀傳輸是對數(shù)據(jù)流進(jìn)行傳輸,對固定長度的數(shù)據(jù)流加上幀頭幀尾進(jìn)行判斷。一旦丟包,整個幀全部丟棄,造成了極大的浪費(fèi)。
我們對原始的這種光纖幀協(xié)議進(jìn)行了定制,在原來每一幀的基礎(chǔ)上,內(nèi)部對其封裝了四個子幀,每一個子幀由128位組成(原因是我們每次加密的數(shù)據(jù)是128位)。對于每一個子幀,幀頭為起始的16位數(shù)據(jù),具有和其他112位數(shù)據(jù)不一樣的脈寬長度,便于后續(xù)的幀解析。
通過我們的設(shè)計(jì),即使傳輸過程中丟包,只會影響該當(dāng)次的128位數(shù)據(jù),且該設(shè)計(jì)給我們幀解析,加密算法的解碼提供了便利的平臺。
4.接收端對幀數(shù)據(jù)恢復(fù)
光纖接收端設(shè)計(jì)部分除了會面臨數(shù)據(jù)流緩沖,高速率通信中異步跨時(shí)鐘域處理等問題,還要剝離原始子幀結(jié)構(gòu),并且去除光纖本身的幀頭幀尾。除了我們的加密數(shù)據(jù),奧羅拉協(xié)議本身還會不定期發(fā)送一些無效數(shù)據(jù),我們要對其進(jìn)行數(shù)據(jù)恢復(fù),并且拼接光纖鏈路中的16位數(shù)據(jù),封裝成一個個的128位加密數(shù)據(jù).這也是我們設(shè)計(jì)的一大難點(diǎn)。
5.高速通信中時(shí)序約束和信號完整性分析
對于GTP高速接口,我們對其做時(shí)序約束是非常有必要的。除此之外,還要要用專業(yè)的軟件對光口進(jìn)行測速,并對其信號質(zhì)量進(jìn)行分析和評估。
我們使用Seiral I/O分析儀連接到艾伯特核,驗(yàn)證高速串行通道的狀態(tài).從眼圖上可以觀察出碼間串?dāng)_和噪聲的影響較小,數(shù)字信號整體的特征良好,從而判斷出系統(tǒng)具有非常良好的性能。
作品的難點(diǎn)與創(chuàng)新點(diǎn)部分設(shè)計(jì),將會在第四部分(軟件設(shè)計(jì)與流程)中詳細(xì)的闡述。
系統(tǒng)架構(gòu)
1.AES加密算法
俄歇算法屬于對稱密碼體制中的一種分組密碼,有AES-128、192和256三種密鑰長度。以AES-256算法為例,算法的分組長度是256位,密鑰長度同樣是256位,在分組或密鑰長度不足256位時(shí),需按照相應(yīng)的補(bǔ)位規(guī)則補(bǔ)足256位。
在算法中有多輪的重復(fù)的變換稱為輪變換,輪變換有三種類型,分別為初始輪、重復(fù)輪和最終輪.每一輪中又包括:字節(jié)代換、行移位、列混合和子密鑰加幾個步驟,而最終輪沒有列混合這一步驟。這幾個步驟的大致過程如下,如圖3-1。
圖3-1:俄歇加解密過程
如圖3-2和圖3-3所示所示為S盒,逆S盒。字節(jié)代換是通過字節(jié)代換表(S)盒)對數(shù)據(jù)矩陣進(jìn)行非線性代換,行移位是以字節(jié)為單位對數(shù)據(jù)矩陣進(jìn)行有序的循環(huán)移位,列混合是將列混合矩陣與數(shù)據(jù)矩陣進(jìn)行一種矩陣乘法運(yùn)算,子密鑰加是將數(shù)據(jù)矩陣與子密鑰矩陣進(jìn)行按位的異或運(yùn)算,子密鑰按照特定的密鑰擴(kuò)展方法生成。由于屬于對稱密碼體制,算法的解密即為加密的逆運(yùn)算。
圖3-2:S盒構(gòu)造
圖3-3:逆S盒構(gòu)造
2.AES加密算法在硬件上的優(yōu)化
2.1字節(jié)替換與行位移
在俄歇算法迭代的過程中第一步就是進(jìn)行字節(jié)替代,它屬于非線性變換.按照它的替換規(guī)則,輸入A對應(yīng)唯一的輸出B、這中間的運(yùn)算過程如果用硬件組合邏輯實(shí)現(xiàn)的話,會浪費(fèi)大量的邏輯資源,而且也需要一定運(yùn)算的時(shí)間。既然輸入和輸出一一對應(yīng),輸入為8位字節(jié),那么輸出最多也就256種情況,而且對應(yīng)規(guī)則也知道,所以我們可以先用其他軟件,如MATLAB計(jì)算出輸入和輸出的置換表:輸入的低四位對應(yīng)列地址,高四位對用行地址的16*16的置換表.這樣通過輸入的8位二進(jìn)制數(shù)可以快速查找到對應(yīng)的8位二進(jìn)制數(shù)。相應(yīng)的在解密的過程中,也可以用置換表的方式完成逆字節(jié)的替換。這種優(yōu)化方法可以減少邏輯資源的消耗,也提高了運(yùn)算速度。
按照AES算法,進(jìn)行完字節(jié)替換后,緊接著是行位移.但是我們可以在進(jìn)行字節(jié)替換時(shí)同時(shí)進(jìn)行行變換,如輸入A矩陣的第3行,即第5、8、10、15字節(jié),對應(yīng)輸出新的矩陣B的第8、5、15、10字節(jié),這樣就可以同時(shí)完成字節(jié)替換和行位移,節(jié)省時(shí)間和資源。
2.2列混淆
完成字節(jié)替換和行位移后進(jìn)行列混淆,列混淆就是通過輸入矩陣的列重新加權(quán)再組合形成新的輸出矩陣。在這個計(jì)算過程中,加法運(yùn)算等價(jià)于異或運(yùn)算,乘法可以進(jìn)行優(yōu)化。乘法運(yùn)算則需要分為兩種情況考慮:如果8位二進(jìn)制數(shù)BIJ最高位為1、與02做乘法運(yùn)算時(shí),需要先左移一位,然后與00011011進(jìn)行異或運(yùn)算;如果它的最高位為0、與02做乘法運(yùn)算時(shí),只需要左移一位。而所有的數(shù)都能分解成02不同次冪的和,所以可以做一個02乘法查找表,這樣任何一個數(shù)都可以通過先分解成02的不同冪和,在通過查找表找到對應(yīng)的值,這樣就完成了乘法的優(yōu)化。在解密的過程也是一樣,通過查找表的方法優(yōu)化乘法。這樣僅用一個查找表的資源完成了多次組合邏輯運(yùn)算,極大的減少了邏輯資源的消耗。
2.3輪迭代內(nèi)部流水線結(jié)構(gòu)
俄歇算法加密過程包括10輪迭代,每輪迭代的組合邏輯模塊包括AddRoundkey,SubBytes與漂流,混合柱,密鑰擴(kuò)展。前面在每輪迭代之間引入了流水線,但單次輪迭代內(nèi)部中仍有3個組合邏輯模塊,為了降低延遲,所以在輪迭代內(nèi)部引入流水線結(jié)構(gòu)提升加密速度。
我們在加密過程中,加密算法消耗的實(shí)際時(shí)間為68個時(shí)鐘周期,以100米晶振為例,一次編碼過程僅消耗680 ns,保證了我們實(shí)際傳輸過程中在安全保密的基礎(chǔ)上,還能實(shí)現(xiàn)高速率通信。
2.4極光光纖鏈路協(xié)議
西林公司針對高速數(shù)據(jù)傳輸開發(fā)了一種輕量級的可定制的鏈路層協(xié)議--奧羅拉協(xié)議。協(xié)議內(nèi)部集成了與其相應(yīng)的GTP收發(fā)器,通過連接多個GTP可以實(shí)現(xiàn)傳輸帶寬的拓展,同時(shí)它也可以被上層的自定義協(xié)議或者其他行業(yè)標(biāo)準(zhǔn)協(xié)議采用。
奧羅拉協(xié)議描述了用戶數(shù)據(jù)在Aurora 8B/10B通道(頻道)之間的傳輸過程。一個Aurora 8B/10B通道(頻道)包含一個或者多個鏈路(里)、每個鏈路都是一個全雙工的串行通路。Aurora 8B/10B通道上的通信雙方被稱為通道對(頻道合伙人),如圖3-4。
? ?
圖3-4:奧羅拉鏈路框架
奧羅拉協(xié)議通用數(shù)據(jù)鏈路速率在480 Mb/s到84.48 Gb/。該協(xié)議具有如此強(qiáng)大的功能,究其原因是其內(nèi)部有一個專用硬核,這個硬核專門用來進(jìn)行數(shù)據(jù)的高速傳輸,并且它的傳輸方式可以由用戶根據(jù)實(shí)際需求來設(shè)置為全雙工或者單工。該硬核主要利用GTP收發(fā)器來進(jìn)行數(shù)據(jù)的傳輸。
奧羅拉協(xié)議主要對物理層接口、初始化和錯誤處理機(jī)制、數(shù)據(jù)排列、鏈路層以及流程控制作了定義和要求。其中物理層接口講述了電氣特性和時(shí)鐘編碼等;初始化和錯誤處理機(jī)制則定義了單通道和多通道兩種情況下,數(shù)據(jù)傳送之前對通道進(jìn)行初始化的步驟,同時(shí)介紹了在遇到錯誤代碼傳輸時(shí)該如何應(yīng)對處理的機(jī)制。數(shù)據(jù)排列描述了數(shù)據(jù)在通過一個通道后,如何在多個串行鏈路中進(jìn)行傳輸。鏈路層定義了一個用戶數(shù)據(jù)單元如何開始傳送以及如何結(jié)束傳送,同時(shí)還描述了在數(shù)據(jù)傳輸過程中如何暫停數(shù)據(jù)流并插入更高優(yōu)先級數(shù)據(jù)的過程.除此之外,鏈路層還提供了當(dāng)出現(xiàn)接收器和發(fā)射器在時(shí)鐘速率上出現(xiàn)差異問題時(shí)該如何解決的方案措施。最后,流程控制則是規(guī)定了鏈路層流程控制機(jī)制,以及上層用戶流程控制信息的傳輸機(jī)制。
我們之所以選擇奧羅拉協(xié)議,放棄了PCIe,SRIO 2.0,UDP等協(xié)議,考慮到以下一些因素:奧羅拉協(xié)議除了可以達(dá)到很高傳輸速率外,在鏈路數(shù)目選擇的靈活性,協(xié)議的可定制性上,遠(yuǎn)遠(yuǎn)超過了上述的協(xié)議。由于我們需要用到奧羅拉協(xié)議傳輸加密數(shù)據(jù),故冗余信息越少越好,否則對冗余信息加密將造成很大的帶寬損失.奧羅拉協(xié)議的可定制性主要表現(xiàn)在:
1.可以很方便的使用AXI 4-流進(jìn)行幀傳輸/流傳輸;
2.可附加16位的加擾器/解擾器;
3.可選16位/32位的啟聯(lián)校驗(yàn);
4.支持熱拔插(熱插拔)等方面。
4.硬件電路設(shè)計(jì)
我們硬件電路設(shè)計(jì)主要體現(xiàn)在SFP+光口與FPGA板卡之間的設(shè)計(jì)。如圖3-5所示。
圖3-5:FPGA與SFP+連接設(shè)計(jì)
首先我們介紹所使用的光模塊。圖3-6所示為我們使用的SFP光口實(shí)物圖與引腳圖。使用的SFP+的光模塊支持8B/10B,也可支持64b/66B的長波(1310 nm)的單模光纖(SMF),有效傳輸距離為2M到10公里。事實(shí)上最高可達(dá)到25公里。光口支持SFP-MSA協(xié)議,選用的光模塊支持10 GBase-LR/LW。
圖3-6:SFP+實(shí)物圖與引腳圖 FPGA與SFP+光口的電路的原理圖設(shè)計(jì)如圖3-7所示。
圖3-7:FPGA與SFP+光口連接圖
設(shè)計(jì)演示
艾伯特(綜合誤碼率測試儀)是西林提供的用于調(diào)試FPGA芯片內(nèi)高速串行接口的工具。它通過JTAG總線提供了FPGA到Vivado串行I/O分析儀的通道.通過艾伯特用戶可以定制線速率、參考時(shí)鐘速率、參考時(shí)鐘來源,總線寬度。它同時(shí)還額外需要一個系統(tǒng)時(shí)鐘,這個時(shí)鐘可以來自GTX收發(fā)器或者其它FPGA管腳。
使用艾伯特進(jìn)行GTP通道的驗(yàn)證有以下三個步驟:
1.生成艾伯特核:根據(jù)硬件高速串行總線的需求來定制和生成伊伯核。
2.使用上一步的艾伯特核自動生成艾伯特參考設(shè)計(jì)并生成鉆頭文件。
3.使用Seiral I/O分析儀連接到艾伯特核,并驗(yàn)證高速串行通道的狀態(tài)。
我們在維瓦多中生成該測試工具,對SFP+光口實(shí)際發(fā)出的數(shù)據(jù)進(jìn)行測速和信號完整性分析。如圖5-1所示。我們可以在圖的正下方觀察到該鏈路的實(shí)際速率為5 Gbps、速率完全滿足我們的設(shè)計(jì)需求;誤碼率越低,顏色越偏向藍(lán)色(深藍(lán)色);當(dāng)誤碼率越高,顏色越偏向紅色,眼圖張開的大小就代表信號質(zhì)量的好壞。我們通過觀察眼圖可以發(fā)現(xiàn),藍(lán)色區(qū)域很大,且角度張開合理。結(jié)合圖5-2,通過5 Gbps速率的光纖傳輸4.557E10位數(shù)據(jù)后,誤碼率僅為2.195E-11,遠(yuǎn)低于官方規(guī)定的誤碼率1.E-10標(biāo)準(zhǔn),可以得出結(jié)論:信號完整性分析良好,信號質(zhì)量傳輸可靠。
圖5-1:二維眼掃描眼圖
圖5-2:誤碼率結(jié)果圖
同時(shí)我們通過算法在硬件上的優(yōu)化,可以占用很少的資源到達(dá)所需要求,如圖5-3和圖5-4所示,可以看出很低的資源利用率。
圖5-3:發(fā)送端資源利用率統(tǒng)計(jì)圖
圖5-4:接收端資源利用率統(tǒng)計(jì)圖
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602978 -
收發(fā)器
+關(guān)注
關(guān)注
10文章
3424瀏覽量
105959 -
FPGA設(shè)計(jì)
+關(guān)注
關(guān)注
9文章
428瀏覽量
26508 -
信號完整性
+關(guān)注
關(guān)注
68文章
1404瀏覽量
95458 -
光纖通信
+關(guān)注
關(guān)注
20文章
486瀏覽量
44735 -
AES加密算法
+關(guān)注
關(guān)注
0文章
5瀏覽量
5934
原文標(biāo)題:基于FPGA的AES256光纖加密設(shè)計(jì)
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論