《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 電源技術(shù) > 設(shè)計(jì)應(yīng)用 > 多通道高速數(shù)據(jù)安全傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
多通道高速數(shù)據(jù)安全傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2018年電子技術(shù)應(yīng)用第9期
李君豪,畢麗霞,王永利
華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083
摘要: 針對(duì)一般數(shù)據(jù)傳輸系統(tǒng)傳輸速率低,并且數(shù)據(jù)傳輸過(guò)程安全性不高等問(wèn)題,提出了一種多通道高速數(shù)據(jù)安全傳輸方案。此方案在以CPU作為控制中樞的基礎(chǔ)上,利用FPGA配合高速串行收發(fā)器TLK2711實(shí)現(xiàn)4路通道的高速數(shù)據(jù)安全傳輸。根據(jù)方案搭建多通道高速數(shù)據(jù)安全傳輸系統(tǒng)硬件平臺(tái)對(duì)設(shè)計(jì)方案進(jìn)行驗(yàn)證。測(cè)試結(jié)果表明,系統(tǒng)在穩(wěn)定工作的情況下,可完成高達(dá)4.8 Gb/s有效數(shù)據(jù)的安全傳輸。
關(guān)鍵詞: 高速 安全 TLK2711 多通道
中圖分類號(hào): TN918.4
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.175115
中文引用格式: 李君豪,畢麗霞,王永利. 多通道高速數(shù)據(jù)安全傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,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.
Design and implementation of multi-channel high-speed data security transmission system
Li Junhao,Bi Lixia,Wang Yongli
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: Aiming at the problem of low rate and poor security in general data transmission system, a multi-channel high-speed data security transmission system scheme is proposed. In this scheme, CPU is used as the control center, FPGA and high-speed serial transceiver TLK2711 are used for high-speed data security transmission in four-channel. To test and verify the feasibility of the scheme,the multi-channel high-speed data transmission system hardware platform is built. The experimental results show that the highest transfer rate in this system can up to 4.8 Gb/s.
Key words : high-speed;security;TLK2711;multi-channel

0 引言

    近幾年來(lái),隨著電子信息技術(shù)的飛速發(fā)展,物聯(lián)網(wǎng)、云計(jì)算和大數(shù)據(jù)等新型的應(yīng)用涌現(xiàn),規(guī)模龐大的數(shù)據(jù)集呈爆炸式增長(zhǎng)[1],這對(duì)現(xiàn)代數(shù)據(jù)傳輸系統(tǒng)的數(shù)據(jù)傳輸能力提出了更高的要求;與此同時(shí),新的黑客技術(shù)、更先進(jìn)的電子竊聽和信息截獲篡改等技術(shù)的出現(xiàn)也使得信息的安全性受到很大的威脅。因此,在信息全球化的今天,數(shù)據(jù)傳輸能力和安全性兩方面兼顧已逐漸成為現(xiàn)代數(shù)據(jù)傳輸系統(tǒng)發(fā)展的重要方向[2]。

    本文提出了一種基于CPU+FPGA的架構(gòu)方案,為解決現(xiàn)代數(shù)據(jù)傳輸系統(tǒng)所遇到的上述問(wèn)題提供一個(gè)思路。此方案以CPU作為整個(gè)系統(tǒng)的控制大腦,完成軟件和資源配置的同時(shí)也負(fù)責(zé)實(shí)現(xiàn)多路通道的動(dòng)態(tài)切換和選擇,以適應(yīng)不同的工作需求。同時(shí)充分利用FPGA的硬件并行處理和邏輯運(yùn)算能力實(shí)現(xiàn)數(shù)據(jù)的加解密,并在FPGA已有的I/O接口資源基礎(chǔ)上采用TI公司的高速串行收發(fā)器TLK2711設(shè)計(jì)穩(wěn)定可靠的高速串行接口模塊[3],最終實(shí)現(xiàn)多通道高速數(shù)據(jù)安全傳輸系統(tǒng)。

