摘 要: 現(xiàn)代語音通信大大方便了人們的交流,但是隨之產(chǎn)生語言安全的問題,人們擔心自己的通話被竊聽,但傳統(tǒng)的PC加密算法運算量大不適合在手持的移動設備中使用,用混沌信號對通話語音進行加密提高嵌入式設備數(shù)據(jù)的安全性同時運算量相對適中。在ARM2440+Linux平臺上做了有關混沌信號產(chǎn)生并利用混沌信號來對語音進行加密的實驗,將加密后的語音進行藍牙傳輸。
關鍵詞: 混沌; 貓映射; ARM; Linux; 語音加密; 解密
中圖分類號:TN912.3?34 文獻標識碼: A 文章編號: 1004?373X(2013)13?0097?03
Research on chaotic voice encryption based on ARM system
XIE Yong?jian
(Faculty of Automation, Guangdong University of Technology, Guangzhou 510006, China)
Abstract: Modern voice communication makes people communicate with each other conveniently but leads to problem of security. People worry that their communication by telephone could be eavesdropped. But traditional PC encryption algorithm can hardly be achieved on mobile phone. Voice encryption by chaotic signals can improve security of embedded device data and also is less complex than the traditional one. We do the voice encryption test by use of chaotic signals on the ARM2440+Linux platform and transmit via bluetooth.
Keywords: chaotic encryption; cat maps; ARM; Linux; voice encryption; deciphering
0 引 言
隨著通信技術的飛速發(fā)展,人們普遍使用智能手機來聯(lián)系家人、朋友以及商業(yè)客戶,但語音信息容易被竊聽,干擾這在緊急情況下是不容許的。語音信息應該得到妥善的保護以提高通話的安全性。由于智能手機大部分屬于ARM平臺或者ARM架構(gòu)結(jié)合基于Linux操作系統(tǒng)簡化的安卓系統(tǒng)的嵌入式設備,因此嵌入式系統(tǒng)設備應該具備良好的語音保密功能。目前很多加密算法都是針對PC級的并不合適在小型移動設備中運行。
混沌(本文指貓映射)狀態(tài)方程對初始條件的高度敏感,即使很微小的差別的初始條件作用于同一個狀態(tài)方程經(jīng)過足夠多次疊加運算,它們的軌道將變得沒有相關性,而且加密體制有對稱密鑰和非對密鑰兩種,對稱密鑰是指消息的發(fā)送者和接受者用相同的密鑰進行加密和解密,非對稱密鑰是消息發(fā)送和接受者使用不同的密鑰。它的安全性基于數(shù)學上的大因數(shù)分解,因此混沌信號具有不可預測性和抗破解能力。同時混沌系統(tǒng)又是確定性,由狀態(tài)方程、系數(shù)參數(shù)和初始條件所決定,混沌信號易于產(chǎn)生和復制。上述特性使得混沌特別適用于保密通信。這些特性正好吻合數(shù)據(jù)加密的原則:擴散和混亂,故混沌算法很適合用來進行手持設備的語音加密[1]。
本文主要介紹基于混沌中著名的貓映射置亂算法,在Linux系統(tǒng)下用C語言實現(xiàn)數(shù)字語音信號的置亂并在MINI 2440開發(fā)版運行該程序,然后給出實驗的結(jié)果并對結(jié)果進行分析,提出改進意見。
1 嵌入式Linux系統(tǒng)語音混沌加密算法
1.1 混沌加密原理
混沌信號用于數(shù)據(jù)保密通信中有很多種形式,主要是利用混沌信號對明文進行掩蓋或者置亂,掩蓋就是對明文信號進行數(shù)值的改變,而置亂則是僅僅改變明文的順序來達到加密的目的。總之混沌保密是利用混沌信號的各種特性來實現(xiàn)的。在發(fā)送端將密鑰明文信息和混沌信號經(jīng)加密變換后形成密文,在信道中傳送,接收端合法用戶知道解密密鑰和解密變換因此能夠得到正確的明文。混沌同步?jīng)Q定混沌信號能不能運用到加密中,用能夠同步的混沌信號加密才能正確解密。關鍵是能否進行混沌同步[2?3],混沌同步就是指一個系統(tǒng)的混沌動力學軌道收斂于另一個系統(tǒng)的混沌動力學軌道,以致兩個系統(tǒng)在以后的時間里始終保持步調(diào)的一致。
貓映射是經(jīng)典的算法滿足加密解密的條件,所以本文采用貓映射算法進行加密,用它來對語音信號進行置亂產(chǎn)生密文然后通過藍牙模塊進行無線傳輸[4?5]。
1.2 貓映射狀態(tài)方程
貓映射狀態(tài)方程:
[x1y1=1112xymodN]
系數(shù)矩陣[acbd]的秩只要為1就可以了。由方程可以看出在ARM平臺上實現(xiàn)并不需要進行特別的離散化措施。這里暫且取[a]=1,[b]=1,[c]=1,[d]=2,初值[x]=1,[y]=1,得到Matlab仿真相圖,如圖1所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現(xiàn)代電子技術201313\Image\17t1.tif>
圖1 Matlab仿真相圖
2 ARM開發(fā)板和相應的Linux操作系統(tǒng)
2.1 ARM開發(fā)板的硬件平臺
實驗平臺采用友善之臂mini2440開發(fā)板,板上為三星公司的32位微處理器S3C2440A。該處理器內(nèi)部集成了ARM920T內(nèi)核,內(nèi)部結(jié)構(gòu)集成了MMU、AMBA、BUS和Harvard高速緩沖結(jié)構(gòu),帶有獨立的16 KB指令Cache和16 KB數(shù)據(jù)Cache,并且板上集成了很多外圍設備接口,如RAM控制器、Nand FLASH控制器、10/100M以太網(wǎng)接口、LCD控制器、并行I/O口,主頻最高可達533 MHz 等。本文主要是用到了板上的SD卡座,以及SD8868 [6]。系統(tǒng)硬件結(jié)構(gòu)圖如圖2所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現(xiàn)代電子技術201313\Image\17t2.tif>
圖2 硬件結(jié)構(gòu)圖
2.2 嵌入式Linux系統(tǒng)
嵌入式設備例如手持設備等都采用嵌入式Linux系統(tǒng)。這是因為Linux系統(tǒng)是開源免費的,Linux系統(tǒng)的可靠性高。因此,本實驗中的平臺采用的是Linux操作系統(tǒng),內(nèi)核為2.6的內(nèi)核。整個系統(tǒng)的架構(gòu)如圖3所示,其中最底層的是引導加載Linux內(nèi)核程序的Bootloader,它指定了內(nèi)核存在FLASH中的位置,一般采用Uboot,這里系統(tǒng)采用三星公司自行研發(fā)的Supervivi;中間的是Linux 2.6.32.2 的內(nèi)核,在內(nèi)核中包含了初始化平臺的各個函數(shù)、串口終端、LCD、以太網(wǎng)及相關的設備驅(qū)動等,這里將根據(jù)一些不需要的設備對內(nèi)核進行裁剪;緊接著的是根文件系統(tǒng),這也是嵌入式Linux中不可缺少的一部分,這一層中包涵了嵌入式平臺的必不可少的bin文件;最頂層的是用戶應用程序,加密解密程序?qū)儆谶@一層[7?9]。
<\\192.168.0.25\$d\8月\8-2\補\補!現(xiàn)代電子技術201313\Image\17t3.tif>
圖3 嵌入式操作系統(tǒng)的結(jié)構(gòu)
3 貓映射加密算法設計和實現(xiàn)框圖
3.1 加密設計模塊
本文采用將原始的語音信號文件作為參數(shù)加入到用戶態(tài)加密程序當中,進行貓映射加密,加密后產(chǎn)生密文語音文件。將加密后的文件經(jīng)過藍牙模板進行傳輸。在另一塊板子上進行接收解密。設計原理如圖4所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現(xiàn)代電子技術201313\Image\17t4.tif>
圖4 設計原理圖
3.2 程序?qū)崿F(xiàn)流程圖
首先由系統(tǒng)內(nèi)部為運行的程序提供環(huán)境進行初始化讀取參數(shù),判斷文件是否存在,如果不存在就進行出錯處理,如果文件存在則程序試圖讀文件,并進行判斷然后進行出錯處理。由于需要存儲加密后的語音文件所以需要創(chuàng)建新文件,在進行貓映射加密后存入新文件,將新文件調(diào)用socket[10]接口用藍牙進行傳輸。因為要使用藍牙模塊進行傳輸,所以有關藍牙傳輸?shù)膮f(xié)議和驅(qū)動程序必須在編譯內(nèi)核的時候進行加載。根據(jù)上面所提到設計的流程對其進行嵌入式C語言的編程,程序的流程首先對相關的函數(shù)進行初始化,根據(jù)嵌入式系統(tǒng)的開發(fā)原則,對跨平臺開發(fā)的程序進行交叉編譯,系統(tǒng)中使用宿主機上的交叉編譯工具arm?linux?gcc。使用交叉編譯工具編譯后生成目標板可執(zhí)行的目標代碼后移植到目標板上。加密算法流程如圖5所示。
<\\192.168.0.25\$d\8月\8-2\補\補!現(xiàn)代電子技術201313\Image\17t5.tif>
圖5 加密算法流程
4 實驗結(jié)果和分析
4.1 實驗結(jié)果
算法結(jié)果分析如圖6所示。圖6中三幅圖分別為加密前語音信號的波形,加密后語音信號的波形和解密后語音信號的波形。貓映射加密對語音信號進行了置亂,置亂的結(jié)果比較好的隱藏了原始語音信號,解密則很好的再現(xiàn)了原始的語音信號。
4.2 分析和結(jié)論
由于貓隱射對原始語音信號進行置亂比較好的隱藏了原文的信息,從加密后的波形圖可以看出,只要置亂的迭代輪數(shù)足夠就能跟原來的波形完全不一樣,但是并沒有對信號進行掩蓋,故其直方圖跟原來的信號是一樣的,這是一個不足但同時減少了運算量,達到了實時性的要求,用戶通話沒有明顯的延遲,這在手持設備中就已經(jīng)足夠了。如果需要還可以對其進行混沌掩蓋。
參考文獻
[1] 張慧源,禹思敏.基于混沌加密的嵌入式通信系統(tǒng)的研究[J].微計算機信息,2005,21(11):31?32.
[2] 劉秉正.非線性動力學與混沌基礎[M].長春:東北師范大學出版社,1995.
[3] 鄭大鐘.線性系統(tǒng)理論[M].北京:清華大學出版社,1990.
[4] 禹思敏.混沌系統(tǒng)與混沌電路:原理、設計及其在通信中的應用[M].西安:西安電子科技大學出版社, 2011.
[5] 禹思敏,丘水生,羅偉民.混沌同步通信系統(tǒng)若干問題的實驗研究與分析[J].華南理工大學學報, 2000,28(10):87?91.
[6] Samsung. S3C2440A user′s manual Revision 1.0 [R]. Korea: Samsung, 2004.
[7] 魏永明,耿岳,鐘書毅.Linux設備驅(qū)動詳解[M].北京:中國電力出版社, 2005.
[8] 韋東山.嵌入式Linux應用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.
[9] 吳明暉.基于ARM的嵌入式系統(tǒng)開發(fā)與應用[M].北京:人民郵電出版社,2004.
[10] 尤晉元,張亞英.UNIX環(huán)境高級編程[M].北京:人民郵電出版社,2009.
[11] PECORA L M, CARROLL T L. Synchronization in chaotic systems. [J] Physical Review Letters, 1990, 64(8): 821?824.