魏連鎖 胡現(xiàn)成 陳 煒
(齊齊哈爾大學(xué)計(jì)算機(jī)與控制工程學(xué)院 黑龍江 齊齊哈爾 161006)
混沌是一種非周期的動力學(xué)過程,具有不確定性、不可重復(fù)性、不可預(yù)測性,它看似雜亂無章,其實(shí)混沌中蘊(yùn)涵著有序,這是其非線性動力系統(tǒng)的固有特性[1]。偽隨機(jī)序列廣泛應(yīng)用于密碼、調(diào)頻以及調(diào)頻通信系統(tǒng)中,其混沌系統(tǒng)產(chǎn)生的信號很難被破解,而混沌序列的產(chǎn)生需要混沌偽隨機(jī)序列發(fā)生器[2],其生成速度快,因而廣泛被使用。
混沌偽隨機(jī)序列要求具有隨機(jī)性好、安全性高、均勻分布等特性,但一般存在不連續(xù)、可控參數(shù)少等問題。文獻(xiàn)[3]提到一維Logistic映射在計(jì)算過程中存在周期退化、復(fù)雜度降低等問題。文獻(xiàn)[4]利用組合級聯(lián)設(shè)計(jì)的新一維混沌系統(tǒng)來提高區(qū)間大小以及不連續(xù)等性能,但是系統(tǒng)LE等參數(shù)未發(fā)生變化。另外,文獻(xiàn)[5]提出通過參數(shù)的級聯(lián)組合方式能夠提高偽隨機(jī)性。文獻(xiàn)[6]提出基于量子Logistic映射構(gòu)造的跳頻序列分析,結(jié)果表明其抗干擾性和安全性都優(yōu)于Logistic映射。文獻(xiàn)[7]提出一種基于混沌和Fibonacci偽隨機(jī)數(shù)列(F-L)的加密方法,提高了輸出的混沌序列的隨機(jī)特性,改進(jìn)了有限精度的局限性,周期性增大。文獻(xiàn)[8]提出將兩個(gè)一維映射并聯(lián)后進(jìn)行模1相加得到了性能較好的一維混沌映射。綜上,混沌偽隨機(jī)序列存在的問題可以通過級聯(lián)組合等方式來克服混沌偽隨機(jī)序列發(fā)生器設(shè)計(jì)中存在的不連續(xù)、可控參數(shù)少等根本性缺陷。
針對現(xiàn)有混沌系統(tǒng)產(chǎn)生的偽隨機(jī)序列分布不均勻、復(fù)雜度低、相關(guān)性大等問題,提出了一種基于三階廣義三階Fibonacci混沌系統(tǒng)(Generalized Third-order Fibonacci Chaotic System,GTFCS),以Logistic映射作為混沌模型,利用Fibonacci數(shù)列[9]本身的自相似性和Logistic映射在混沌狀態(tài)下對初值的敏感性進(jìn)行聯(lián)合,利用量子Logistic(Quantum Logistic,QL)混沌序列作為三階Fibonacci函數(shù)模型參數(shù),再與Logistic映射級聯(lián)耦合得到新的廣義三階Fibonacci混沌系統(tǒng)模型產(chǎn)生偽隨機(jī)數(shù)列,使偽隨機(jī)數(shù)列的產(chǎn)生更加具有隱蔽性和類似噪聲的特性。最后從密鑰空間、初值敏感性、相關(guān)性、差值特性、復(fù)雜度、相空間結(jié)構(gòu)以及圖像加密應(yīng)用等方面分析混沌系統(tǒng)具有很好的隨機(jī)性且安全可靠。
偽隨機(jī)數(shù)發(fā)生器的偽隨機(jī)序列是由數(shù)學(xué)公式計(jì)算產(chǎn)生,要想達(dá)到理想的應(yīng)用,需要偽隨機(jī)數(shù)發(fā)生器產(chǎn)生的偽隨機(jī)序列周期足夠大并且通過相應(yīng)的檢驗(yàn)。采用Fibonacci數(shù)列“擾動”的方法來得到混沌序列,增加控制參數(shù)個(gè)數(shù),使得混沌行為復(fù)雜度提高,彌補(bǔ)了Logistic混沌序列分布不均勻的缺點(diǎn)。
利用Fibonacci產(chǎn)生隨機(jī)數(shù)[9],為克服序列本身存在的相關(guān)性,對經(jīng)典的Fibonacci進(jìn)行改進(jìn)得到延遲的Fibonacci數(shù)列[10]:
xi+1=(xi+xi-p)modMi=p,p+1,…,M
(1)
式中:M∈N表示模,xi表示序列的值。確定初值與模便可以確定整個(gè)序列,利用式(1)構(gòu)造偽隨機(jī)序列,令x0=123、x1=1、x2=1、M=191、p=2,得到混沌序列,當(dāng)λ∈(3.57,4.00)時(shí),Logistic映射進(jìn)入混沌狀態(tài),所以取初值為r=3.8,z1=0.5的Logistic進(jìn)行相乘聯(lián)合,得到一維Logistic和Fibonacci結(jié)合的偽隨機(jī)序列。
Fibonacci數(shù)列具有簡單、快速、易于實(shí)現(xiàn)等特性,并且采用廣義三階參數(shù)Fibonacci函數(shù)模型:
Fj=(AiFi-1+BiFi-2+CiFi-3)modM
(2)
量子Logistic映射的表達(dá)式為:
(3)
式中:Ai、Bi和Ci表示隨機(jī)常數(shù),M為模。Ai、Bi和Ci為選取式(3)量子混沌映射所產(chǎn)生的變量xi、yi、zi序列組合,增大了Fj的隨機(jī)性。當(dāng)r∈(3.74,4.00),β≥3.5,狀態(tài)值x∈(0,1),y∈(0,0.246 1),z∈(0,0.246 1)時(shí),量子Logistic處于混沌狀態(tài),所以式(3)初值設(shè)x0=0.2,y0=0.05,z0=0.19,r=3.99,β=6.2;式(2)內(nèi)的帶參Fi為Fibonacci的F-L混沌偽隨機(jī)序列,通過取模運(yùn)算產(chǎn)生Fj序列。
量子混沌映射作為隨機(jī)動態(tài)參數(shù),降低了系列相關(guān)性,在經(jīng)過廣義三階參數(shù)Fibonacci函數(shù)模型處理后,再用此廣義Fibonacci函數(shù)與Logistic映射耦合得到廣義三階Fibonacci混沌系統(tǒng):
Xn+1=AFQL=(F(Q(γ,β)))+L(x0,μ) mod 1
(4)
式中:Q(γ,β)表示量子混沌系統(tǒng),F(xiàn)(Q(γ,β))表示將F-L數(shù)列與QL混沌系統(tǒng)經(jīng)式(2)級聯(lián)后的Fj,L(x0,μ)表示初始狀態(tài)為x0及參數(shù)為r的Logistic混沌系統(tǒng)。迭代產(chǎn)生均勻且非相關(guān)的廣義三階Fibonacci偽隨機(jī)混沌序列。圖1為GTFCS偽隨機(jī)序列的發(fā)生器的設(shè)計(jì)示意圖。