1 系統(tǒng)架構(gòu)設(shè)計(jì)

    如圖1所示,多通道高速數(shù)據(jù)安全傳輸系統(tǒng)主要由主控模塊、密碼處理模塊以及接口轉(zhuǎn)換與適配模塊等組成。

jsj1-t1.gif

1.1 主控模塊設(shè)計(jì)

    主控模塊由CPU、存儲(chǔ)芯片以及配套的外圍電路組成??紤]到安全方面,CPU選用的是國(guó)產(chǎn)低功耗芯片龍芯1A,主要實(shí)現(xiàn)系統(tǒng)與外部通信以及動(dòng)態(tài)配置和管理FPGA等功能;存儲(chǔ)芯片選用的是AT24C64,存儲(chǔ)容量為64 Kbit,主要為程序和相應(yīng)的初始配置文件、參數(shù)等提供存儲(chǔ)空間。

1.2 密碼處理模塊設(shè)計(jì)

    密碼處理模塊主要由FPGA和噪聲源芯片組成,其中FPGA選用Xilinx公司的高性能Virtex4系列芯片XC4VSX55,主要負(fù)責(zé)加解密功能的實(shí)現(xiàn),保證數(shù)據(jù)傳輸過(guò)程的機(jī)密性;噪聲源芯片選用WNG-5,它是一種數(shù)字物理噪聲源,主要用于產(chǎn)生真隨機(jī)序列,是密碼處理模塊不可缺少的基礎(chǔ)部件。

1.3 接口轉(zhuǎn)換與適配模塊設(shè)計(jì)

    接口轉(zhuǎn)換與適配模塊主要由數(shù)據(jù)處理接口和管理控制接口組成。相較于并行數(shù)據(jù)傳輸模式,高速串行傳輸模式具有帶寬高、信號(hào)完整性好、電磁輻射低等優(yōu)點(diǎn),所以數(shù)據(jù)處理接口選用串行接口(LVDS)和相應(yīng)的幀邊界指示信號(hào)來(lái)實(shí)現(xiàn)數(shù)據(jù)的高速傳輸。同時(shí)考慮到一些標(biāo)準(zhǔn)高速串行通信協(xié)議由于需提供許多不同類型的服務(wù)而導(dǎo)致有大量的通信冗余數(shù)據(jù),惡化了延時(shí)性能等問(wèn)題[4],本系統(tǒng)選擇使用高速串行收發(fā)器TLK271來(lái)完成高速LVDS信號(hào)和并行數(shù)據(jù)之間的轉(zhuǎn)換,從而提高系統(tǒng)的可靠性并減少資源占有率[5]。

    管理控制接口采用RS232串口,主要負(fù)責(zé)對(duì)外進(jìn)行通信,根據(jù)接收的相關(guān)信息,配置系統(tǒng)工作在不同的模式下。

2 系統(tǒng)軟件設(shè)計(jì)

    為保證系統(tǒng)能高速穩(wěn)定地運(yùn)行,除了合理的硬件架構(gòu)設(shè)計(jì)外,各功能模塊的軟件程序設(shè)計(jì)也至關(guān)重要。其中高速接口模塊軟件設(shè)計(jì)和加解密模塊軟件設(shè)計(jì)是決定性能瓶頸的關(guān)鍵。

2.1 高速接口軟件設(shè)計(jì)

    高速接口模塊軟件設(shè)計(jì)主要是在FPGA中通過(guò)程序設(shè)計(jì)與TLK2711交互完成高速數(shù)據(jù)的串并轉(zhuǎn)換,具體工作流程如圖2所示。

