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