基于跳躍軌道的數(shù)字序列混沌加密算法
任何非線性系統(tǒng)的混沌狀態(tài)都是由無限不穩(wěn)定的周期軌道組成。對于任意給定的初始狀態(tài)值,混沌系統(tǒng)不能自發(fā)地移動到任何一個軌道上。即該混沌系統(tǒng)可以不受任何外界影響落到這些軌道上的幾率接近零。但是,一旦混沌系統(tǒng)運行于這些軌道上,就不會脫離這些軌道除非對其進行外加控制。由于混沌系統(tǒng)的普遍性和其對初始狀態(tài)極強的敏感性,可以通過改變系統(tǒng)參數(shù),改變系統(tǒng)演化軌道,使混沌系統(tǒng)從一個周期軌道轉(zhuǎn)換到另一周期軌道。但是對于一個普通的非線性系統(tǒng)(非混沌),要達到同樣的效果非常困難?;煦缦到y(tǒng)的該特性提高了數(shù)字序列加密方法的安全性。
本文提出一種新的數(shù)字加密算法,該算法將加密序列映射至幾個不用的混沌周期軌道,然后將通過另一個非線性系統(tǒng)迭代周期軌道系統(tǒng)的參數(shù)得到的短序列作為重構(gòu)這些周期軌道的密鑰。在解密端,采用基于改進的Newton-Raphson算法的混沌軌道陰影法獲取這些系統(tǒng)參數(shù)。該加密算法中的密鑰不僅包括混沌周期軌道的初始條件值,同時也包括非線性系統(tǒng)的模型參數(shù)。該加密算法的特殊性使加密序列可以完全隨機,而且該加密序列不帶有原序列的任何信息。因此對于攻擊者來說,從參數(shù)空間估算模型參數(shù)是非常困難的;其次,只有獲得周期軌道的確切初始值,才有可能解密。但是,因為混沌系統(tǒng)的演化值對于初始條件具有極強的敏感性,獲取周期軌道的精確初始值幾乎是不可能的。相對于其他加密算法,本文加密算法除了具有較強的抗破譯性,也不需要任何空間坐標對的轉(zhuǎn)換。而且,由于Newton-Raphson的快速收斂性,粗略的初始條件估計值是可以達到理想效果的,重構(gòu)周期軌道的參數(shù)演化序列也會非常短。因此該算法在應用中更容易實現(xiàn)。
一、一種新的數(shù)字加密算法
1、杜芬振蕩器的周期軌道
杜芬振蕩器是一種被廣泛研究的特殊非線性系統(tǒng)。標準表達式如式(1)所示。

在式(1)中,如果δ值已經(jīng)確定,當δ值由小到大變化時,系統(tǒng)狀態(tài)也相應由小周期行為轉(zhuǎn)換為混沌行為,并且最終達到極大周期行為瞪鬮。因為基準信號γcos(t)的頻率是連續(xù)的(1 rad/s),杜芬方程的使用因此被限制在一個有限的定義域中。于是,ω0=2πfo,
式(1)可由式(2)表示如下。
![]()
式(2)中,令fo=0.2Hz,δ=0.3,使用四階龍格庫塔算法可以分別得到δ=0.2和δ=1.5時(x VS y)的平面圖。為了方便比較,將兩圖顯示在同一圖中,如圖1所示。

當δ= 3.5時,杜芬振蕩器處于混沌狀態(tài),下圖2是其吸引子。

