楊 軼,榮 鋒,武志剛
(天津工業(yè)大學(xué) 電氣與電子工程學(xué)院,天津 300387)
網(wǎng)絡(luò)語音(Voice over Internet Protocol,VoIP)是一種利用IP網(wǎng)進(jìn)行話音傳輸?shù)募夹g(shù),隨著互聯(lián)網(wǎng)的高速發(fā)展VoIP技術(shù)已經(jīng)十分普及。雖然在IP網(wǎng)中有防火墻等安全保護(hù)措施,但由于網(wǎng)絡(luò)環(huán)境的復(fù)雜性,采用明文傳輸話音數(shù)據(jù)的VoIP系統(tǒng)仍具有因竊聽等攻擊導(dǎo)致信息泄露的風(fēng)險(xiǎn)[1]。由于混沌流密碼對(duì)數(shù)字信號(hào)掩蓋效果較好且易于實(shí)現(xiàn)[2],基于混沌保密技術(shù)的VoIP通信系統(tǒng)設(shè)計(jì)受到了眾多研究工作者的關(guān)注[3]。
混沌是一種內(nèi)部具有隨機(jī)性而整體呈穩(wěn)定狀態(tài)的動(dòng)力學(xué)行為。自1989年P(guān)ecora提出將離散混沌系統(tǒng)應(yīng)用于加密算法以來,混沌理論在加密領(lǐng)域的應(yīng)用得到了快速發(fā)展,許多學(xué)者在圖像加密、視頻加密、音頻加密等多媒體保密領(lǐng)域提出了一些混沌加密方案[4-10]。傳統(tǒng)混沌映射中,一維混沌序列軌道簡單容易被預(yù)測,二維混沌映射混沌空間小且復(fù)雜度較低,高維混沌映射復(fù)雜度高但對(duì)計(jì)算資源耗費(fèi)較大[3],因此在保證系統(tǒng)變量盡可能少而復(fù)雜度盡可能高的情況下,設(shè)計(jì)一種形式簡單的非線性混沌系統(tǒng)是非常有意義的工作。
Henon映射是一種形式簡單的傳統(tǒng)二維混沌映射,映射隨著參數(shù)a的變化經(jīng)歷倍周期分岔現(xiàn)象而逐步進(jìn)入混沌狀態(tài)。在映射的混沌區(qū)間內(nèi),取不同參數(shù)a迭代出的混沌序列在相空間中拓?fù)浣Y(jié)構(gòu)差異很大,因此在基于Henon映射的保密系統(tǒng)中,選取a作為密鑰初值能夠起到類似“一次一密”的加密效果。實(shí)際應(yīng)用中受計(jì)算精度限制,參數(shù)a只能在有限范圍內(nèi)取值,這導(dǎo)致保密系統(tǒng)的密鑰空間與映射的混沌區(qū)間大小呈正相關(guān)關(guān)系,即擴(kuò)大混沌區(qū)間可以有效提高系統(tǒng)的密鑰空間。另外,提高Henon映射的復(fù)雜度能夠使產(chǎn)生的混沌序列具備更強(qiáng)的隨機(jī)性,能夠更好地降低混沌行為被預(yù)測的風(fēng)險(xiǎn)[11]。為此許多學(xué)者提出了一些對(duì)于傳統(tǒng)Henon映射的改進(jìn)算法:蔣詩意等[7]、司德成等[8]分別提出了兩種改進(jìn)算法,擴(kuò)大了映射混沌區(qū)間并提高了復(fù)雜度,但混沌區(qū)間內(nèi)存在較多空白周期窗口;王晴[9]提出了一種混合映射應(yīng)用于保密通信,密鑰空間大且復(fù)雜性強(qiáng),但時(shí)效性較差;張惠民等[10]提出的改進(jìn)映射具有較大密鑰空間,且混沌區(qū)間內(nèi)幾乎無空白周期窗,映射的復(fù)雜度也有小幅度提升。
為進(jìn)一步提升映射性能,本文提出了一種改進(jìn)型Henon映射。改進(jìn)后的映射擴(kuò)大了混沌區(qū)間且區(qū)間內(nèi)無明顯空白窗口,復(fù)雜度也得到了顯著提高。
硬件實(shí)現(xiàn)作為檢驗(yàn)混沌保密通信系統(tǒng)合理性的重要實(shí)驗(yàn)手段也越來越受到人們的重視。本文以改進(jìn)型Henon映射作為流密碼,在ARM平臺(tái)上設(shè)計(jì)實(shí)現(xiàn)了一種VoIP保密通信系統(tǒng),能夠較好地保障信息安全。
傳統(tǒng)Henon映射如下[12]:
(1)
當(dāng)b=0.3、a∈[1.06,1.4]時(shí)映射進(jìn)入混沌狀態(tài)。圖1(a)為x(n)隨參數(shù)a變化的分岔圖,其中縱軸為對(duì)應(yīng)參數(shù)下x(n)的迭代值。
現(xiàn)提出改進(jìn)型Henon映射如下:
(2)
改進(jìn)后的映射只增加了數(shù)乘運(yùn)算和正弦運(yùn)算,對(duì)映射的計(jì)算復(fù)雜度增加程度不大。對(duì)改進(jìn)型映射進(jìn)行分岔圖分析,實(shí)驗(yàn)結(jié)果表明當(dāng)b=0.3、a∈[1.26,1.88]時(shí)映射進(jìn)入混沌狀態(tài)。圖1(b)為改進(jìn)型Henon映射x(n)隨參數(shù)a變化的分岔圖。
圖1 傳統(tǒng)與改進(jìn)型Henon映射分岔圖
從圖1中可以看出改進(jìn)后混沌區(qū)間由[1.06,1.4]提升至[1.26,1.88],提升了82.35%,且無明顯空白周期窗口。
Lyapunov指數(shù)(后文簡稱李指數(shù))是衡量混沌系統(tǒng)動(dòng)力學(xué)特性的重要指標(biāo),它表征了系統(tǒng)相空間相鄰軌道的平均指數(shù)發(fā)散率[12]。二維系統(tǒng)中存在兩個(gè)李指數(shù),兩者共同構(gòu)成了Lyapunov指數(shù)譜(后文簡稱李指數(shù)譜)。當(dāng)兩個(gè)李指數(shù)為一正一負(fù)且兩者的和為負(fù)數(shù)時(shí),說明此時(shí)相空間整體呈耗散而內(nèi)部某方向上軌道存在指數(shù)分離現(xiàn)象,即混沌運(yùn)動(dòng)。由小數(shù)據(jù)量法[13]計(jì)算傳統(tǒng)和改進(jìn)型Henon映射的李指數(shù)譜圖,結(jié)果如圖2所示。
圖2 傳統(tǒng)與改進(jìn)型Henon映射李指數(shù)譜圖
系統(tǒng)隨著參數(shù)a變化時(shí),出現(xiàn)正李指數(shù)的區(qū)間內(nèi)即產(chǎn)生了混沌運(yùn)動(dòng),與公式(1)和(2)中的混沌帶范圍吻合。在混沌區(qū)間內(nèi),傳統(tǒng)Henon映射的正李指數(shù)取值范圍為(0,0.441 2],而改進(jìn)型Henon映射的正李指數(shù)取值范圍增至(0,0.891 6];且由于改進(jìn)型Henon映射李指數(shù)之和的數(shù)值更小,說明映射整體耗散性更強(qiáng),能夠更快地收斂。綜上所述,改進(jìn)型Henon映射具有更復(fù)雜的動(dòng)力學(xué)行為,生成的序列具有更高的混沌程度。
近似熵是一種用于量化時(shí)間序列復(fù)雜度的非線性動(dòng)力學(xué)參數(shù)[14],越復(fù)雜的時(shí)間序列所對(duì)應(yīng)的近似熵越大。取a∈[1.06,1.4],步長0.001,傳統(tǒng)Henon映射的近似熵如圖3(a)所示;取a∈[1.26,1.88],步長0.001,改進(jìn)型Henon映射的近似熵如圖3(b)所示。
圖3 傳統(tǒng)與改進(jìn)型Henon映射近似熵
可以看出改進(jìn)后的映射近似熵值提升明顯,其中傳統(tǒng)型Henon映射近似熵均值為0.273,改進(jìn)型映射近似熵均值為0.439,整體復(fù)雜度提升60.8%。
文獻(xiàn)[8]提出了一種結(jié)構(gòu)較為簡單、復(fù)雜度提升效果較好的改進(jìn)型Henon映射,文獻(xiàn)[10]提出了一種已應(yīng)用于VoIP保密通信系統(tǒng)的改進(jìn)型Henon映射。為直觀體現(xiàn)本文映射與上述映射的對(duì)比情況,在相同實(shí)驗(yàn)環(huán)境下對(duì)文獻(xiàn)中提出的兩種改進(jìn)型映射進(jìn)行分岔圖、李指數(shù)譜圖和近似熵分析,結(jié)果如圖4所示。
圖4 文獻(xiàn)[8,10]映射分析
整合傳統(tǒng)Henon映射、本文改進(jìn)映射、文獻(xiàn)[8]映射和文獻(xiàn)[10]映射的實(shí)驗(yàn)參數(shù)如表1所示。
表1 參數(shù)對(duì)比表
分析表1可知,文獻(xiàn)[8]映射的混沌區(qū)間提升率很高且復(fù)雜度提升明顯,但通過李指數(shù)譜圖和分岔圖可以看出,該映射混沌區(qū)間不連續(xù)且內(nèi)部存在大量空白周期窗口,當(dāng)取值落在周期窗口時(shí)產(chǎn)生的混沌序列近似熵值趨近于零,毫無隨機(jī)性可言,因此存在安全隱患;文獻(xiàn)[10]映射的混沌期間提升率較高,復(fù)雜度有小幅度提升,且混沌區(qū)間內(nèi)無明顯空白窗口,但對(duì)比可知本文提出的改進(jìn)映射在混沌區(qū)間提升率和復(fù)雜度的提升率均優(yōu)于文獻(xiàn)[10]映射,更適合混沌加密設(shè)計(jì)。
為使用式(2)映射作為流密碼密鑰進(jìn)行加密方案設(shè)計(jì),需對(duì)映射迭代所產(chǎn)生的離散序列進(jìn)行二值化處理,方案如下[15]:
g(i)=mod(h(i),1),
(3)
取待量化序列之前序列的平均值作為閾值對(duì)新的混沌序列進(jìn)行二值化有
(4)
流密碼加密系統(tǒng)的安全性取決于密鑰序列的隨機(jī)程度,當(dāng)密鑰序列是隨機(jī)序列時(shí)理論上可保證明文信息的絕對(duì)安全[16]。美國NIST公布的SP800-22隨機(jī)數(shù)測試標(biāo)準(zhǔn)是一種權(quán)威檢測序列隨機(jī)性的標(biāo)準(zhǔn)[5],該標(biāo)準(zhǔn)通過對(duì)被測序列進(jìn)行15項(xiàng)標(biāo)準(zhǔn)隨機(jī)數(shù)測試,計(jì)算Pvalue值來驗(yàn)證序列隨機(jī)性和不可預(yù)測性的程度。其中Pvalue的值為
(5)
(6)
(7)
式中:sabs為統(tǒng)計(jì)值,erfc為互補(bǔ)誤差函數(shù)。當(dāng)Pvalue值大于0.01時(shí)認(rèn)為測試序列符合隨機(jī)序列要求。使用STS-2.2測試套件對(duì)106位傳統(tǒng)Henon映射與改進(jìn)型Henon二值化混沌序列進(jìn)行隨機(jī)數(shù)測試,結(jié)果如表2所示。
表2 NIST隨機(jī)性測試表
如表2所示兩種映射的15項(xiàng)測試的Pvalue值均大于0.01,通過了隨機(jī)性測試,說明被測序列均具有較好的隨機(jī)性和不可預(yù)測性,且改進(jìn)后映射迭代出的序列隨機(jī)程度更高,更適用于流密碼密鑰序列設(shè)計(jì)。
使用由式(3)和式(4)處理后產(chǎn)生的改進(jìn)型Henon映射二值混沌序列作為密鑰對(duì)數(shù)字話音信號(hào)進(jìn)行流密碼加密的過程如下:
c(i)=m(i)⊕k(i) 。
(8)
在應(yīng)用流密碼加密的VoIP通信系統(tǒng)中,為保證時(shí)效性通常由UDP協(xié)議封裝話音數(shù)據(jù)在以太網(wǎng)傳輸。雖然有RTP和RTCP協(xié)議保證接收端能夠收到有序排列的話音數(shù)據(jù)包,但當(dāng)網(wǎng)絡(luò)出現(xiàn)丟包現(xiàn)象或錯(cuò)誤傳輸時(shí)仍會(huì)導(dǎo)致解密異步。應(yīng)用流媒體幀同步技術(shù)進(jìn)行同步方案設(shè)計(jì),如圖5所示。
圖5 定時(shí)檢測糾錯(cuò)網(wǎng)絡(luò)同步示意圖
數(shù)字話音經(jīng)流密碼加密后,將當(dāng)前混沌序列的迭代次數(shù)作為校驗(yàn)碼插入U(xiǎn)DP數(shù)據(jù)包的包頭。解密端使用相同的二值混沌序列進(jìn)行解密并記錄本端混沌序列迭代次數(shù)。解密端設(shè)置定時(shí)中斷用于校驗(yàn)同步情況:中斷到來時(shí),判斷當(dāng)前處理的數(shù)據(jù)包內(nèi)校驗(yàn)碼是否與本端混沌序列迭代次數(shù)一致,若不一致則說明發(fā)生失步現(xiàn)象,對(duì)收到的數(shù)據(jù)包進(jìn)行填充或丟包處理直到再次同步。因此在解密過程中通過實(shí)時(shí)調(diào)整實(shí)現(xiàn)長時(shí)間穩(wěn)定解密。
VoIP保密通信系統(tǒng)實(shí)現(xiàn)的功能為采集模擬話音信號(hào)并進(jìn)行A/D轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)字話音信號(hào)與混沌流密碼序列異或運(yùn)算得到密文數(shù)字話音信號(hào),使用UDP協(xié)議對(duì)密文進(jìn)行封裝并在包頭中插入校驗(yàn)碼,然后通過以太網(wǎng)將密文數(shù)據(jù)包傳送至接收端;接收端定時(shí)檢測校驗(yàn)同步狀態(tài)并使用相同混沌序列對(duì)其進(jìn)行解密恢復(fù)完成輸出回放。系統(tǒng)硬件框圖如圖6所示。
圖6 系統(tǒng)硬件框圖
用于話音信號(hào)模數(shù)轉(zhuǎn)換的音頻編解碼芯片型號(hào)為WM8978,可通過精度為8 b頻率8 kHz的采樣過程將輸入的模擬音頻轉(zhuǎn)換為數(shù)字信號(hào),也可以將數(shù)字信號(hào)恢復(fù)為模擬信號(hào)播放,通過I2S總線與系統(tǒng)MCU相連。系統(tǒng)的主控芯片選用意法半導(dǎo)體STM32F407,該芯片內(nèi)部包含用于以太網(wǎng)通信的MAC(介質(zhì)訪問控制層)模塊,因此只需外接PHY(物理層)芯片即可完成以太網(wǎng)通信。PHY芯片選擇LAN8720以太網(wǎng)收發(fā)器,與STM32間通過RMII接口進(jìn)行通信,用于傳輸由網(wǎng)口RJ45接收的音頻數(shù)據(jù)包或?qū)⒈径思用芴幚砗蟮拿芪臄?shù)字音頻發(fā)送。上述芯片同電源和JTAG調(diào)試口共組成了VoIP保密通信系統(tǒng)的硬件部分。
3.2.1 加密方案
加密端軟件設(shè)計(jì)主要是實(shí)現(xiàn)控制話音信號(hào)的采集、加密和發(fā)送。為保障傳輸過程的連貫性,系統(tǒng)設(shè)計(jì)了DMA雙緩沖機(jī)制對(duì)數(shù)字話音碼流進(jìn)行處理。加密端的主程序流程圖和中斷服務(wù)程序流程圖如圖7所示。
圖7 加密端軟件設(shè)計(jì)示意圖
加密端上電后先完成初始化操作,包括對(duì)硬件的初始化和為緩沖區(qū)申請(qǐng)內(nèi)存。為增強(qiáng)系統(tǒng)安全性,每次加密應(yīng)選取不同初值來生成不同的混沌二值序列,因此系統(tǒng)以式(2)中參數(shù)a取值的混沌區(qū)間[1.26,1.88]為范圍生成隨機(jī)數(shù)作為本次加密的密鑰進(jìn)行保存,并將該密鑰發(fā)送至解密端以生成相同二進(jìn)制混沌序列。使能WM8978的ADC并開啟DMA傳輸,開始收錄模擬話音信號(hào)并將其轉(zhuǎn)換為數(shù)字信號(hào),通過DMA將數(shù)字信號(hào)循環(huán)交替填充至兩個(gè)緩沖區(qū)內(nèi)。其中緩沖區(qū)的大小設(shè)置為640 B,可存放長度為40 ms的音頻數(shù)據(jù)。每個(gè)緩沖區(qū)填充完畢后系統(tǒng)觸發(fā)DMA傳輸完成中斷,進(jìn)入中斷服務(wù)函數(shù),并由硬件將DMA進(jìn)行切換繼續(xù)填充下一緩沖區(qū)。
DMA中斷服務(wù)函數(shù)主要完成對(duì)音頻的加密和發(fā)送,取密鑰作為初值,對(duì)改進(jìn)型Henon映射迭代并二值化產(chǎn)生640 B的混沌數(shù)字序列,然后判斷是哪個(gè)緩沖區(qū)填滿,將數(shù)字混沌序列與對(duì)應(yīng)緩沖區(qū)中的數(shù)字信號(hào)進(jìn)行異或加密操作得到密文數(shù)字話音信號(hào),并將當(dāng)前迭代次數(shù)作為校驗(yàn)碼插入數(shù)據(jù)頭后進(jìn)行UDP封裝并發(fā)送至接收端。由于MCU最高主頻為168 MHz,可以在40 ms內(nèi)完成對(duì)緩沖區(qū)中數(shù)據(jù)的加密和打包發(fā)送,因此加密過程不會(huì)對(duì)話音傳送產(chǎn)生延遲。
3.2.2 解密方案
解密端軟件設(shè)計(jì)主要是實(shí)現(xiàn)對(duì)密文話音信號(hào)的恢復(fù)。與加密端類似設(shè)計(jì)了DMA雙緩沖機(jī)制接收密文話音數(shù)據(jù),DMA填滿一個(gè)緩沖區(qū)后觸發(fā)中斷。解密端的主程序流程圖和中斷服務(wù)函數(shù)如圖8所示。
圖8 解密端軟件設(shè)計(jì)示意圖
設(shè)備上電后首先完成初始化操作,等待本次保密通信的密鑰到達(dá)。收到密鑰后,開啟DAC和DMA并接收由加密端發(fā)來的密文話音包。
DMA中斷服務(wù)函數(shù)主要完成解密。將密鑰作為初值帶入改進(jìn)型Henon映射并二值化操作產(chǎn)生與加密端相同的二進(jìn)制混沌序列并記錄迭代次數(shù),判斷是哪個(gè)緩沖區(qū)填滿數(shù)據(jù),對(duì)緩沖區(qū)內(nèi)密文進(jìn)行異或解密操作,通過WM8978進(jìn)行數(shù)模轉(zhuǎn)換完成語音回放。系統(tǒng)通過定時(shí)中斷進(jìn)行同步檢測處理:每隔一定時(shí)間提取當(dāng)前處理緩沖區(qū)數(shù)據(jù)內(nèi)的校驗(yàn)碼與本端迭代次數(shù)對(duì)比,若不同則說明發(fā)生丟包現(xiàn)象,根據(jù)丟包數(shù)迭代產(chǎn)生二進(jìn)制混沌序列使解密端再次恢復(fù)同步狀態(tài),保證語音回放的穩(wěn)定進(jìn)行。
圖9所示為本文實(shí)現(xiàn)的保密通信系統(tǒng)實(shí)物圖,圖中①~⑤區(qū)域分別為電源模塊、主控模塊(STM32、JTAG)、以太網(wǎng)模塊(LAN8720、RJ45)、音頻編解碼模塊(WM8978)和音頻接口模塊。系統(tǒng)還預(yù)留了一些從主控IO引出的接口便于后續(xù)的升級(jí)與維護(hù)。
圖9 系統(tǒng)實(shí)物圖
使用示波器測量加密端音頻編解碼芯片加密前后輸出的明密文語音信號(hào),通過JTAG編譯器調(diào)整解密端的密鑰,分別測量正確解密時(shí)的語音信號(hào)和當(dāng)密鑰相差10-6時(shí)解密出的語音信號(hào),以此對(duì)比分析保密系統(tǒng)對(duì)初始密鑰的敏感性。圖10所示為系統(tǒng)對(duì)密鑰的敏感性分析結(jié)果。
圖10 密鑰敏感性分析
由圖中可以看出,即使密鑰取值僅相差10-6,恢復(fù)出的信號(hào)卻呈類似噪音狀態(tài),可見本文算法在加密解密過程中具有頗強(qiáng)的密鑰敏感性。
取音頻編解碼芯片產(chǎn)生的約7.81 s數(shù)字話音信號(hào)序列記為N1,改進(jìn)型Henon映射取初值a=1.8迭代并二值化產(chǎn)生106b二進(jìn)制混沌序列記為N2,對(duì)N1與N2進(jìn)行異或加密操作得到序列N3。在Matlab中導(dǎo)入N1與N3進(jìn)行互相關(guān)性分析,結(jié)果如圖11所示。
圖11 明密文序列相關(guān)指數(shù)圖
密文序列與明文序列互相關(guān)指數(shù)均低于0.3,說明兩者幾乎毫無關(guān)聯(lián)[4],混沌流密碼對(duì)明文的掩蓋效果較好,能夠抵抗唯密文攻擊[16]。
取音頻編解碼芯片產(chǎn)生的5 s明文數(shù)字話音和加密后的密文數(shù)字話音,導(dǎo)入Matlab并通過工具箱將數(shù)字話音轉(zhuǎn)換為模擬音頻信號(hào),對(duì)明文音頻和密文音頻進(jìn)行語譜圖分析,結(jié)果如圖12所示。
圖12 語譜圖
相較于明文話音,加密后的話音語譜圖無明顯條紋或共振峰,說明其頻率分量和任意頻率成分的強(qiáng)度分布均勻,從密文中無法得出話音信號(hào)的統(tǒng)計(jì)特性,能夠抵抗統(tǒng)計(jì)分析攻擊[16]。
本文對(duì)傳統(tǒng)Henon映射進(jìn)行了改進(jìn),對(duì)比發(fā)現(xiàn)改進(jìn)后映射的混沌區(qū)間有所增加,且具備更高的復(fù)雜度,更適用于混沌密碼的設(shè)計(jì)?;诟倪M(jìn)型Henon映射在ARM平臺(tái)設(shè)計(jì)實(shí)現(xiàn)了一種VoIP保密通信系統(tǒng),其加密效果較好,能夠有效保障話音數(shù)據(jù)在IP網(wǎng)傳輸?shù)陌踩?/p>
本文的設(shè)計(jì)實(shí)現(xiàn)只是階段性結(jié)果,目前僅實(shí)現(xiàn)了通話功能,尚未進(jìn)行呼叫控制的設(shè)計(jì)。下一步將移植呼叫控制協(xié)議來完成對(duì)通信系統(tǒng)的完善與功能擴(kuò)展。