1 引言
混沌是非線性動力系統所特有的一種運動形式,它廣泛地存在于自然界。一般而言,混沌現象隸屬于確定性系統而難以預測,隱含于復雜系統但又不可分解,呈現多種混沌無序卻又頗有規則的圖像。
混沌信號的表現形式非常復雜,具有類噪聲,非周期等特點。但是混沌系統本身又是確定的,由方程,參數所完全決定,是確定性非線形系統產生的不確定的信號,其狀態完全可以重現。混沌系統對初值敏感。初值X0的微小的差異,Xn將有很大的差異。這種對初值的敏感性,很小的初值誤差就能被系統放大,使得兩個完全相同的混沌系統從幾乎相同的初始條件開始演化,很快它們的軌道就變得差異很大,互不相關。因此,系統的長期性是不可預測的。這些性質使得混沌信號具有長期不可預測性和很強的抗截獲能力。所以將混沌掩蓋引入保密通信領域具有極其廣闊的前景和巨大的潛力]。
混沌信號的產生是混沌加密實現的關鍵,由某些硬件電路組成的物理系統(例如蔡氏電路和模擬Lorenz系統的振蕩器等)所產生的連續混沌信號是不可預測的,傳統的采用模擬電路產生混沌信號的方法雖然有很多優點,但仍存在著由于通信兩端模擬電路的器件精度難以完全一致,導致同步性能不是很好的問題。而DSP具有小型嵌入式操作系統,實時加密,應用方便,又不存在器件的精度問題[3] ,可以在保密通信中實現很好的同步。
2 混沌加密的基本理論
2.1 Lorenz方程
混沌信號的質量是加密效果的關鍵。文中選用Lorenz 系統。Lorenz 方程為三維,屬于高維混沌系統。應用Lorenz 方程等高維系統構造序列密碼的優點在于:一是可以對多個系統變量進行處理產生序列密碼。產生序列密碼的原始混沌浮點數序列既可以是一個混沌變量的序列值,也可以是多個變量的函數值。這樣序列密碼的設計更靈活,有更大的空間。提高安全性、改善有限精度造成的短周期效應。二是能提供大量密鑰空間。Lorenz 方程具有3個系統變量,也就是有3 個初始值,還有3 個系統參數,這些都可以用來作為序列密碼系統的種子密鑰[4]
選取系統參數:u=16,r=45.2,b=4,初值的選取可以是不為零的任意數,最好能選取在系統混沌吸引子中,這樣可以使系統快速地進入混沌狀態。
2.2 混沌信號的產生
混沌信號的產生主要借助于DSP 強大的運算能力,采用數值計算的方法。混沌方程的微分數值計算方法主要有:歐拉方法、改進歐拉方法和四階龍格-庫塔法。這三種方法精度由低到高,計算量同樣由低到高。文中采用歐拉法。運用歐拉法將方程化為差分方程:定義x、y、z 為雙精度型,選取初值x0=0.15、y0=0.1、z0=0.1。方程參數值選取A=16、B=45.2、C=4,并定義步長為k,在給定初值的情況下,運用下面三個方程產生混沌信號:
3 基于DSP 的混沌信號產生器
3.1.硬件構成與系統框圖
考慮到算法復雜度與開發便利,本系統采用TI 公司生產的通用高性能32 位定點DSP即TMS320DM642 作為主處理器。該處理器工作主頻高達720MHZ,處理性能可達5760MIPS,完全可以滿足算法的要求。整個加密系統的硬件是由上位機、兩臺DSP 及其外設組成[5] ,硬件框圖如圖1 所示。PC 機通過JTAG 仿真器接口與DSP 相連,以方便PC 機對系統進行調試,DSP 負責混沌信號的產生與數據的加密。實時語音數據經過AD 采樣傳輸到DSP 片內RAM 中。由于片內RAM 空間有限,DSP 將把所接受到的數據寫到片外SRAM 中加以保存。DSP 調用特定的混沌加密算法,對所接受的數據進行加密處理,將加密后的數據通過DSP 的以太網口用網絡傳輸到另一臺DSP 上,然后在另一臺DSP 上解密,最后經DA輸出,還原原始的實時語音信號[6]。
3.2.軟件流程
DSP 的實時操作系統(RTOS)是一段嵌入在目標代碼中的軟件,用戶的其他程序都建立在這一操作系統之上,具有很高的可靠性和可行性的內核,可以根據優先級合理的分配資源和CPU 的時間。在實現過程中可以屏蔽掉一些具體的硬件操作細節。本系統的開發就采用了DSP/BIOS,DSP/BIOS 是TI 公司針對其生產的DSP 芯片而開發的一個實時操作系統,可實時調度和同步以及進行主機/目標系統通信和實時監控的應用。它具有搶占式多任務內核,硬件抽象層,實時系統工具,配置工具。可以輕易地實現多線程的實時調度與同步,硬件中斷響應時間一般在微秒級(us)。DSP/BIOS 是由許多功能模塊構成的,每個功能模塊都提供了大量標準的API 接口,從而實現了對硬件的抽象,程序員通過調用API 可以很容易利用DSP/BIOS 所提供的各種功能,如線程創建,撤銷,喚醒等等。總之,利用DSP/BIOS 極大地提高了DSP 軟件開發的可靠性,大大加快了開發進度。
RTOS 中最重要的概念就是任務,每一個線程有一些任務組成,本系統的軟件結構采用多線程同步工作方式,主要分為三個線程:(1)網絡處理線程tsk1,主要負責啟動TCP/IP 協議棧與上位機進行以太網數據交換,并把接收到的數據通過SCOM 模塊傳輸給加解密線程;
(2)加解密處理線程tsk2,主要負責調用特定的混沌加解密算法對收到的數據進行加解密處理,并通過SCOM 模塊傳遞給輸出線程;(3)I/O 線程tsk3,負責將語音信號通過AD 輸入,同時把tsk2 傳來的數據通過DA 模塊進行輸出,整個軟件流程圖如圖2 所示。
系統的I/O 采用了DSP/BIOS 的SIO(Stream I/O)模塊。該模塊對底層硬件操作作了抽象,為用戶提供了一個與設備無關的交互接口,完全不用關心IO 設備的細節特。Stream(流)是應用程序和IO 設備之間的數據通道,采用異步的方式進行IO 操作,利用SIO 模塊的issue/reclaim 模式,應用程序就可以通過與SIO 交換緩存地址進行數據的輸入輸出了,開辟了雙緩存bufa,bufb。應用程序將一緩存區bufa 填滿數據,然后將首地址傳遞給SIO,SIO將自動調用底層驅動程序操作外設,對bufa 進行數據IO,無需應用程序的干預。待bufa 數據IO 完畢后,SIO 將空緩沖交還給應用程序,同時接收新緩存區bufb, 這種IO 管理方式,采用指針,避免了數據的拷貝,減少了應用程序的開銷,如此可以達到高效的數據IO 效率,減少CPU 時間占用消耗,并且大大地提高了程序的可移植性和易于維護,很好的滿足了實時性的要求。
4 混沌序列的驗證
通過DSP的DA輸出,將信號引到示波器,分別可以得到XY,YZ,XZ的兩維信號相圖見圖3。由此可見,示波器輸出的波形和理論值是基本吻合的,以此驗證了加密序列是混沌序列。
5 語音實時信號加解密驗證
由于采用的DSP/BIOS系統是一個實時操作系統,它能很方便的應用在實時信號處理方面。可以基于DSP/BIOS建立一個語音加密系統,對輸入的實時語音信號進行混沌加密。為了驗證這一系統以及觀察方便,實驗采用1KHz正弦波作為實時語音輸入,將其通過高速AD輸入DSP中,由DSP調用混沌信號產生以及加密算法對其加解密,再通過DSP的左右聲道的DA輸出到示波器進行實驗,實驗結果如圖4所示。
對比這幾組實驗結果,可知通過系統加密模塊,原始語音信號已不能辨認,解密模塊在解密密鑰完全相同時才可以還原出原始信號。另外可以用實際的語音信號在系統一端通過麥克風輸入,經過加密再從揚聲器輸出,語音已經不能辨認,再將其輸入另一臺解密DSP中,又可以很好的還原原始信號,不過整個過程會存在一定的延時。系統速度瓶頸在于產生混沌序列算法部分,由于混沌運算對精度要求較高,所以混沌序列運算中采用了浮點運算,對于DM642定點DSP會產生較大的處理時間開銷,因此需要通過編寫定點化程序來提高處理速度。實驗表明,優化程序后,系統可以實時處理的最高音頻信號頻率達到4KHz,完全滿足實時語音通信的帶寬要求。
6 總結
本文提供了一種基于小型嵌入式實時操作系統下混沌信號產生和對語音實時加密的方法,所有的編程都是在DSP/BIOS下完成的, DSP/BIOS有很強的實時分析和任務實時管理能力,可以對程序進行實時跟蹤與分析,提高應用程序開發的可靠性。在設計中由于采用的是定點DSP,在對采樣點進行定點化截尾時,會有很小的誤差出現,如果能夠采用浮點DSP,就可以很好的解決這個問題。
-
處理器
+關注
關注
68文章
19404瀏覽量
230773 -
dsp
+關注
關注
554文章
8059瀏覽量
349863 -
仿真器
+關注
關注
14文章
1019瀏覽量
83883
發布評論請先 登錄
相關推薦
評論