基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

為了應(yīng)對(duì)有限精度產(chǎn)生的混沌動(dòng)力學(xué)特性退化問(wèn)題,近年來(lái)有許多的改進(jìn)方案,為此,我們提出一種基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法。該加密算法能夠在保證加密速度的前提下,使得混沌序列隨機(jī)性、加密系統(tǒng)安全性等方面都優(yōu)于基于三維混沌密碼系統(tǒng)和基于聯(lián)合混沌加密系統(tǒng)。

一、基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法設(shè)計(jì)

1、對(duì)Lorenz系統(tǒng)參數(shù)的擾動(dòng)

Lorenz系統(tǒng)是一經(jīng)典的三維混沌系統(tǒng),其動(dòng)力學(xué)方程為:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

其中a、b、c是系統(tǒng)參數(shù),該系統(tǒng)當(dāng)a=1O、b>24.74、c=8/3時(shí),系統(tǒng)進(jìn)入混沌狀態(tài)。然而在精度有限的計(jì)算機(jī)上模擬計(jì)算的過(guò)程中,當(dāng)?shù)螖?shù)較大時(shí),z維上的數(shù)據(jù)會(huì)出現(xiàn)短周期的
現(xiàn)象,如圖1所示。

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

往介紹擾動(dòng)過(guò)程之前先引入Legendre多項(xiàng)式:

Legendre方程:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

式(2),當(dāng)|x|<1時(shí),可得到有界解,并且當(dāng)n為非負(fù)整數(shù),即n=0,1 ,2,3...時(shí),在x=±1點(diǎn)亦有有界解。這種情況下,隨n值變化方程的解相應(yīng)變化(如圖2)。

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

構(gòu)成一組由正交多項(xiàng)式組成的多項(xiàng)式序列,即:Legendre多項(xiàng)式:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

其遞增表達(dá)式由(3)式給出:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

Legendre多項(xiàng)式產(chǎn)生具有自相關(guān)性和較高的線性復(fù)雜度性的,均值偽隨機(jī)序列,利用它來(lái)對(duì)混沌系統(tǒng)參數(shù)進(jìn)行擾動(dòng)。提高了混沌序列的隨機(jī)性、復(fù)雜性。彌補(bǔ)了計(jì)算機(jī)等數(shù)字系統(tǒng)有限精度所帶來(lái)的不足,從而增強(qiáng)加密系統(tǒng)的安全性。

選取b作為擾動(dòng)的系統(tǒng)參數(shù),具體擾動(dòng)過(guò)程如下:

1)選定初始值x0∈(-1,1),利用式(3)。通過(guò)迭代,得到一個(gè)序列:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

2)將序列bm應(yīng)用到Lorenz系統(tǒng)的每一次迭代中,Lorenz系統(tǒng)在每一次迭代前,首先通過(guò)下面公式:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

得到每一次迭代需要的b,從而擾動(dòng)了Lorenz系統(tǒng)中的系統(tǒng)參數(shù)b。

2、算法描述

本法選用的混沌系統(tǒng)為L(zhǎng)orenz系統(tǒng),首先利用Legendre多項(xiàng)式的遞推式(3)產(chǎn)生序列bm,將這個(gè)序列值分別作為L(zhǎng)oren系統(tǒng)(l)選代過(guò)程中系統(tǒng)參數(shù)b的改變值,Loren系統(tǒng)經(jīng)過(guò)特定次數(shù)的迭代以后得到最后所需的混沌序列。這個(gè)特定次數(shù)(除第一次外)是由上一次加密的密文和當(dāng)前的明文共同決定的,然后用混沌序列對(duì)原文信息進(jìn)行加密操作。從而隱藏原文。

3、加密過(guò)程

本文以一副圖像為例介紹具體加密過(guò)程。

似沒(méi).我們要加密一個(gè)圖像文件P(N×M)。首先,將圖像P(N×M)從定到右、由上而下進(jìn)行掃描,將掃描到的數(shù)據(jù)放到P[N]中,具體加密方法如下:

1)將x0∈(-1,1)作為初始值代入(3)進(jìn)行遞推。遞推50次得到序列:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

2)對(duì)第m,(m+1)和(m+2)個(gè)像素加密時(shí),將x,y,z,a=10,b=bm.c=8/3作為式(1)的初始值進(jìn)行迭代,略去前500次迭代。以501次為起點(diǎn)繼續(xù)迭代特定次數(shù)得到(特定次數(shù)是由待加密像前兩個(gè)已加密的像索值決定)偽隨機(jī)序列:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

迭代過(guò)程中,每迭代一次,將b值按(4)進(jìn)行變化,不斷的對(duì)系統(tǒng)進(jìn)行擾動(dòng)。

迭代完成后,分別將第m,(m+1)和(m+2)個(gè)像素值p(m),p(m+1和P(m+2)與某一個(gè)rij進(jìn)行異或操作得到密文c(m)和c(m+2)即:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

其中,rij中i ,j的值由式(5)求的:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

3)對(duì)圖像文件前三個(gè)像素值文件加密時(shí),首先用x,y,x,a=10,b=b1.c=8/3作為初值進(jìn)行達(dá)代50次,由步驟2得到密文c(1).c(2)和c(3)。然后按步驟2依次對(duì)圖像中的每個(gè)像素進(jìn)行操作,最后將整個(gè)文件操作完畢,最后可以得到加密后的密文圖像c。

4、解密過(guò)程

解密過(guò)程與加密過(guò)程相反,即:步驟2中提到的迭代的次數(shù)由前3個(gè)像素值決定。式(6)改為:

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

二、實(shí)驗(yàn)結(jié)果

利用上述算法,Legendre多項(xiàng)式的初始值為x0=0.421518,Lorenz系統(tǒng)的初始值為x=1.184 07,y==1.362 86,z=1.25215和c=2.666 74。對(duì)256x256的lean圖(圖3(a))進(jìn)行加密,圖3(c)為加密后的結(jié)果。圖3(b)和(d)分別是待加密圖像和已加密圖像的直方圖。

基于被擾動(dòng)的Lorenz系統(tǒng)的混沌加密算法

小知識(shí)之?dāng)_動(dòng)

一般是指系統(tǒng)在正常范圍內(nèi)的波動(dòng)。它往往有一定的規(guī)律可循,并具有可預(yù)知性,為一般意義上的環(huán)境波動(dòng)行為。