jsj1-t2.gif

    TLK2711的工作流程可以分為發(fā)射器部分和接收器部分,發(fā)射器部分基于提供的參考時(shí)鐘(GTX_CLK)鎖存輸入的16 bit并行數(shù)據(jù),經(jīng)過(guò)內(nèi)部的8B/10B編碼轉(zhuǎn)換成20 bit并行數(shù)據(jù),編碼后的數(shù)據(jù)以20倍參考時(shí)鐘頻率采用差分串行方式傳輸出去。接收器部分對(duì)接收到的數(shù)據(jù)完成串并轉(zhuǎn)換,將得到的20 bit并行數(shù)據(jù)經(jīng)過(guò)內(nèi)部同步恢復(fù)時(shí)鐘(RX_CLK),然后再經(jīng)過(guò)8B/10B解碼將這20 bit并行數(shù)據(jù)解碼為原始的16 bit數(shù)據(jù)[6]。為了更靈活地控制高速數(shù)據(jù)的發(fā)送和接收,為4路通道分別設(shè)計(jì)了發(fā)送/接收幀邊界指示信號(hào)TXORDER和RXORDER(均設(shè)計(jì)為低有效)。TLK2711的數(shù)據(jù)總線傳輸位寬為16 bit,分為高8位和低8位,編碼方式由高8位控制信號(hào)TKMSB/RKMSB和低8位控制信號(hào)TKLSB/RKLSB共同控制。

    在數(shù)據(jù)接收端,由于TLK2711的工作機(jī)制,在進(jìn)行數(shù)據(jù)接收時(shí)RXLSB和RXMSB會(huì)出現(xiàn)3種情況,RXMSB和RXLSB同時(shí)變低,RXMSB先于RXLSB一個(gè)時(shí)鐘周期拉低,或RXLSB先于RXMSB一個(gè)時(shí)鐘周期變低。所以在數(shù)據(jù)接收時(shí)應(yīng)對(duì)數(shù)據(jù)進(jìn)行校準(zhǔn),同時(shí)為了解決信號(hào)從一個(gè)時(shí)鐘域傳送到另一個(gè)時(shí)鐘域時(shí)出現(xiàn)的亞穩(wěn)態(tài)問(wèn)題,將校準(zhǔn)后的數(shù)據(jù)寫入異步FIFO作為緩沖,等待后續(xù)處理。

    在數(shù)據(jù)發(fā)送端,先將幀邊界指示信號(hào)TXORDER拉低,然后通過(guò)TXLSB和TXMSB控制數(shù)據(jù)發(fā)送。當(dāng)TXLSB和TXMSB都為低時(shí)發(fā)送的數(shù)據(jù)為有效數(shù)據(jù);都為高時(shí)發(fā)送數(shù)據(jù)b10111100作為comma檢測(cè)碼[7]。由于RXORDER為接收數(shù)據(jù)的使能信號(hào),只有當(dāng)該信號(hào)無(wú)效,同時(shí)發(fā)送FIFO為空時(shí),才能表明該幀數(shù)據(jù)已完整接收、處理并發(fā)送完畢。

2.2 加解密軟件設(shè)計(jì)

    加解密模塊主要實(shí)現(xiàn)對(duì)高速數(shù)據(jù)的加解密工作,是數(shù)據(jù)安全傳輸?shù)母?,主體功能在FPGA中實(shí)現(xiàn)。為了確保傳輸過(guò)程的機(jī)密性和提高系統(tǒng)的加解密速度,通過(guò)對(duì)比DES、3DES和AES等算法,最終采用新一代數(shù)據(jù)加密標(biāo)準(zhǔn)AES算法。由于AES算法的分組長(zhǎng)度固定為128 bit,密鑰長(zhǎng)度只有128 bit、192 bit和256 bit 3種,只能對(duì)固定分組長(zhǎng)度的數(shù)據(jù)進(jìn)行加解密[8],所以選擇AES算法的OFB模式。該模式工作時(shí)需要一個(gè)初始化向量IV[9],為確保通信的機(jī)密性,利用驗(yàn)證過(guò)的數(shù)字物理噪聲源芯片WNG-5來(lái)產(chǎn)生真隨機(jī)數(shù)序列作為加密每一幀數(shù)據(jù)的IV。

    加解密模塊的具體基本工作流程如圖3所示。