當δ= 0.3(或者其他值)時,γ的值不同系統(tǒng)顯示出不同狀態(tài)。當γ∈[0.05,0.26],系統(tǒng)表現(xiàn)為小周期行為,當γ∈[0.27,0.43]時,系統(tǒng)為混沌狀態(tài),但是當γ∈[0.44,10.32]時,系統(tǒng)狀態(tài)表現(xiàn)為極大周期行為。由此,可以得到另一個重要結(jié)論,小周期軌道與極大周期軌道是分離的。即這兩個軌道之間沒有任何交叉點,這對于數(shù)字序列加密方法至關(guān)重要。而且,所有周期軌道的形狀完全不相同。
由混沌的可定義性可知,如果/取值屬于小周期軌道或者極大周期軌道的參數(shù)值域,系統(tǒng)軌道必定會演化并最終落在相應的周期軌道上。同時,由于混沌系統(tǒng)固有的隨機性,軌道上每一點的坐標都是隨機的。在兩個周期軌道參數(shù)域間轉(zhuǎn)換/的值促使周期軌道轉(zhuǎn)換,這種現(xiàn)象被稱為“周期軌道跳躍”。
2、數(shù)字加密算法
對于一個給定的δ值,與其對應的γ的小周期軌道取值域定義為A,極大周期軌道取值域為B。假設(shè)數(shù)字序列如式(3)所示。
![]()
其中,ai∈{o,1}{i=1,2...n)。在該加密算法中,式(2)的初始條件是關(guān)鍵,該初始條件必須使求得的解在該方程的周期軌道上。對于隨機給定的初始條件(x0,yo),不需要馬上就落到一個周期軌道上。但是,當γs∈A時,可由式(2)演化的上一步的結(jié)果值得到點(Xsi,ysi)。同理,當γg∈B時,迭代式(2)可得到點(Xgi,Ygi)。此時(xsi,ysi)和(Xgi,ygi)都位于各自的軌道上,并且都是初始條件相對應的軌道周期。
當ao取值O時,令γ=γs,式(2)由初始條件(Xsi,ysi)演化一步。那么ao被映射為小周期軌道上的一個點。相反,如果ao取值1,令7=yg,那么ao將映射到初始條件為(Xgi,Ygi)的極大周期軌道上的某個點。不論點在哪個軌道上,初始點都為(x0,Yo)。同理,ai被映射到點(xi,yi)。當映射呸時,其初始條件一定是(Xi-l,Yi-1)。否則,式(3)中的相同坐標對映射的點對也會相同,那么加密序列會很容易被解密。
式(3)的序列被映射為一個新的序列,如式(4)所示。
![]()
在該式中,每個坐標對都是隨機的并且對于一段不是很長的序列來說是唯一的。將序列映射到幾個混沌軌道,但是需要首先得到坐標對,然后將序列映射兩次以達到算法的性能。除了初始條件(Xsi,ysi)和(Xgi,Ygi),參數(shù)δ,γs,γg對于加密和解密也至關(guān)重要。因此,本文中通過一個非線性系統(tǒng)將其轉(zhuǎn)換為一個短序列,進一步加強安全性能。該短序列和式(4)中的加密序列共同組成最終的加密序列。解密時,如果非線性系統(tǒng)的模型參數(shù)已知,δ,γs,γg可由短序列獲得,重建周期軌道。那么通過判定每個坐標對坐落的軌道,就可以解密得到原始序列。
二、關(guān)鍵參數(shù)的轉(zhuǎn)換與計算
1、轉(zhuǎn)換序列
已知Rossler系統(tǒng)方程如式(5)所示如下:

當模型參數(shù)為a=0.2,b=0.2,c=9.0,該系統(tǒng)為混沌系統(tǒng)。其吸引子如圖3所示。模型參數(shù)也可為任意其他使其呈現(xiàn)混沌狀態(tài)的值。

將δ,γs,γg分別賦值為其參數(shù)值域中的某個值作為式(5)的初始條件。迭代式(5),由狀態(tài)變量xl,X2,X3可得到3個隨機向量。由于該系統(tǒng)狀態(tài)變量之間互相影響,任意一個狀態(tài)變量的演化向量必然包含完整的系統(tǒng)信息。那么,可從每個向量中截取一個短序列作為參數(shù)δ,γs,γg的轉(zhuǎn)換序列,這些序列對部分狀態(tài)變量可見的系統(tǒng)是非常重要且必須的。
現(xiàn)在,必須有一個算法可以由這些短序列準確估算出式(5)的初始條件,即δ,γs,γg。
2、初始條件估測算法
隨機從式(5)吸引子中選取(Xli,X2i,x3i)賦值給δ,γs,γg。其中,(Xli,X2i,X3i)的值必須分別落入δ,γs,γg的定義域內(nèi)。將這些數(shù)據(jù)作為式(5)的初始數(shù)據(jù)。將Eq(5)改寫為三維自治混沌系統(tǒng)的矩陣形式,如式(6)所示。
![]()
x= (xl,X2,X3)T∈Rn為狀態(tài)向量。假設(shè)方程向量已知為F=(FI,F(xiàn)2,F(xiàn)3)T,初始狀態(tài)向量z(O)=(δ,γs,γg)丁,時間演化的狀態(tài)向量x(t)可以唯一確定。目標是估算x(0)的值。
從短序列截取一個狀態(tài)變量的值(Xli,X2i,X3i)。不失一般性情況下,選擇狀態(tài)變量x1)。
令y(o)指代x(0)的初始猜測值,從式(6)獲取時間演化值y(t)。令e(t)指代誤差可得式(7),如下所示:
![]()
y(o)由x(l)演化得到且滿足e(t)=0。由混沌系統(tǒng)的時間演化序列由初始條件y(o)唯一確定的屬性可知,y(o)等價于x(0)。該方法是一種改進的Newton-Raphson方法。
引入xn= x(nΔt)指代第N個樣本,Δt代表步長。同理yn= y(nΔt)且:
![]()
令Δy0= x0-yo=e0那么,可得式(8),如下所示。
![]()
最后一步為AΔ0的泰勒公式的擴展式。對于At值較小時可寫為式(9),如下所示。
![]()
將式(9)帶入式(8)忽略高階部分得到式(10a),如式(10a)所示。