圖1 GTFCS偽隨機(jī)混沌序列發(fā)生器示意圖
偽隨機(jī)發(fā)生器設(shè)計(jì)步驟如下:
步驟1首先選取量子Logistic(Quantum Logistic,QL)混沌系統(tǒng)的初始值及系統(tǒng)控制參數(shù)代入QL混沌系統(tǒng)中,得到xi、yi和zi均在(0,1)范圍內(nèi)的實(shí)數(shù)三階序列(xi,yi,zi)。
步驟2選取Logistic混沌系統(tǒng)和Fibonacci數(shù)列的初始值及系統(tǒng)控制參數(shù),將Fibonacci數(shù)列和Logistic混沌系統(tǒng)聯(lián)合產(chǎn)生F-L序列。
步驟3將步驟1所產(chǎn)生的QL混沌三階序列(xi,yi,zi)代入式(2)分別作為廣義三階Fibonacci函數(shù)模型的參數(shù)Ai、Bi和Ci,同時(shí)將步驟2中的F-L序列代入式(2)作為廣義三階Fibonacci函數(shù)模型的函數(shù)值Fi,迭代產(chǎn)生廣義三階Fibonacci函數(shù)模型序列。
步驟4將步驟3中通過式(2)產(chǎn)生的廣義三階Fibonacci函數(shù)模型序列與Logistic混沌系統(tǒng)代入式(4)級聯(lián)耦合,再進(jìn)行迭代產(chǎn)生最后所需的均勻非相關(guān)的序列。
根據(jù)上述步驟設(shè)計(jì)的偽隨機(jī)序列發(fā)生器,相比于一般的序列發(fā)生器具有更好的偽隨機(jī)特性和安全性,混沌系統(tǒng)的生成代碼如下:
from scipy import stats
from mpl_toolkits.mplot3d import Axes3D
# 量子logistic
def three(from_start,sum,x,y,z,r,belta):
for i in range(sum):
x.append(r*(x[i]-x[i]**2)-r*y[i])
y.append(-y[i]*math.exp(-2*belta)+math.exp(-belta)*r*((2-x[i]-x[i])*y[i]-x[i]*z[i]-x[i]*z[i]))
z.append(-z[i]*math.exp(-2*belta)+math.exp(-belta)*r*(2*(1-x[i])*z[i]-2*x[i]*y[i]-x[i]))
# logistic
for i in range(1,10001):
z.append(r*z[i-1]*(1-z[i-1]))
# logistic與fibonacci對應(yīng)的數(shù)相乘
for i in range(3,10001):
F.append(np.remainder(h[i]*c[i-1]+j[i]*c[i-2]+k[i]*c[i-3],100))
b=np.remainder(np.array(F)+np.array(z),1)
產(chǎn)生均勻且非相關(guān)的偽隨機(jī)混沌序列如圖2所示,可以看出序列值具有均勻分布性。依據(jù)各混沌系統(tǒng)的特性固定參數(shù)的初值,保證了在各自的混沌狀態(tài)下級聯(lián)組合成新的混沌系統(tǒng),一個(gè)參數(shù)的變動將會影響整體的混沌系統(tǒng)不能產(chǎn)生混沌序列。該算法是混合多混沌的結(jié)合,這樣可以確保偽隨機(jī)序列發(fā)生器的復(fù)雜性安全性。