jsj1-t3.gif

    首先對(duì)收到的數(shù)據(jù)按照幀協(xié)議進(jìn)行解析,這里收到的數(shù)據(jù)就是高速接口模塊中存入異步FIFO的數(shù)據(jù)。本系統(tǒng)的傳輸數(shù)據(jù)幀格式如圖4所示,分為幀頭、數(shù)據(jù)長(zhǎng)度、初始化向量和數(shù)據(jù)4部分。

jsj1-t4.gif

    根據(jù)幀頭信息判斷此幀數(shù)據(jù)是待加密幀、待解密幀還是直傳幀。如果是直傳幀,則不啟動(dòng)算法模塊,跳過(guò)對(duì)數(shù)據(jù)長(zhǎng)度和初始化向量部分的判斷,直接進(jìn)行數(shù)據(jù)的傳輸;如果是待加密幀或待解密幀,則根據(jù)數(shù)據(jù)長(zhǎng)度信息判斷算法模塊需要啟動(dòng)算法核的個(gè)數(shù),這里算法核的個(gè)數(shù)不能大于2個(gè)。由于受硬件性能和FPGA本身資源等因素的影響,在4路通道同時(shí)工作的情況下,為了保證系統(tǒng)能穩(wěn)定正常,每路通道最多只能啟動(dòng)2個(gè)算法核。

    對(duì)于初始化向量部分,如果是待加密幀,則首先從隨機(jī)碼FIFO中讀取相應(yīng)比特位數(shù)(128 bit)的隨機(jī)數(shù)作為IV信息發(fā)送給算法模塊,同時(shí)從本地預(yù)存WK數(shù)據(jù)中選取一組192 bit位長(zhǎng)的數(shù)據(jù)作為WK信息發(fā)送給算法模塊,當(dāng)IV與WK數(shù)據(jù)都準(zhǔn)備完成后啟動(dòng)算法核進(jìn)行運(yùn)算,并將產(chǎn)生的密碼流與明文數(shù)據(jù)進(jìn)行XOR產(chǎn)生密文[10]。因?yàn)镮V和WK信息是解碼的關(guān)鍵所在,所以需要將IV和WK的相關(guān)信息根據(jù)既定策略進(jìn)行一定的轉(zhuǎn)換填入幀格式中的初始化向量部分;考慮到IV和WK信息在傳輸過(guò)程中可能會(huì)面臨的惡劣環(huán)境,對(duì)其進(jìn)行RS糾錯(cuò)編碼以提高信道傳輸?shù)目煽啃?sup>[11]。

    如果是待解密幀,則提取出初始化向量部分?jǐn)?shù)據(jù),根據(jù)既定的策略還原出加密時(shí)用的IV和WK信息,將其提供給算法模塊以便產(chǎn)生出與編碼時(shí)相同的密碼流,然后與密文數(shù)據(jù)進(jìn)行XOR得到明文數(shù)據(jù)。考慮到RS解碼耗費(fèi)的時(shí)鐘周期數(shù)比較多,所以在給算法模塊傳遞IV數(shù)據(jù)時(shí),先將原始幀中直接解析出的IV數(shù)據(jù)傳送給算法模塊,利用算法模塊的啟動(dòng)時(shí)間對(duì)IV數(shù)據(jù)進(jìn)行RS解碼。比較解碼后的IV與原始IV是否相同,若相同則算法模塊繼續(xù)運(yùn)行,若不同則根據(jù)RS解碼后的IV重新啟動(dòng)算法模塊,這樣就可以一定程度上省去RS解碼時(shí)間。

    在對(duì)數(shù)據(jù)進(jìn)行加解密時(shí),會(huì)根據(jù)數(shù)據(jù)量的多少啟動(dòng)不同個(gè)數(shù)的算法核,所以本設(shè)計(jì)中利用乒乓操作原理,不斷地按固定順序在不同算法核的密碼流FIFO中讀取出數(shù)據(jù)進(jìn)行加解密操作[12]。每次讀取出的數(shù)據(jù)固定為128 bit,這是由于AES算法的分組長(zhǎng)度決定的。

