張建勛,楊 釗,虞名海,胡衛生,義理林
(1.上海交通大學 區域光纖通信網與新型光通信系統國家重點實驗室,上海 200240;2.中國人民解放軍66389部隊,鄭州 451100)
信息技術的飛速發展在給人們的生活帶來便利的同時,也給信息安全帶來了嚴峻挑戰。自20世紀以來,混沌現象[1]和混沌同步[2]相繼被發現和提出,將混沌現象應用在保密通信中成為人們日漸關注的問題[3-7]。但在已提出的混沌保密光通信方案中,接收端都需要采用與發射端參數完全一致的激光器來產生同步的混沌載波,這種同步方式結構復雜,很難在實際中得到應用。2019年,上海交通大學使用光電光混沌的加密方式,通過神經網絡建模的方法獲得加密信號和混沌載波之間的函數關系,進而提出了在數字域上實現混沌同步解密的方案,實驗采用10 GHz帶寬的混沌信號,通過訓練后的神經網絡實現了對20和32 Gbit/s信號的解密[8],但只是進行了離線實驗驗證。到目前為止,還沒有使用基于神經網絡同步的方式進行實時混沌保密通信實驗的報道。
本文使用電路混沌對基于神經網絡的同步進行實時驗證。基于現場可編程門陣列(Field Programmable Gate Array, FPGA)產生混沌信號對傳輸信號進行加密,在發射端分別獲取混沌和加密信號,利用神經網絡進行離線監督訓練,獲取網絡結構參數后,基于數字信號處理(Digital Signal Processing, DSP)Builder工具箱搭建神經網絡模型,并移植到FPGA中進行混沌同步,達到信號實時解密的目的。
連續混沌系統是由微分方程描述的非線性動力系統。本文通過洛倫茲方程生成連續混沌信號作為保密通信的載波。洛倫茲混沌系統的連續狀態方程如下:
該常微分方程組是科學家洛倫茲在研究大氣對流模型時所提煉的三維方程及由其表現的“蝴蝶效應”動力行為而得出的。式中:x、y和z為變量;t為時間;a、b和c為系統參數。當系統參數設置為a=10,b=28,c=8/3時,系統將處于混沌狀態。
通過對洛倫茲狀態方程進行等價變化,選擇合適的模擬非線性電子器件,可以用模擬電路來產生洛倫茲混沌信號。但這種方法比較復雜,所需電子器件較多,增加了線路之間的干擾,并且更容易受到外界因素的影響,增加了混沌系統的不穩定性。相比于模擬電路,以FPGA為平臺產生混沌信號更加簡單直接,可移植性強,并且基于混沌系統的初值敏感性,可以隨時改變系統初值,使混沌系統的運動軌跡發生巨大變化,增加了破譯的難度,進而增強了保密通信系統的安全性。
由于洛倫茲混沌系統是對連續狀態的描述,而FPGA只能處理離散化的數字信號,所以使用FPGA產生洛倫茲混沌信號時必須把系統的狀態方程離散化,這樣得到的混沌系統的運動軌跡會接近真實的混沌運動軌跡[9]。在狀態方程離散化以后,使用DSP Builder工具箱來進行混沌生成模型的硬件設計。DSP Builder是一個系統級和算法級設計工具,它架構于Matlab/Simulink軟件之上,對FPGA進行方便、快捷和高效的DSP,具有很強的可視化,方便設計中功能的仿真與驗證,極大簡化了基于FPGA的DSP系統和算法的設計流程。根據離散化的狀態方程,調用DSP Builder工具箱中的元件搭建混沌生成模型。功能仿真通過后,使用信號編譯(Signal Complier)模塊將混沌生成模型轉換成.qip(Quartus IP)文件,在Quartus II中進行例化和編譯,下載到FPGA進行硬件調試,最終產生混沌信號,混沌信號波形(變量x和z)和混沌吸引子(x-z)如圖1所示。

圖1 洛倫茲混沌信號和混沌吸引子
本文使用洛倫茲混沌的變量z信號采取混沌掩蓋的方式對信號進行加密。加密結構如圖2所示,用任意波形發生器(Arbitrary Waveform Generator, AWG)產生一個10 Mbit/s的隨機非歸零碼(Not Return to Zero, NRZ)信號,與FPGA經數模轉換器(Digital to Analog Converter, DAC)產生的洛倫茲混沌信號進行耦合,生成混沌掩蓋加密信號。

圖2 混沌加密結構
本文使用的洛倫茲混沌信號帶寬為100 MHz,混沌信號和傳輸信號的掩蓋比例(幅度峰峰值之比)為8∶1,這樣既可以使信號完全隱藏在混沌信號中,而且基本不改變混沌信號的原始結構,如圖3所示。

圖3 混沌加密信號
基于神經網絡對非線性系統的強大擬合能力,用神經網絡對洛倫茲狀態方程進行建模。使用示波器(Tektronix MSO64)采集DAC輸出的混沌信號作為神經網絡的目標輸出,耦合器輸出的混沌加密信號作為神經網絡的輸入,加密信號速率為100 Mbit/s,示波器的采樣率設置為312.5 MS/s,與模數轉換器(Analog to Digital Converter,ADC)的單通道采樣率保持一致。混沌信號和加密信號各采集1 250 000個數據點,并將前80%的數據作為訓練集,后20%的數據作為測試集,使用全連接神經網絡進行離線訓練。神經網絡解密結構如圖4所示。只要神經網絡同步出來的混沌波形與目標混沌波形相似度足夠高,就能通過減法運算得到所需要解密的信號[10]。