圖2 偽隨機(jī)序列分布圖
GTFCS偽隨機(jī)序列發(fā)生器能夠快速生成混沌偽隨機(jī)序列,可以從密鑰空間、初值敏感性、相關(guān)性、復(fù)雜度、相空間結(jié)構(gòu)等多方面通過Python仿真分析這些偽通機(jī)序列特性。
對于系統(tǒng)的非線性分析主要為參數(shù)對系統(tǒng)的影響,采用常用的全局分岔圖,可以直觀看出系統(tǒng)運(yùn)動狀態(tài)的變化。固定參數(shù)r=3.99,β=6.2,改變Logistic參數(shù)λ,λ∈(3.57,4)系統(tǒng)的全局分岔圖如圖3所示。可以看出系統(tǒng)λ∈(0.5,0.6)處于非混沌狀態(tài),λ∈[0.6,4]處于混沌狀態(tài)。

圖3 全局分岔圖
初值敏感性分析是一個(gè)系統(tǒng)安全性說明的重要部分,偽隨機(jī)序列擁有好的初值敏感性才能滿足實(shí)際應(yīng)用。通過對密鑰初始值進(jìn)行輕微的改變,來觀察產(chǎn)生的序列與原始序列是否有強(qiáng)烈的變化,通過數(shù)據(jù)差波動情況達(dá)到測試的目的。利用GTFCS偽隨機(jī)序列算法產(chǎn)生序列,其中一個(gè)為原始序列,另一個(gè)序列是對初始值取值偏差為10-11所得到的新數(shù)列,圖4為兩序列的差值圖,上下變化的差值說明該算法對密鑰初始值具有很強(qiáng)的敏感性。

圖4 兩數(shù)列差異圖
相關(guān)性是混沌序列重要的性質(zhì),好的相關(guān)性是系統(tǒng)能夠可靠運(yùn)行的重要保證之一。自相關(guān)函數(shù)是描述在任意兩個(gè)不同時(shí)刻分別取初值x0=123,x0=123+10-11的相關(guān)程度;互相關(guān)函數(shù)[11]給出了兩個(gè)隨機(jī)序列是否相關(guān)的一個(gè)判斷指標(biāo),自相關(guān)描述同一序列在不同時(shí)刻的相關(guān)程度。
當(dāng)系統(tǒng)初始參數(shù)x0=123,x1=1.0,x2=1.0,M=191時(shí),將參數(shù)Ai、Bi、Ci作為初值代入QL混沌系統(tǒng)產(chǎn)生的參數(shù)序列具有自相關(guān)和互相關(guān)特性,通常認(rèn)為相關(guān)系數(shù)在0±0.09為沒有相關(guān)性,0.1±0.30為弱相關(guān)。如圖5所示,序列具有類似δ-like的性質(zhì),有尖銳的自相關(guān)特性和良好的互相關(guān)特性。