式(10a)的等價式可表示為式(10b),如下所示。
![]()
式(10b)的矩陣形式如式(11)所示。
![]()
E1是向量81相應的列矩陣,I為單位矩陣,其元素可由式(12)得到。

同理,e2或E2可表示為式(13),如下所示。

由式(6)迭代n步得到矩陣誤差如式(14)所示。
![]()
令y10=x10,可由X1的序列得出x0=(x1(o),x2(o),x3(O)),其中Y2,Y3可以是任意猜測值。那么,y(t)的初始猜測向量為yo=(x0,rand, rand)。
這里e10=y10一x10,即△y10 =Oo由式(12-14)演化得到麗個方程用于計算△y20,△y30,如式(15)所示。

其中,E20和E30分別指代△y20,△y30,d為系統(tǒng)維數(shù),這里為3。
因此,初始猜測向量可以通過一步演化改進,如式(16)所示。
![]()
給出初始向量yo經(jīng)過幾次迭代過程yo會收斂至xo=δ,γs,γg。由式(15)可知,x1只有兩個樣本值,xl和砰已知并且用于整個過程。得到加密序列如式(17)所示。
![]()
(x10,x11,x12)是x1的由方程(6)以δ,γs,γg為初始條件迭代后的前三個樣本值。
三、加密實例
1、加密
假設(shè)Rossler系統(tǒng)第n次迭代的狀態(tài)向量數(shù)據(jù)如式(18)所示。

使用上面的數(shù)據(jù)作為初始條件,可得到X1的演化序列。最初得到的序列可由式(19)表示。

由式(18)可知,這三個元素中沒有任何一個值落在δ,γs,γg的參數(shù)值域中。事實上,由于數(shù)據(jù)是隨機選取的,要使三個元素值分別落在相應的參數(shù)值域中是非常困難且不必要的??赏ㄟ^式(20)的簡單轉(zhuǎn)換得到所需的值。

通過相似轉(zhuǎn)換可以落入δ,γs,γg參數(shù)值域的數(shù)據(jù)并不唯一,其轉(zhuǎn)換方式也不唯一。
令杜芬系統(tǒng)的小周期軌道的初始條件為γs=0.2,xs (0) =12013,γg(0)=-0.0849,對應的極大周期軌道為γg=1.5,xg (O)=2.032 6,yg(O)=-0.8931。初始值也可以是其它任意落在相應軌道上的值。為了說明簡便,加密一個8位的數(shù)字序列,如式(21)所示。
![]()
值為“1”時,將其映射至極大周期軌道;反之,值為“0”時,映射至小周期軌道。加密后的序列為:

為獲取δ,γs,γg的值,必須在解密端提供x的短序列值。因此,最終得到加密序列如式(23)所示。
![]()
該加密序列中,不僅數(shù)據(jù)由不同系統(tǒng)和不同的周期軌道獲得,而且每個周期軌道上的坐標值都是完全隨機的。
2、解密
首先計算當a=0.2,b=0.2,c=9.0時,式(5)的參數(shù)δ,γs,γg的值。式(23)中code_kpara部分為Rossler系統(tǒng)的狀態(tài)變量xl的樣本序列。假設(shè)δ,γs,γg原始猜測值如式(24)所示。
![]()
代入式(16),得到迭代結(jié)果如下圖:

分析表1可知,y0快速且穩(wěn)定的收斂。將最后得到的值代入式(20)得到式(25)。
![]()
通過確定式(23)中每對坐標數(shù)據(jù)所在的軌道,可解密得到原始數(shù)字數(shù)列。解密序列01101010,為原始序列。實驗表明,即使周期軌道初始條件的估測誤差為10-16,解密也會失敗。例如,當ys (O)=-0.893 100 000 000 000 1,解密序列將會是00001010。同理,周期軌道的參數(shù)誤差為10-14,解密也將失敗。例如,當ys=1500 000 000 000 01,因為a,b,c的估測值都是錯的,解密后的序列為0000。
小知識之線性系統(tǒng)
線性系統(tǒng)是狀態(tài)變量和輸出變量對于所有可能的輸入變量和初始狀態(tài)都滿足疊加原理的系統(tǒng)。一個由線性元部件所組成的系統(tǒng)必是線性系統(tǒng)。但是,相反的命題在某些情況下可能不成立。線性系統(tǒng)的狀態(tài)變量(或輸出變量)與輸入變量間的因果關(guān)系可用一組線性微分方程或差分方程來描述,這種方程稱為系統(tǒng)的數(shù)學模型。










