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

嵌入式AES加密IP核設計
用C 語言描述AES256 加密算法

用matlab實現(xiàn)AES加密算法

基于FPGA實現(xiàn)AES算法數(shù)據(jù)加密方案

DKT加密芯片AES256的數(shù)據(jù)手冊免費下載

評論