(a) 序列的自相關(guān)特性 (b) 序列的互相關(guān)特性圖5 序列相關(guān)性分析圖
隨機(jī)性采用美國NIST公布的SP800-22隨機(jī)數(shù)測試標(biāo)準(zhǔn)對序列進(jìn)行測試,即SP800-22標(biāo)準(zhǔn)[12]。該標(biāo)準(zhǔn)從不同角度檢驗(yàn)偽隨機(jī)序列在統(tǒng)計(jì)特性上相對于理想隨機(jī)序列的偏離程度,通過該檢驗(yàn)標(biāo)準(zhǔn)的偽隨機(jī)序列具有好的隨機(jī)性能。
計(jì)算判斷標(biāo)準(zhǔn)P-Value的值:
(5)
(6)
(7)
式中:sabs為統(tǒng)計(jì)值,erfc為互補(bǔ)誤差函數(shù)。若P-Value的值大于0.01,則認(rèn)為測試的序列符合隨機(jī)序列;反之,則認(rèn)為序列不滿足隨機(jī)序列的要求[13]。由上述測試方法測得此隨機(jī)序列P-Value值為0.852 18,大于0.01,故可認(rèn)為序列是隨機(jī)序列。
實(shí)驗(yàn)選用Python 3.6平臺實(shí)現(xiàn)對混沌系統(tǒng)的設(shè)計(jì)與測試,通過從密鑰空間、初值敏感性、相關(guān)性、差值特性、復(fù)雜度、相空間結(jié)構(gòu)等多方面分析偽隨機(jī)序列的特性。為了更直觀地展現(xiàn)GTFCS偽隨機(jī)序列的特性,分別對QL(x軸)、F-L混沌和GTFCS進(jìn)行對比,選取了典型的信息熵、序列直方圖、序列復(fù)雜度等方法進(jìn)行對比分析。
信息熵用來描述信息的不確定性和混亂程度,系統(tǒng)越是有序,信息熵就越低;反之,系統(tǒng)越是混亂,信息熵就越高[14]。信息熵與事件概率分布有關(guān),信息熵越大。在所有概率均等的情況下,通過信息熵不僅能反映出混亂程度,也可以間接性反映出隨機(jī)數(shù)據(jù)的均衡性。計(jì)算公式如下:

(8)
信息熵的大小可以反映混沌系統(tǒng)的混亂情況,迭代后得到的GTFCS信息熵值為9.015 24,QL系統(tǒng)(x軸)的信息熵為8.973 75,F(xiàn)-L系統(tǒng)為8.934 77,系統(tǒng)越是混亂,信息熵就越高,顯然,GTFCS數(shù)值更大。為了進(jìn)一步說明系統(tǒng)的穩(wěn)定性,分別取七段數(shù)據(jù)的信息熵進(jìn)行對比,通過表1可以比較出新的系統(tǒng)數(shù)值高于其他兩個(gè),證明穩(wěn)定性更強(qiáng)。

表1 系統(tǒng)取多段信息熵
為了更直觀地觀察系統(tǒng)輸出序列分布情況,繪制了QL(x軸)、F-L和GTFCS的直方圖,如圖6所示。

(a) QL直方圖

(b) F-L直方圖

(c) GTFCS直方圖圖6 混沌系統(tǒng)直方圖
由圖可知,QL(x軸)直方圖、F-L直方圖的分布不均勻,并且QL易受初始影響,而GTFCS采用Fibonacci數(shù)列“擾動”的方法來得到混沌序列,將F-L混合序列作為廣義三階Fibonacci函數(shù)模型函數(shù)值,使混沌行為復(fù)雜度提高,彌補(bǔ)了Logistic混沌序列分布不均勻的缺點(diǎn),混沌數(shù)據(jù)分布更加均勻平滑,更符合隨機(jī)序列發(fā)生器的要求。
序列復(fù)雜度表示序列與理想隨機(jī)序列的相似程度,通過其大小來判斷序列的復(fù)雜情況,數(shù)值越大,表明與理想隨機(jī)序列越相似,就越難以被恢復(fù),越具有安全性[15]。Pincus等[16]提出的近似熵(ApEn)方法可以便捷地計(jì)算出序列的復(fù)雜度。圖7給出了F-L系統(tǒng)、QL和GTFCS的ApEn值,對比得到以下結(jié)論:GTFCS模型偽隨機(jī)序列的ApEn值最大,ApEn值約為1;其他模型數(shù)值偏低。這充分說明此模型生成的偽隨機(jī)序列的復(fù)雜度明顯高于F-L系統(tǒng)、QL模型生成的偽隨機(jī)序列復(fù)雜度。