3 實(shí)驗(yàn)驗(yàn)證

    為了驗(yàn)證設(shè)計(jì)的可行性并測(cè)試相關(guān)的性能參數(shù),搭建了多通道高速數(shù)據(jù)安全傳輸硬件平臺(tái),同時(shí)為了方便測(cè)試,搭建了一個(gè)簡(jiǎn)易的工裝測(cè)試板作為數(shù)據(jù)源為硬件平臺(tái)提供數(shù)據(jù)。

    多通道高速數(shù)據(jù)安全傳輸硬件平臺(tái)為FPGA提供的全局工作時(shí)鐘為100 MHz,通過(guò)其內(nèi)嵌的數(shù)字時(shí)鐘管理單元DCM將時(shí)鐘倍頻至180 MHz提供給算法模塊,從而能更好地提高算法模塊的工作效率,圖5為通過(guò)Xilinx公司的在線邏輯分析儀Chipscope工具抓取的單個(gè)通道數(shù)據(jù)加解密過(guò)程的部分時(shí)序圖。

jsj1-t5.gif

    從圖5中可以看出,當(dāng)加密開始信號(hào)置高后,待加密數(shù)據(jù)與算法核產(chǎn)生的密碼流進(jìn)行XOR操作產(chǎn)生密文,而解密過(guò)程與加密過(guò)程基本相同,用與加密過(guò)程相同的密碼流與密文數(shù)據(jù)進(jìn)行XOR操作產(chǎn)生明文。通過(guò)對(duì)比數(shù)據(jù)可以看出本設(shè)計(jì)能正確解密出數(shù)據(jù),即系統(tǒng)加解密功能正常。

    為了測(cè)試本系統(tǒng)的傳輸速率瓶頸和性能,不斷改變測(cè)試工裝發(fā)送數(shù)據(jù)量,具體測(cè)試方法:通過(guò)控制TXORDER和TXMSB、TXLSB 3個(gè)信號(hào)來(lái)改變1 024時(shí)鐘周期內(nèi)有效數(shù)據(jù)的周期數(shù),測(cè)試系統(tǒng)能否在正常進(jìn)行加解密工作的同時(shí)計(jì)算出系統(tǒng)從接收到待加解密數(shù)據(jù)到將加解密后的數(shù)據(jù)發(fā)送完畢時(shí)的時(shí)鐘周期數(shù)。由于TLK2711工作在100 MHz時(shí)鐘下且其數(shù)據(jù)經(jīng)過(guò)8B/10B編碼,所以其有效數(shù)據(jù)傳輸速率為1.6 Gb/s,通過(guò)相應(yīng)的比例關(guān)系可以根據(jù)1 024時(shí)鐘周期內(nèi)傳輸?shù)挠行?shù)據(jù)周期數(shù)得到系統(tǒng)加解密工作的速率。表1為測(cè)試過(guò)程中部分有效數(shù)據(jù)周期數(shù)(data_nclk)和加解密所用周期數(shù)(time_nclk)即數(shù)據(jù)時(shí)間對(duì)照表。

jsj1-b1.gif

    根據(jù)數(shù)據(jù)時(shí)間關(guān)系對(duì)照表,擬合出數(shù)據(jù)-時(shí)間關(guān)系圖。如圖6所示,橫坐標(biāo)代表有效數(shù)據(jù)周期數(shù),縱坐標(biāo)代表加解密所用周期數(shù),曲線A為啟動(dòng)一個(gè)算法核的數(shù)據(jù)時(shí)間關(guān)系曲線,B為兩個(gè)算法核乒乓操作下的數(shù)據(jù)時(shí)間關(guān)系曲線。

