基于Tent混沌系統(tǒng)的音頻加密方法

隨著計(jì)算機(jī)與通信網(wǎng)絡(luò)的迅速發(fā)展,各種形式的多媒體數(shù)字作品,紛紛以網(wǎng)絡(luò)途徑傳播,這為創(chuàng)作者和使用者提供了很大的便利。但這種便利性和不安全性,往往是并存的,也容易被非法侵權(quán)者所利用。特別是音頻文件,常常遭受到盜版問題的困擾,因此我們需要采取加密方法對(duì)音頻文件進(jìn)行加密,下面我們將Tent混沌系統(tǒng)和Chen混沌系統(tǒng)相結(jié)合,設(shè)計(jì)出了一種基于混沌的音頻數(shù)據(jù)加密方法,通過把音頻數(shù)據(jù)對(duì)應(yīng)的二進(jìn)制序列與混沌加密因子序列做異或操作,來實(shí)現(xiàn)對(duì)音頻數(shù)據(jù)的加密。

一、混沌系統(tǒng)

混沌是非線性系統(tǒng)中出現(xiàn)的一種貌似無規(guī)則的類隨機(jī)過程,是普遍存在的復(fù)雜運(yùn)動(dòng)形式和自然現(xiàn)象。對(duì)于確定型的非線性系統(tǒng)出現(xiàn)的具有內(nèi)在隨機(jī)性的解,就稱為混沌解,這種解在短期內(nèi)可以預(yù)測,而在長期內(nèi)卻不可預(yù)測?;煦绮皇呛唵蔚臒o序,而是沒有明顯的周期性和對(duì)稱性,但卻是具有豐富內(nèi)部層次的有序結(jié)構(gòu)?;煦缇哂腥缦碌奶卣鳎簩?duì)初始條件的敏感依賴性、整體穩(wěn)定而局部不穩(wěn)定、軌道不穩(wěn)定及分岔、長期不可預(yù)測性等。

Tent混沌系統(tǒng)又稱為帳篷映射,其表達(dá)式如下:

基于Tent混沌系統(tǒng)的音頻加密方法

其中,k為一個(gè)常數(shù),0<k<1;Tent系統(tǒng)將區(qū)間[0,1]映射到其自身上。對(duì)任意選定的一個(gè)初值x0,由迭代xn+1=f(xn)所得到的序列{xi},i=0,1,2,……,在區(qū)間[0,1]上遍歷且均勻分布。

Tent系統(tǒng)具有如下的特點(diǎn):是一種分段線性的一維映射,是混沌的,并具有均勻的概率密度與功率譜密度,以及較理想的自相關(guān)性。

Chen混沌系統(tǒng)是一種三維常微分系統(tǒng),具有復(fù)雜的動(dòng)力學(xué)行為,其表示為:

基于Tent混沌系統(tǒng)的音頻加密方法

其中,(x,y,z)為系統(tǒng)軌跡;

a,b,c是系統(tǒng)參數(shù),且都為正實(shí)數(shù);

當(dāng)a=35,b=3,c=28時(shí),系統(tǒng)有奇異吸引子,處于混沌狀態(tài)。

二、加密算法

為了實(shí)現(xiàn)對(duì)數(shù)字音頻的加密,下面提出一種將Tent混沌系統(tǒng)與Chen混沌系統(tǒng)相結(jié)合的加密方法。該方法的原理是使用Chen混沌系統(tǒng)產(chǎn)生Tent混沌系統(tǒng)中的參數(shù)k的值,然后用Tent混沌系統(tǒng)實(shí)現(xiàn)對(duì)音頻的加密。由于參數(shù)k的值是由Chen混沌系統(tǒng)產(chǎn)生的,因此比直接為其選取一個(gè)值更具有保密性,并增加了被破譯的難度。

1、產(chǎn)生混沌序列的計(jì)算步驟

該方法產(chǎn)生混沌序列的計(jì)算步驟如下:

(1)選取Chen系統(tǒng)的初值x0,y0,z0;使用有限差分法對(duì)Chen系統(tǒng)進(jìn)行離散化并求解;把求得的解作為新的初值,重復(fù)地迭代求解Chen系統(tǒng),進(jìn)行n次。例如,n=100。

(2)對(duì)由第一步產(chǎn)生的3個(gè)值xn,yn,zn;取這3個(gè)值的小數(shù)部分,并計(jì)算其平均值;將該值作為Tent系統(tǒng)中參數(shù)k的值。