圖7 三種系統(tǒng)的ApEn值比較
對模型的偽隨機(jī)序列連續(xù)數(shù)值構(gòu)造空間結(jié)構(gòu)圖,以QL(x軸)、F-L系統(tǒng)、GTFCS生成的序列xn為基礎(chǔ)進(jìn)行取點(diǎn),以點(diǎn)(xi,xi+1)繪制二維空間結(jié)構(gòu)圖,遍歷完整個(gè)序列xn;同理,以點(diǎn)(xi,xi+1,xi+2)繪制三維空間結(jié)構(gòu)圖,得到圖8。

(a) QL(x軸)空間二維、三維結(jié)構(gòu)圖

(b) F-L空間二維、三維結(jié)構(gòu)圖

(c) GTFCS序列空間二、三維結(jié)構(gòu)圖圖8 三種混沌系統(tǒng)空間結(jié)構(gòu)圖
由圖8可以看出,QL混沌映射輸出序列空間結(jié)構(gòu)呈現(xiàn)曲線特征,具有較高的相關(guān)性;而F-L存在分布不均勻的現(xiàn)象,并且隨著迭代的次數(shù)增加,隨機(jī)呈現(xiàn)初始密集逐漸趨于稀疏不均勻的分布;GTFCS序列是利用量子Logistic混沌系統(tǒng)產(chǎn)生的混沌序列作為廣義三階Fibonacci函數(shù)模型的參數(shù),然后利用F-L聯(lián)合混沌作為廣義三階Fibonacci函數(shù)的變量,不僅增加了可控參數(shù)的數(shù)量,同時(shí)利用混沌序列作為數(shù)據(jù)的輸入,增強(qiáng)了數(shù)據(jù)混沌性,使序列分布呈現(xiàn)出更好的均勻性和無序性。
隨著信息技術(shù)的快速發(fā)展,圖像、視頻、音頻等多媒體數(shù)據(jù)的安全引起了人們的廣泛關(guān)注。對圖像信息進(jìn)行安全、高效的加密的算法是多媒體研究的重點(diǎn),而基于混沌系統(tǒng)設(shè)計(jì)新型的密碼算法則成為當(dāng)下圖像加密的有效方法[17-18]。
選用Python平臺實(shí)現(xiàn)對彩色圖像的加密測試,圖像選擇像素大小為256×256的灰度圖像,展現(xiàn)經(jīng)過置亂與擴(kuò)散加密后的加密圖像。如圖9所示。

(a) 原圖像 (b) 加密圖

(c) 原始圖像直方圖 (d) 加密后圖像直方圖圖9 混沌圖像加密圖
通過混沌擴(kuò)散-置亂方法對圖像進(jìn)行加密是處理圖像常用的方法,基于混沌系統(tǒng)設(shè)計(jì)新型密碼算法則成為當(dāng)下圖像加密的有效方法。利用廣義三階Fibonacci混沌偽隨機(jī)序列對圖像進(jìn)行置亂-擴(kuò)散操作,能很好地掩飾圖像內(nèi)容,加密效果良好。圖9(c)、(d)所示為原始圖像的灰度直方圖和加密圖像的灰度直方圖,加密后的圖像直方圖分布更均勻,難以發(fā)現(xiàn)圖像內(nèi)容。
GTFCS偽隨機(jī)序列發(fā)生器能產(chǎn)生偽隨機(jī)性強(qiáng)、分布均勻、相關(guān)性小偽隨機(jī)序列,通過與其他序列的信息熵、序列直方圖、序列復(fù)雜度進(jìn)行對比,序列表現(xiàn)出良好的偽隨性,證明該偽隨機(jī)序列隨機(jī)性強(qiáng)且安全可靠。基于混沌系統(tǒng)設(shè)計(jì)新型的密碼算法成為當(dāng)下圖像加密的有效方法,利用混沌序列對明文圖像的置亂,充分改變像素位置,同時(shí)改變像素值,提高加密安全性。實(shí)驗(yàn)平臺對灰度圖像進(jìn)行加密測試,將GTFCS偽隨機(jī)序列應(yīng)用到圖像加密中,利用混沌序列對圖像原有的信息進(jìn)行置亂與擴(kuò)散,實(shí)現(xiàn)了圖像信息的有效覆蓋,加密后圖像直方圖分布均勻,滿足圖像加密應(yīng)用,具有較高應(yīng)用價(jià)值。