圖4 神經網絡解密結構
本文使用的全連接神經網絡由一個包含64個神經元的輸入層、20個神經元的隱藏層以及1個神經元的輸出層組成,使用ReLU作為神經網絡的激活函數f(x)。訓練迭代次數為100,學習率設置為0.001。
使用FPGA對信號進行解密時,將耦合器輸出的混沌加密信號輸入到ADC進行模數轉換,轉換后的數據使用第3代雙倍速率同步動態隨機存取內存(Double Date Rate 3 Synchronous Dynamic Random Access Memory, DDR3 SDRAM)進行存儲,編寫控制命令讀取數據并在FPGA中進行神經網絡運算,運算結果經DAC后輸出。硬件加密和解密結構如圖5所示。

圖5 硬件加密和解密結構
使用采集到的混沌信號和加密信號,通過全連接神經網絡的訓練,相似度可以達到98%以上,信號解密誤碼率為0。圖6所示為基于神經網絡同步的混沌波形和目標混沌波形相似度比較,其中,RC為目標混沌,YC為神經網絡同步的混沌。

圖6 目標混沌波形和基于神經網絡同步的混沌波形及相似度比較
神經網絡離線訓練完成后,獲取該網絡結構的模型參數,主要包括隱藏層、輸出層的權值和偏置等。使用DSP Builder工具箱進行全連接神經網絡模型的搭建。
對于64-20-1的全連接神經網絡來說,輸入層64個神經元分別與隱藏層20個神經元相對應的權值進行乘法運算,隱藏層每個神經元對應的64個乘法結果進行累加運算,然后與對應偏置值相加,經過激活函數的非線性處理后,作為輸出層的輸入,與輸出層神經元相對應的權值進行乘法運算,最后與偏置相加后輸出。基于神經網絡各層之間的串行特性,使用流水線結構處理的方法,即先進行輸入層-隱藏層的運算,再進行隱藏層-輸出層的運算,確保大量數據計算的準確性,同時節省了硬件資源。
根據全連接神經網絡的結構和算法流程,調用DSP Builder工具箱中乘累加器、乘法器、加法器和多路復用器來實現神經元的輸入和乘加運算,通過計數器模塊來實現神經網絡計算的全局控制,激活函數ReLU通過比較模塊和常數0來實現,將權值以mat文件的形式存儲于只讀存儲器(Read Only Memory,ROM)中,通過1個6 bit的計數器生成地址信號進行讀取,權值、偏置和中間數據的存儲、計算采取4Q20(即4個整數位、20個小數位)的定點小數格式,保證了計算的精度,同時也避免數據溢出。添加系統時鐘為100 MHz,采取固定步長的方式對模型進行編譯仿真,從而得出與神經網絡離線訓練相同效果的混沌波形。經過計算分析,解密信號的誤碼率為0,目標混沌波形和基于DSP Builder同步的混沌波形及相似度對比如圖7所示。

圖7 目標混沌波形和基于DSP Builder同步的混沌波形及相似度比較
功能仿真驗證通過后,使用FPGA進行硬件調試。FPGA使用Altera公司Stratix V系列的5SGXEA7K2F40C2,配合1片5.0 GS/s的ADC(EV8AQ160)和兩片2.5 GS/s的DAC(AD9739)。ADC采用單通道模式,采樣率為312.5 MS/s,采樣精度為8 bit。神經網絡模塊的時鐘為100 MHz,使用2 Gbyte的DDR3 SDRAM(MT41J256M16)對數據進行存儲,通過Verilog HDL代碼采用狀態機讀寫的方式編寫DDR3 SDRAM的控制邏輯,配合使用先進先出(First-in First-out, FIFO)邏輯模塊,保證數據存儲前后速率和位數的匹配。從DDR3 SDRAM讀取的混沌加密信號根據全局控制命令進行神經網絡運算,同時,將讀取的混沌加密信號經過延遲模塊,與神經網絡同步得到的混沌信號做減法運算,通過判決模塊后,經過DAC輸出得到解密信號,解密信號誤碼率為6.4×10-4。使用相關系數來評估解密信號與原始傳輸信號的相似性,定義為


圖8 解密信號波形及與原始信號相關曲線
神經網絡模塊工作于100 MHz的時鐘下,其功能主要通過乘加運算實現,對乘法器資源要求較高。FPGA內嵌256個DSP塊,每個DSP 塊可實現兩個18 bit×18 bit的乘法和加法。由于本文采用流水線結構處理的方法,大大節約了資源的使用率。FPGA的主要資源使用情況如表1所示。

表1 FPGA資源使用情況
從離線訓練和DSP Builder仿真的結果看,神經網絡對洛倫茲混沌具有良好的同步效果,對10 Mbit/s的NRZ信號解密能達到零誤碼,混沌同步相似度較高。對于基于FPGA的混沌實時同步與信號解密,雖然受限于ADC的采樣精度,解密信號的誤碼率仍然在1×10-3以下,仍能達到較好的同步效果。因此,在采用混沌掩蓋方式的保密通信中,可在接收端將提前訓練好的神經網絡同步模型集成到硬件中進行同步解密,不需要增加額外的同步信道,并且能夠簡化接收端的結構,降低信息被竊取破譯的風險。
本文提出了利用FPGA生成混沌信號,在發射端對信號進行加密,在接收端基于FPGA實現神經網絡算法來達到混沌同步,實現了10 Mbit/s信號的實時加密與解密,解密信號的誤碼率在1×10-3以下。但是,本文使用的混沌載波為電路產生的混沌信號,混沌帶寬有限,難以加密高速率信號。相比于電路混沌來說,全光混沌具有更復雜的非線性動力學特性,帶寬更寬,能夠進行高速率信號的加密傳輸。隨著更多乘法器資源FPGA的應用,基于FPGA可實現更大規模的神經網絡應用,從而實現更高速率和更長距離的混沌加密實時傳輸。