(3)使用Tent系統(tǒng)對(duì)音頻進(jìn)行加密,即由第二步中確定的參數(shù)k的值,通過使用公式pn+1=f(pn)進(jìn)行迭代,產(chǎn)生一個(gè)混沌序列{pi},i=0,1,2,……。

(4)根據(jù)序列{pi},生成另一個(gè)序列{qi}。當(dāng)pi<0.5時(shí),qi=0;當(dāng)pi≥0.5時(shí),qi=1。從所產(chǎn)生的這個(gè)序列{qi}中選出一部分qs,qs+1,…,qs+t作為對(duì)音頻加密時(shí)使用的混沌序列。這里s和t為一個(gè)正整數(shù)。對(duì)音頻的加密需要對(duì)音頻文件的結(jié)構(gòu)進(jìn)行分析。

而本文主要是針對(duì)wav格式的音頻文件,這種文件是由文件頭和數(shù)據(jù)體兩大部分組成。對(duì)單聲道wav音頻文件的文件頭信息是開始的40個(gè)字節(jié),而對(duì)雙聲道wav音頻文件則是開始的54個(gè)字節(jié)。在加密時(shí)對(duì)文件頭信息不做處理,只對(duì)其后的數(shù)據(jù)體部分進(jìn)行處理。

2、音頻加密方法的步驟音頻加密方法的步驟如下:

(1)打開一個(gè)音頻文件。

(2)讀取音頻文件中的數(shù)據(jù),獲得數(shù)據(jù)體部分。

(3)使用Tent系統(tǒng)和Chen系統(tǒng),產(chǎn)生一個(gè)如前所述的序列qs,qs+1,…,qs+t,以作為加密時(shí)的混沌序列。

(4)把音頻數(shù)據(jù)所對(duì)應(yīng)的二進(jìn)制序列與混沌序列進(jìn)行異或操作。異或的結(jié)果,是一個(gè)與音頻數(shù)據(jù)原來的二進(jìn)制序列不相同的序列,將該序列轉(zhuǎn)換為音頻文件格式中的數(shù)據(jù)體部分,就得到了經(jīng)過加密后的音頻文件。

我們用VisualC++編制了如上的基于混沌的音頻加密方法的程序,實(shí)現(xiàn)了對(duì)音頻數(shù)據(jù)文件加密與解密。在實(shí)驗(yàn)時(shí),對(duì)給定的初值,對(duì)Chen系統(tǒng)進(jìn)行迭代的次數(shù)為1000次,即n=1000。下圖是對(duì)一個(gè)wav格式的音頻數(shù)據(jù)文件加密與解密的實(shí)驗(yàn)結(jié)果:

基于Tent混沌系統(tǒng)的音頻加密方法

圖1是音頻的原始波形,圖2是經(jīng)過加密后的波形,圖3是解密后的音頻波形。實(shí)驗(yàn)結(jié)果說明,從加密后的音頻波形無法得知原音頻的內(nèi)容,兩者有很大的差別;同時(shí)當(dāng)解密密鑰與加密密鑰存在微小的偏差,即當(dāng)Tent系統(tǒng)中參數(shù)k的值具有微小的偏差例如10-4時(shí),不能正確地解密出原始音頻。

由于混沌具有長期不可預(yù)測性、對(duì)初值敏感性等特征,因此適合于對(duì)音頻數(shù)據(jù)進(jìn)行加密?;诨煦绲募用芊椒ǖ囊粋€(gè)特點(diǎn),是預(yù)測系統(tǒng)參數(shù)或初始值都非常困難,使得密碼難于被分析和破譯。采用多個(gè)混沌系統(tǒng)的結(jié)合,來實(shí)現(xiàn)音頻數(shù)據(jù)的加密,可以進(jìn)一步增強(qiáng)加密方法的安全性與可靠性。

小知識(shí)之混沌:

在非線性科學(xué)中,混沌現(xiàn)象指的是一種確定的但不可預(yù)測的運(yùn)動(dòng)狀態(tài)。它的外在表現(xiàn)和純粹的隨機(jī)運(yùn)動(dòng)很相似,即都不可預(yù)測。但和隨機(jī)運(yùn)動(dòng)不同的是,混沌運(yùn)動(dòng)在動(dòng)力學(xué)上是確定的,它的不可預(yù)測性是來源于運(yùn)動(dòng)的不穩(wěn)定性。