jsj1-t6.gif

    通過(guò)表1和圖6對(duì)照分析可知當(dāng)data_nclk為0時(shí),time_nclk為40,此為算法啟動(dòng)所用周期數(shù);當(dāng)data_nclk為350時(shí),即圖中的a點(diǎn),為算法核切換時(shí)刻,即當(dāng)有效數(shù)據(jù)周期數(shù)多于350時(shí)啟動(dòng)2個(gè)算法核,可以看出加解密時(shí)間明顯變少;在b點(diǎn)data_nclk為820,此時(shí)系統(tǒng)加解密速度已經(jīng)達(dá)到瓶頸,加解密周期數(shù)到了1 022,即當(dāng)此幀加解密剛結(jié)束時(shí),下一幀待處理數(shù)據(jù)已經(jīng)到來(lái)。經(jīng)過(guò)比例換算可知,本系統(tǒng)單通道工作速率瓶頸為1.28 Gb/s??紤]到系統(tǒng)工作中的散熱問(wèn)題、資源利用率等問(wèn)題,最好將單通道最高工作速率控制在1.2 Gb/s以下,也就是將系統(tǒng)在4路全負(fù)荷工作情況下的速率控制在4.8 Gb/s以下,有利于提高系統(tǒng)工作的穩(wěn)定性。

4 結(jié)論

    本文通過(guò)對(duì)多通道高速數(shù)據(jù)安全傳輸系統(tǒng)的研究與設(shè)計(jì),利用FPGA與高速串行收發(fā)器TLK2711完成了高速接口模塊的設(shè)計(jì),同時(shí)利用FPGA和噪聲源芯片實(shí)現(xiàn)AES算法的OFB模式對(duì)高速數(shù)據(jù)進(jìn)行加解密,保證了傳輸過(guò)程中數(shù)據(jù)的機(jī)密性。通過(guò)所搭建的測(cè)試工裝對(duì)多通道高速數(shù)據(jù)安全傳輸硬件平臺(tái)進(jìn)行測(cè)試,測(cè)試結(jié)果表明,本系統(tǒng)在穩(wěn)定工作的情況下,可完成高達(dá)4.8 Gb/s有效數(shù)據(jù)的安全傳輸。綜上所述,該方法對(duì)解決現(xiàn)代數(shù)據(jù)傳輸系統(tǒng)中存在的高速性和安全性兼顧問(wèn)題具有較高的參考價(jià)值。

參考文獻(xiàn)

[1] 黃萬(wàn)偉.Xilinx Fpga高速串行數(shù)據(jù)技術(shù)與應(yīng)用[M].北京:電子工業(yè)出版社,2015.

[2] 高俊.基于PCIe總線高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2015.

[3] 賈建超,陳濤,李釗.基于TLK2711的高速數(shù)據(jù)串行傳輸[J].電子技術(shù)應(yīng)用,2013,39(9):47-49,53.

[4] 李勛.高速多通道數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].太原:中北大學(xué),2015.

[5] 余達(dá),劉金國(guó),徐東,等.多路基于TLK2711高速串行圖像數(shù)據(jù)的傳輸系統(tǒng)[J].液晶與顯示,2017,32(10):815-821.

[6] 張媚,杜輝,關(guān)暉,等.基于TLK2711的遙感衛(wèi)星高速串行載荷數(shù)據(jù)接口設(shè)計(jì)[J].航天器工程,2015,24(6):13-19.

[7] 倪建軍,李濤,王建宇.基于TLK2711的高速串行全雙工通信協(xié)議研究[J].電子設(shè)計(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加密算法分析及其在信息安全中的應(yīng)用[J].信息網(wǎng)絡(luò)安全,2011(5):31-33.

[10] 王佳.基于FPGA的AES算法硬件實(shí)現(xiàn)優(yōu)化及其系統(tǒng)設(shè)計(jì)[D].深圳:深圳大學(xué),2017.

[11] 陶星辰.基于AES加密的無(wú)線音視頻傳輸系統(tǒng)設(shè)計(jì)及應(yīng)用[D].合肥:合肥工業(yè)大學(xué),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.



作者信息:

李君豪,畢麗霞,王永利

(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083)

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