周宇,李巧,劉靜,王駿超
(1.中國信息通信研究院西部分院,重慶 401336;2.聯(lián)合微電子中心有限責(zé)任公司,重慶 401332;3.重慶大學(xué)微電子與通信工程學(xué)院,重慶 400044)
混沌是一種具有內(nèi)在隨機(jī)性的非線性動力系統(tǒng),具有對初始值敏感性、遍歷性、偽隨機(jī)性、軌道不可預(yù)測性的特點(diǎn)[1],常作為偽隨機(jī)序列發(fā)生器應(yīng)用于密碼系統(tǒng)中。但是,在計(jì)算機(jī)有限精度下實(shí)現(xiàn)混沌系統(tǒng)得到的序列隨機(jī)性下降,抗干擾、抗截獲的能力不高[2]。浮點(diǎn)系統(tǒng)可以保留混沌特性,但增加了系統(tǒng)的計(jì)算量與硬件開銷,而定點(diǎn)混沌系統(tǒng)動力學(xué)退化效應(yīng)目前沒有衡量指標(biāo),應(yīng)對混沌動力學(xué)退化的方案有添加隨機(jī)擾動、提高數(shù)據(jù)精度等[3]。添加隨機(jī)擾動在具體應(yīng)用過程中實(shí)現(xiàn)方法簡單,有利于提高動力學(xué)特性[4-8]。
文獻(xiàn)[9]將多個(gè)混沌塊級聯(lián)在一起,以產(chǎn)生具有更好隨機(jī)性的偽隨機(jī)數(shù)。中南大學(xué)的科研團(tuán)隊(duì)詳細(xì)研究了混沌序列復(fù)雜性的分析方法,比較了近似熵、譜熵、樣本熵和強(qiáng)度統(tǒng)計(jì)復(fù)雜度等算法,這些方法可以為混沌在有限精度條件下的應(yīng)用提供相關(guān)理論依據(jù)[10-11]。本文提出了基于組合混沌的多精度流加密方案,并用譜熵作為定點(diǎn)混沌的混沌評判方法。
Logistic 映射是一個(gè)被廣泛研究的一維離散映射,也稱為蟲口模型,其表達(dá)式是一個(gè)簡單的非線性迭代方程[12],通過向下取整可以保留有限精度,其定義為:
式中O 代表選擇的數(shù)據(jù)進(jìn)制,這里為二進(jìn)制,c 為數(shù)據(jù)精度,此處為常數(shù),可取定點(diǎn)32 位、24 位、16 位、12位,n 為迭代次數(shù)。結(jié)構(gòu)參數(shù)μ∈[3.569,4]時(shí),系統(tǒng)進(jìn)入混沌狀態(tài)。此時(shí)系統(tǒng)迭代產(chǎn)生的序列是非周期且不收斂的偽隨機(jī)序列。μ 越趨近于4,迭代產(chǎn)生的值在區(qū)間[0,1]內(nèi)越接近均勻分布。
Tent 映射是分段的二維混沌映射,與Logistic 映射互為拓?fù)涔曹椨成洌鋺?yīng)用比較廣泛[13],取整后的表達(dá)式為:
式中結(jié)構(gòu)參數(shù)α∈[0,1],yn∈[0,1],當(dāng)α=0.5 時(shí),系統(tǒng)呈現(xiàn)短周期狀態(tài),且系統(tǒng)的初始值不能與α 相同,否則迭代產(chǎn)生的序列出現(xiàn)周期,系統(tǒng)演化為周期系統(tǒng)。
通過向下取整函數(shù)可以得到定點(diǎn)混沌序列,然而取整函數(shù)舍棄了部分小數(shù)位,降低了數(shù)據(jù)精度,系統(tǒng)每次迭代都會受到影響,精度損失過大會導(dǎo)致混沌系統(tǒng)進(jìn)入周期狀態(tài)或者喪失不確定性。失去混沌動力學(xué)特性將導(dǎo)致序列的隨機(jī)性減弱,影響加密效果。
對序列隨機(jī)性進(jìn)行定量分析可以評估系統(tǒng)的安全性。用定點(diǎn)序列進(jìn)行加密顯然可以降低系統(tǒng)的計(jì)算復(fù)雜度,然而通過式(1)可以看出,目前混沌評判指標(biāo)如Lyapunov 指數(shù)存在求導(dǎo)過程,無法適用于定點(diǎn)系統(tǒng),而K 熵、龐加萊截面等方法也難以實(shí)施。譜熵通過頻域內(nèi)能量譜特性來分析序列的復(fù)雜程度,可以直接用快速傅里葉變換算法得到頻域特性,在頻域內(nèi)序列的能量譜分布越均衡,隨機(jī)性越強(qiáng)[14]。結(jié)合香農(nóng)熵可以計(jì)算出相應(yīng)的譜熵值(SEN)。
(1)去除序列直流部分。
(2)進(jìn)行離散傅里葉變換,求得傅里葉系數(shù)X(k),k=0,1,...,N-1。
(3)計(jì)算X(k)的前半部分序列不同點(diǎn)的功率譜Pk、序列在k 點(diǎn)處的功率p(k)及序列總功率Ptot,k=0,1,...,N/2-1。
(4)計(jì)算序列譜熵s 并取得歸一化的譜熵值S。
本系統(tǒng)的密鑰為α0和μ 兩個(gè)結(jié)構(gòu)參數(shù)、Tent 映射初始值y0和每輪迭代次數(shù)l,這些密鑰由通信雙方確定?;煦绯跏贾涤擅荑€加上明文圖像通過哈希函數(shù)得到的哈希值組成。哈希函數(shù)對初始值敏感的特性可以保證系統(tǒng)對明文敏感?;煦缦到y(tǒng)參數(shù)為α、μ,y。通過明文和SHA-256 函數(shù)生成長度為256 位的二進(jìn)制序列H,它被分成32 段,長度為8 位。Tent 映射的初始值計(jì)算公式如下:
組合混沌序列產(chǎn)生流程如圖1 所示。首先選擇數(shù)據(jù)精度,依據(jù)數(shù)據(jù)重要程度的不同可以選擇浮點(diǎn)數(shù)及定點(diǎn)32 位、24 位、16 位和12 位數(shù)。再交換密鑰后生成混沌系統(tǒng)的初始值,本文提出通過改變Logistic 系統(tǒng)初始值的方式來打亂序列的生成規(guī)律,序列經(jīng)過l 次迭代后,將得到一個(gè)新的初值。每次的初始值由Tent映射迭代生成,即Tent 映射迭代一次生成Logistic 的初值,每得到一個(gè)初值后Logistic 映射迭代l 次。Tent迭代生成的序列也是隨機(jī)的,提升了軌道的不可預(yù)測性,進(jìn)一步提高了序列的隨機(jī)性。
圖1 組合混沌序列產(chǎn)生流程
本文提出的加密流程如圖2 所示。通過保留不同的精度,可以得到安全性不同的加密系統(tǒng),保留精度越高,序列隨機(jī)性越強(qiáng)。通過組合混沌系統(tǒng)可以在定點(diǎn)狀態(tài)下產(chǎn)生性能良好的偽隨機(jī)序列xn,經(jīng)過式(12)所示的門限判斷得到加密用的二進(jìn)制序列Sn,Sn與明文In進(jìn)行異或操作得到二進(jìn)制密文序列Zn。
圖2 組合混沌加密算法流程
序列的自相關(guān)函數(shù)可以有效衡量信號是否具有隨機(jī)性,具有良好隨機(jī)性的序列的自相關(guān)函數(shù)類似于δ 函數(shù)。組合混沌序列與單混沌序列的自相關(guān)性對比如圖3 所示,混沌初始值及結(jié)構(gòu)參數(shù):x0=0.1,μ=4,α=0.499。組合混沌初值中y0=0.6,l=1024,得到的序列長度都為512×512×4。從圖3 可以看出,精度越低序列自相關(guān)性越強(qiáng),但在有限精度影響下低精度序列開始出現(xiàn)類周期現(xiàn)象。組合混沌系統(tǒng)有效克服了周期效應(yīng),序列自相關(guān)函數(shù)具有良好的類δ 特性。
圖3 序列自相關(guān)性對比
本文以譜熵值作為衡量定點(diǎn)混沌動力學(xué)退化程度的指標(biāo),當(dāng)定點(diǎn)數(shù)系統(tǒng)序列譜熵值與浮點(diǎn)數(shù)接近時(shí),表明系統(tǒng)保留了混沌特征。系統(tǒng)長時(shí)間演化之后軌道進(jìn)入吸引子附近,可能造成類周期現(xiàn)象,因此迭代長度對序列隨機(jī)性也有一定影響。
不同系統(tǒng)的譜熵值隨迭代次數(shù)的變化情況如圖4所示,可以看出單混沌定點(diǎn)系統(tǒng)在通過多次迭代之后出現(xiàn)譜熵值減少的現(xiàn)象,說明系統(tǒng)隨機(jī)性下降。當(dāng)精度為24 位時(shí),組合混沌系統(tǒng)產(chǎn)生的混沌序列的譜熵值為0.903 7,此時(shí)l=1 024,譜熵值接近浮點(diǎn)序列。當(dāng)精度增加到32 位時(shí),譜熵值為0.954 7,但此時(shí)l=16 384,說明組合混沌的定點(diǎn)24 位、32 位系統(tǒng)性能接近浮點(diǎn)系統(tǒng),組合加擾的方式增加了生成序列的隨機(jī)性。因此,當(dāng)有效精度保持率較高時(shí),l 值可以取得更大。在本文的性能分析中,選擇l=1 024。
圖4 不同系統(tǒng)譜熵值分析
NIST 測試廣泛用于檢測二進(jìn)制序列的隨機(jī)性,包含15 個(gè)測試[15]。每項(xiàng)測試最終輸出統(tǒng)計(jì)結(jié)果參考值Q,當(dāng)Q>0.000 1 時(shí)表示通過該項(xiàng)測試?;旌匣煦缦到y(tǒng)產(chǎn)生的長度為106的二進(jìn)制序列和相同長度的單個(gè)Logistic 混沌生成的二進(jìn)制序列的NIST 測試結(jié)果如表1 所示??梢钥闯?,單混沌浮點(diǎn)系統(tǒng)可以通過所有測試,而單混沌定點(diǎn)32 位系統(tǒng)只有部分統(tǒng)計(jì)通過檢驗(yàn),而組合混沌生成的32 位定點(diǎn)系統(tǒng)生成的序列可以通過測試。
表1 NIST 測試結(jié)果
選取不同圖片進(jìn)行加密效果分析,不同明文加密效果如圖5 所示,CT 圖像(Covid-19 病患的肺部)的大小為512×512×3,其他圖像的大小為512×512。
圖5 不同明文加密效果
所提出的不同精度加密系統(tǒng)加密算法的安全性測試結(jié)果如表2 所示,NPCR 為像素變化率,UACI 為統(tǒng)一平均變化強(qiáng)度。測試圖像為標(biāo)準(zhǔn)加密圖像Lena,手段包括信息熵分析、抗差分攻擊分析、加密效率分析,對定點(diǎn)混沌加密系統(tǒng)與浮點(diǎn)加密系統(tǒng)進(jìn)行了詳細(xì)的對比分析。
表2 不同精度系統(tǒng)加密安全性分析
從表2 中看出,組合混沌定點(diǎn)32 位與24 位系統(tǒng)加密效果接近浮點(diǎn)系統(tǒng),可以有效加密明文圖像,同時(shí)系統(tǒng)加密效率高,對于數(shù)據(jù)量較大的圖像可以快速完成加密。組合混沌加密算法與其他混沌加密算法的對比結(jié)果表明,組合混沌加密算法具有良好的安全性,可以有效抵抗攻擊。
本文研究了數(shù)字混沌系統(tǒng)在加密算法中的應(yīng)用。采用基于Logistic 映射和Tent 映射的混合混沌偽隨機(jī)序列發(fā)生器可獲得性能良好的偽隨機(jī)序列,加密算法支持選擇不同的加密精度,包括浮點(diǎn)、32 位定點(diǎn)、24位定點(diǎn)和16 位定點(diǎn)。混合混沌系統(tǒng)得到的24 位和32位序列的性能接近于浮點(diǎn)序列。本文提出的算法提高了加密效率,能夠抵抗常見的攻擊手段。同時(shí),提出將譜熵作為定點(diǎn)混沌的動力學(xué)量化指標(biāo),可以直觀比較定點(diǎn)混沌序列與浮點(diǎn)序列的性能,作為定點(diǎn)系統(tǒng)混沌動力學(xué)退化的衡量指標(biāo)。