文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.175115
中文引用格式: 李君豪,,畢麗霞,,王永利. 多通道高速數(shù)據(jù)安全傳輸系統(tǒng)的設計與實現(xiàn)[J].電子技術應用,2018,,44(9):125-128.
英文引用格式: Li Junhao,,Bi Lixia,Wang Yongli. Design and implementation of multi-channel high-speed data security transmission system[J]. Application of Electronic Technique,,2018,,44(9):125-128.
0 引言
近幾年來,,隨著電子信息技術的飛速發(fā)展,物聯(lián)網(wǎng),、云計算和大數(shù)據(jù)等新型的應用涌現(xiàn),,規(guī)模龐大的數(shù)據(jù)集呈爆炸式增長[1],這對現(xiàn)代數(shù)據(jù)傳輸系統(tǒng)的數(shù)據(jù)傳輸能力提出了更高的要求,;與此同時,,新的黑客技術、更先進的電子竊聽和信息截獲篡改等技術的出現(xiàn)也使得信息的安全性受到很大的威脅,。因此,,在信息全球化的今天,數(shù)據(jù)傳輸能力和安全性兩方面兼顧已逐漸成為現(xiàn)代數(shù)據(jù)傳輸系統(tǒng)發(fā)展的重要方向[2],。
本文提出了一種基于CPU+FPGA的架構方案,,為解決現(xiàn)代數(shù)據(jù)傳輸系統(tǒng)所遇到的上述問題提供一個思路。此方案以CPU作為整個系統(tǒng)的控制大腦,,完成軟件和資源配置的同時也負責實現(xiàn)多路通道的動態(tài)切換和選擇,,以適應不同的工作需求。同時充分利用FPGA的硬件并行處理和邏輯運算能力實現(xiàn)數(shù)據(jù)的加解密,,并在FPGA已有的I/O接口資源基礎上采用TI公司的高速串行收發(fā)器TLK2711設計穩(wěn)定可靠的高速串行接口模塊[3],,最終實現(xiàn)多通道高速數(shù)據(jù)安全傳輸系統(tǒng)。
1 系統(tǒng)架構設計
如圖1所示,,多通道高速數(shù)據(jù)安全傳輸系統(tǒng)主要由主控模塊,、密碼處理模塊以及接口轉換與適配模塊等組成,。
1.1 主控模塊設計
主控模塊由CPU、存儲芯片以及配套的外圍電路組成,??紤]到安全方面,CPU選用的是國產(chǎn)低功耗芯片龍芯1A,,主要實現(xiàn)系統(tǒng)與外部通信以及動態(tài)配置和管理FPGA等功能,;存儲芯片選用的是AT24C64,存儲容量為64 Kbit,,主要為程序和相應的初始配置文件,、參數(shù)等提供存儲空間。
1.2 密碼處理模塊設計
密碼處理模塊主要由FPGA和噪聲源芯片組成,,其中FPGA選用Xilinx公司的高性能Virtex4系列芯片XC4VSX55,,主要負責加解密功能的實現(xiàn),保證數(shù)據(jù)傳輸過程的機密性,;噪聲源芯片選用WNG-5,,它是一種數(shù)字物理噪聲源,主要用于產(chǎn)生真隨機序列,,是密碼處理模塊不可缺少的基礎部件,。
1.3 接口轉換與適配模塊設計
接口轉換與適配模塊主要由數(shù)據(jù)處理接口和管理控制接口組成。相較于并行數(shù)據(jù)傳輸模式,,高速串行傳輸模式具有帶寬高,、信號完整性好、電磁輻射低等優(yōu)點,,所以數(shù)據(jù)處理接口選用串行接口(LVDS)和相應的幀邊界指示信號來實現(xiàn)數(shù)據(jù)的高速傳輸,。同時考慮到一些標準高速串行通信協(xié)議由于需提供許多不同類型的服務而導致有大量的通信冗余數(shù)據(jù),惡化了延時性能等問題[4],,本系統(tǒng)選擇使用高速串行收發(fā)器TLK271來完成高速LVDS信號和并行數(shù)據(jù)之間的轉換,,從而提高系統(tǒng)的可靠性并減少資源占有率[5]。
管理控制接口采用RS232串口,,主要負責對外進行通信,,根據(jù)接收的相關信息,配置系統(tǒng)工作在不同的模式下,。
2 系統(tǒng)軟件設計
為保證系統(tǒng)能高速穩(wěn)定地運行,,除了合理的硬件架構設計外,各功能模塊的軟件程序設計也至關重要,。其中高速接口模塊軟件設計和加解密模塊軟件設計是決定性能瓶頸的關鍵,。
2.1 高速接口軟件設計
高速接口模塊軟件設計主要是在FPGA中通過程序設計與TLK2711交互完成高速數(shù)據(jù)的串并轉換,具體工作流程如圖2所示。
TLK2711的工作流程可以分為發(fā)射器部分和接收器部分,發(fā)射器部分基于提供的參考時鐘(GTX_CLK)鎖存輸入的16 bit并行數(shù)據(jù),,經(jīng)過內(nèi)部的8B/10B編碼轉換成20 bit并行數(shù)據(jù),,編碼后的數(shù)據(jù)以20倍參考時鐘頻率采用差分串行方式傳輸出去。接收器部分對接收到的數(shù)據(jù)完成串并轉換,,將得到的20 bit并行數(shù)據(jù)經(jīng)過內(nèi)部同步恢復時鐘(RX_CLK),,然后再經(jīng)過8B/10B解碼將這20 bit并行數(shù)據(jù)解碼為原始的16 bit數(shù)據(jù)[6]。為了更靈活地控制高速數(shù)據(jù)的發(fā)送和接收,,為4路通道分別設計了發(fā)送/接收幀邊界指示信號TXORDER和RXORDER(均設計為低有效)。TLK2711的數(shù)據(jù)總線傳輸位寬為16 bit,,分為高8位和低8位,,編碼方式由高8位控制信號TKMSB/RKMSB和低8位控制信號TKLSB/RKLSB共同控制。
在數(shù)據(jù)接收端,,由于TLK2711的工作機制,,在進行數(shù)據(jù)接收時RXLSB和RXMSB會出現(xiàn)3種情況,RXMSB和RXLSB同時變低,,RXMSB先于RXLSB一個時鐘周期拉低,,或RXLSB先于RXMSB一個時鐘周期變低。所以在數(shù)據(jù)接收時應對數(shù)據(jù)進行校準,,同時為了解決信號從一個時鐘域傳送到另一個時鐘域時出現(xiàn)的亞穩(wěn)態(tài)問題,將校準后的數(shù)據(jù)寫入異步FIFO作為緩沖,,等待后續(xù)處理,。
在數(shù)據(jù)發(fā)送端,,先將幀邊界指示信號TXORDER拉低,,然后通過TXLSB和TXMSB控制數(shù)據(jù)發(fā)送,。當TXLSB和TXMSB都為低時發(fā)送的數(shù)據(jù)為有效數(shù)據(jù);都為高時發(fā)送數(shù)據(jù)b10111100作為comma檢測碼[7],。由于RXORDER為接收數(shù)據(jù)的使能信號,,只有當該信號無效,,同時發(fā)送FIFO為空時,才能表明該幀數(shù)據(jù)已完整接收,、處理并發(fā)送完畢。
2.2 加解密軟件設計
加解密模塊主要實現(xiàn)對高速數(shù)據(jù)的加解密工作,,是數(shù)據(jù)安全傳輸?shù)母荆黧w功能在FPGA中實現(xiàn),。為了確保傳輸過程的機密性和提高系統(tǒng)的加解密速度,通過對比DES,、3DES和AES等算法,最終采用新一代數(shù)據(jù)加密標準AES算法,。由于AES算法的分組長度固定為128 bit,密鑰長度只有128 bit,、192 bit和256 bit 3種,只能對固定分組長度的數(shù)據(jù)進行加解密[8],,所以選擇AES算法的OFB模式,。該模式工作時需要一個初始化向量IV[9],為確保通信的機密性,,利用驗證過的數(shù)字物理噪聲源芯片WNG-5來產(chǎn)生真隨機數(shù)序列作為加密每一幀數(shù)據(jù)的IV,。
加解密模塊的具體基本工作流程如圖3所示,。
首先對收到的數(shù)據(jù)按照幀協(xié)議進行解析,,這里收到的數(shù)據(jù)就是高速接口模塊中存入異步FIFO的數(shù)據(jù),。本系統(tǒng)的傳輸數(shù)據(jù)幀格式如圖4所示,,分為幀頭,、數(shù)據(jù)長度、初始化向量和數(shù)據(jù)4部分,。
根據(jù)幀頭信息判斷此幀數(shù)據(jù)是待加密幀,、待解密幀還是直傳幀,。如果是直傳幀,則不啟動算法模塊,,跳過對數(shù)據(jù)長度和初始化向量部分的判斷,直接進行數(shù)據(jù)的傳輸,;如果是待加密幀或待解密幀,則根據(jù)數(shù)據(jù)長度信息判斷算法模塊需要啟動算法核的個數(shù),,這里算法核的個數(shù)不能大于2個,。由于受硬件性能和FPGA本身資源等因素的影響,,在4路通道同時工作的情況下,,為了保證系統(tǒng)能穩(wěn)定正常,,每路通道最多只能啟動2個算法核。
對于初始化向量部分,,如果是待加密幀,則首先從隨機碼FIFO中讀取相應比特位數(shù)(128 bit)的隨機數(shù)作為IV信息發(fā)送給算法模塊,,同時從本地預存WK數(shù)據(jù)中選取一組192 bit位長的數(shù)據(jù)作為WK信息發(fā)送給算法模塊,,當IV與WK數(shù)據(jù)都準備完成后啟動算法核進行運算,并將產(chǎn)生的密碼流與明文數(shù)據(jù)進行XOR產(chǎn)生密文[10],。因為IV和WK信息是解碼的關鍵所在,所以需要將IV和WK的相關信息根據(jù)既定策略進行一定的轉換填入幀格式中的初始化向量部分,;考慮到IV和WK信息在傳輸過程中可能會面臨的惡劣環(huán)境,,對其進行RS糾錯編碼以提高信道傳輸?shù)目煽啃?sup>[11],。
如果是待解密幀,,則提取出初始化向量部分數(shù)據(jù),,根據(jù)既定的策略還原出加密時用的IV和WK信息,,將其提供給算法模塊以便產(chǎn)生出與編碼時相同的密碼流,然后與密文數(shù)據(jù)進行XOR得到明文數(shù)據(jù),。考慮到RS解碼耗費的時鐘周期數(shù)比較多,,所以在給算法模塊傳遞IV數(shù)據(jù)時,,先將原始幀中直接解析出的IV數(shù)據(jù)傳送給算法模塊,,利用算法模塊的啟動時間對IV數(shù)據(jù)進行RS解碼。比較解碼后的IV與原始IV是否相同,,若相同則算法模塊繼續(xù)運行,,若不同則根據(jù)RS解碼后的IV重新啟動算法模塊,這樣就可以一定程度上省去RS解碼時間,。
在對數(shù)據(jù)進行加解密時,,會根據(jù)數(shù)據(jù)量的多少啟動不同個數(shù)的算法核,,所以本設計中利用乒乓操作原理,不斷地按固定順序在不同算法核的密碼流FIFO中讀取出數(shù)據(jù)進行加解密操作[12],。每次讀取出的數(shù)據(jù)固定為128 bit,,這是由于AES算法的分組長度決定的。
3 實驗驗證
為了驗證設計的可行性并測試相關的性能參數(shù),,搭建了多通道高速數(shù)據(jù)安全傳輸硬件平臺,同時為了方便測試,,搭建了一個簡易的工裝測試板作為數(shù)據(jù)源為硬件平臺提供數(shù)據(jù),。
多通道高速數(shù)據(jù)安全傳輸硬件平臺為FPGA提供的全局工作時鐘為100 MHz,通過其內(nèi)嵌的數(shù)字時鐘管理單元DCM將時鐘倍頻至180 MHz提供給算法模塊,,從而能更好地提高算法模塊的工作效率,,圖5為通過Xilinx公司的在線邏輯分析儀Chipscope工具抓取的單個通道數(shù)據(jù)加解密過程的部分時序圖,。
從圖5中可以看出,,當加密開始信號置高后,待加密數(shù)據(jù)與算法核產(chǎn)生的密碼流進行XOR操作產(chǎn)生密文,,而解密過程與加密過程基本相同,用與加密過程相同的密碼流與密文數(shù)據(jù)進行XOR操作產(chǎn)生明文,。通過對比數(shù)據(jù)可以看出本設計能正確解密出數(shù)據(jù),,即系統(tǒng)加解密功能正常。
為了測試本系統(tǒng)的傳輸速率瓶頸和性能,,不斷改變測試工裝發(fā)送數(shù)據(jù)量,,具體測試方法:通過控制TXORDER和TXMSB,、TXLSB 3個信號來改變1 024時鐘周期內(nèi)有效數(shù)據(jù)的周期數(shù),測試系統(tǒng)能否在正常進行加解密工作的同時計算出系統(tǒng)從接收到待加解密數(shù)據(jù)到將加解密后的數(shù)據(jù)發(fā)送完畢時的時鐘周期數(shù)。由于TLK2711工作在100 MHz時鐘下且其數(shù)據(jù)經(jīng)過8B/10B編碼,,所以其有效數(shù)據(jù)傳輸速率為1.6 Gb/s,通過相應的比例關系可以根據(jù)1 024時鐘周期內(nèi)傳輸?shù)挠行?shù)據(jù)周期數(shù)得到系統(tǒng)加解密工作的速率,。表1為測試過程中部分有效數(shù)據(jù)周期數(shù)(data_nclk)和加解密所用周期數(shù)(time_nclk)即數(shù)據(jù)時間對照表,。
根據(jù)數(shù)據(jù)時間關系對照表,,擬合出數(shù)據(jù)-時間關系圖,。如圖6所示,橫坐標代表有效數(shù)據(jù)周期數(shù),,縱坐標代表加解密所用周期數(shù),,曲線A為啟動一個算法核的數(shù)據(jù)時間關系曲線,B為兩個算法核乒乓操作下的數(shù)據(jù)時間關系曲線,。
通過表1和圖6對照分析可知當data_nclk為0時,,time_nclk為40,此為算法啟動所用周期數(shù),;當data_nclk為350時,,即圖中的a點,為算法核切換時刻,,即當有效數(shù)據(jù)周期數(shù)多于350時啟動2個算法核,,可以看出加解密時間明顯變少,;在b點data_nclk為820,此時系統(tǒng)加解密速度已經(jīng)達到瓶頸,,加解密周期數(shù)到了1 022,,即當此幀加解密剛結束時,下一幀待處理數(shù)據(jù)已經(jīng)到來,。經(jīng)過比例換算可知,,本系統(tǒng)單通道工作速率瓶頸為1.28 Gb/s??紤]到系統(tǒng)工作中的散熱問題,、資源利用率等問題,最好將單通道最高工作速率控制在1.2 Gb/s以下,,也就是將系統(tǒng)在4路全負荷工作情況下的速率控制在4.8 Gb/s以下,,有利于提高系統(tǒng)工作的穩(wěn)定性。
4 結論
本文通過對多通道高速數(shù)據(jù)安全傳輸系統(tǒng)的研究與設計,,利用FPGA與高速串行收發(fā)器TLK2711完成了高速接口模塊的設計,同時利用FPGA和噪聲源芯片實現(xiàn)AES算法的OFB模式對高速數(shù)據(jù)進行加解密,保證了傳輸過程中數(shù)據(jù)的機密性,。通過所搭建的測試工裝對多通道高速數(shù)據(jù)安全傳輸硬件平臺進行測試,,測試結果表明,本系統(tǒng)在穩(wěn)定工作的情況下,,可完成高達4.8 Gb/s有效數(shù)據(jù)的安全傳輸,。綜上所述,,該方法對解決現(xiàn)代數(shù)據(jù)傳輸系統(tǒng)中存在的高速性和安全性兼顧問題具有較高的參考價值。
參考文獻
[1] 黃萬偉.Xilinx Fpga高速串行數(shù)據(jù)技術與應用[M].北京:電子工業(yè)出版社,,2015.
[2] 高俊.基于PCIe總線高速數(shù)據(jù)傳輸系統(tǒng)的設計與實現(xiàn)[D].合肥:中國科學技術大學,,2015.
[3] 賈建超,,陳濤,,李釗.基于TLK2711的高速數(shù)據(jù)串行傳輸[J].電子技術應用,,2013,39(9):47-49,,53.
[4] 李勛.高速多通道數(shù)據(jù)傳輸系統(tǒng)的設計與實現(xiàn)[D].太原:中北大學,2015.
[5] 余達,,劉金國,,徐東,,等.多路基于TLK2711高速串行圖像數(shù)據(jù)的傳輸系統(tǒng)[J].液晶與顯示,2017,,32(10):815-821.
[6] 張媚,,杜輝,,關暉,等.基于TLK2711的遙感衛(wèi)星高速串行載荷數(shù)據(jù)接口設計[J].航天器工程,,2015,24(6):13-19.
[7] 倪建軍,,李濤,,王建宇.基于TLK2711的高速串行全雙工通信協(xié)議研究[J].電子設計工程,,2013,21(10):76-80.
[8] Yu Yan,,Song Bingbing,,Liu Xiaozhen,et al.Design of data encryption transmission system based on FPGA[M].Springer International Publishing,,2014.
[9] 張金輝,,郭曉彪,符鑫.AES加密算法分析及其在信息安全中的應用[J].信息網(wǎng)絡安全,,2011(5):31-33.
[10] 王佳.基于FPGA的AES算法硬件實現(xiàn)優(yōu)化及其系統(tǒng)設計[D].深圳:深圳大學,2017.
[11] 陶星辰.基于AES加密的無線音視頻傳輸系統(tǒng)設計及應用[D].合肥:合肥工業(yè)大學,,2015.
[12] Huang Chiwu,,Chen Hongyou,,YEH H C,,et al.Block RAM based design of 8-bit AES operation modes[J].Procedia Engineering,,2012,29(1):2848-2852.
作者信息:
李君豪,畢麗霞,,王永利
(華北計算機系統(tǒng)工程研究所,,北京100083)