魏 旭,陸國(guó)平,陳秋瓊
(南通大學(xué)a.電子信息學(xué)院;b.電氣工程學(xué)院,江蘇 南通 226019)
責(zé)任編輯:魏雨博
混沌映射用于加密首先是由英國(guó)的數(shù)學(xué)家Matthews提出的[1]?;煦缬成渚哂蟹侵芷谛浴^(qū)域遍歷性、初值敏感性等特有的性質(zhì),所以混沌映射具有天然的密碼學(xué)特性。在加密的過程中,將混沌映射產(chǎn)生的序列轉(zhuǎn)換成二值序列,再與待加密的明文進(jìn)行加密運(yùn)算便得到加密后的密文信息,二值序列的轉(zhuǎn)換方法是對(duì)混沌序列值所在的區(qū)間進(jìn)行區(qū)分的,根據(jù)相應(yīng)的條件將混沌序列離散化為0或1。目前,很多混沌加密算法都是應(yīng)用這樣的方法對(duì)混沌序列進(jìn)行二值序列離散化的[2]。混沌密碼是一種新型的密碼體制,在理論上講,混沌密碼的安全強(qiáng)度與計(jì)算的能力是無(wú)關(guān)的,這就較如今的DES,RSA等密碼體制有著天生的優(yōu)越性,具有更為廣泛的應(yīng)用前景和更高的研究?jī)r(jià)值[3]。
把混沌映射用于數(shù)碼防偽技術(shù)是近年來(lái)一個(gè)新的研究方向,利用混沌映射所特有的一些性質(zhì)來(lái)對(duì)商品的生產(chǎn)號(hào)進(jìn)行加密,從而很好地保證了商品在流通過程中不被偽造,保護(hù)了消費(fèi)者權(quán)益,使得生產(chǎn)者的利益不被侵犯,維護(hù)了商品的市場(chǎng)秩序。
混沌是一種非線性過程,其結(jié)構(gòu)比較復(fù)雜,對(duì)其產(chǎn)生的序列值很難進(jìn)行分析和預(yù)測(cè)。混沌的軌跡和其控制參數(shù)、初始狀態(tài)都有很大的關(guān)聯(lián),當(dāng)初始狀態(tài)有微小的變化時(shí),其不同初值的兩個(gè)混沌系統(tǒng)在較短的時(shí)間內(nèi)就可以產(chǎn)生兩列不同的、互不相關(guān)的序列值。目前,很多混沌系統(tǒng)都被大家所熟知,例如:一維的有Logistic映射等,二維的有Henon映射等,三維的有Lorenz映射等。本文中用到兩個(gè)一維的混沌映射,分別為Chebyshev映射和正弦迭代混沌映射。
1)Chebyshev映射
Chebyshev映射是一種簡(jiǎn)單卻十分有效的一維混沌映射,其表達(dá)式為
當(dāng)參數(shù)q≥2時(shí),該映射產(chǎn)生的序列{x(n)}在[-1,1]上遍歷,且具有正的Lyapunov指數(shù)[4]。隨著混沌映射迭代次數(shù)的增加,其產(chǎn)生的迭代序列值遍歷于整個(gè)值域,且呈現(xiàn)無(wú)規(guī)律和無(wú)周期性。這些特性使得Chebyshev映射生成的混沌序列適用于對(duì)密鑰的控制。
2)正弦迭代映射
文獻(xiàn)[5]介紹了一種正弦迭代映射是一種復(fù)雜的一維混沌映射,其表達(dá)式為
通過計(jì)算可知式(2)的Lyapunov指數(shù)是ln z,且當(dāng)Lyapunov指數(shù)大于0的情況下,映射處于混沌狀態(tài)[6],所以ln z>1,得出參數(shù)z>1時(shí)正弦迭代映射處于混沌狀態(tài)。當(dāng)初值0<y(0)<1,則混沌系統(tǒng)y(n)在[-1,1]之間遍歷取值。
在加密端和解密端是兩個(gè)完全相同的混沌系統(tǒng)組合,且又是相互獨(dú)立、無(wú)關(guān)聯(lián)、不存在耦合關(guān)系的。明文在通過加密端加密后得到的密文直接送往解密端,在解密的過程中可以根據(jù)要求對(duì)其進(jìn)行解密,例如,解密端可以先接收全部的密文,然后再對(duì)其密文進(jìn)行解密,也可以利用同步技術(shù)進(jìn)行同步解密。在混沌序列密碼的加密過程中,由于混沌系統(tǒng)的靈活多變,且具有對(duì)參數(shù)和初值的敏感性,可以根據(jù)要求對(duì)密碼系統(tǒng)進(jìn)行全新的改造,所以混沌序列密碼系統(tǒng)較常規(guī)的密碼系統(tǒng)具有更加靈活的多變方式。
混沌加密的安全性主要是來(lái)自混沌系統(tǒng)的多變性、敏感性,這樣產(chǎn)生的密鑰空間比較大,且靈活多變?;煦缦到y(tǒng)在計(jì)算機(jī)上實(shí)現(xiàn)時(shí),由于所采用的計(jì)算機(jī)精度會(huì)影響到實(shí)驗(yàn)的結(jié)果,為此,在本文中為了保持序列最大可能的隨機(jī)性,采用以下方法:
1)為了增加破譯的難度,可以適當(dāng)增加密鑰的空間。在本文中,對(duì)Chebyshev映射進(jìn)行迭代n次,為了既能增加密鑰的空間而又不影響加密的速度,在本文中可以把n取為10000次。
2)將迭代得到的混沌序列按照一定的規(guī)律進(jìn)行篩選,篩選出加密所要求的密鑰數(shù)量。
3)對(duì)篩選出的序列值進(jìn)行分析,可取序列小數(shù)點(diǎn)后某位的數(shù)值,然后對(duì)其數(shù)值與定值進(jìn)行比較,得到二進(jìn)制碼,則完成序列的二值化。
在混沌加密系統(tǒng)中,由于混沌系統(tǒng)對(duì)初值和參數(shù)具有高度的敏感性,因此混沌系統(tǒng)的參數(shù)和初值可以作為加密系統(tǒng)的密鑰。在本文中,由于要對(duì)所產(chǎn)生的混沌序列進(jìn)行篩選,那么篩選的條件也可以作為加密系統(tǒng)的密鑰。
在加密的過程中必須要對(duì)商品賦予其生產(chǎn)號(hào),生產(chǎn)號(hào)可以根據(jù)不同廠家的生成方式而定。在本文中,取商品的生產(chǎn)號(hào)為12位。首先,要按照一定的規(guī)則對(duì)商品的每個(gè)生產(chǎn)號(hào)進(jìn)行整合,得到8位的商品身份號(hào),按照一定的方法將生產(chǎn)號(hào)的前6位整合成一個(gè)2位數(shù),再加上后面的6位數(shù),構(gòu)成一個(gè)8位的商品身份號(hào)。
將整合得到的身份號(hào)進(jìn)行置亂,選取正弦混沌映射如式(2),取其參數(shù)z=3,初值y(0)=0.5211,進(jìn)行迭代10000次,按照式(3)的規(guī)律對(duì)其得到的序列值進(jìn)行取值,式(3)中的初值a(0)和參數(shù)d可以在適當(dāng)?shù)臈l件下隨機(jī)取值。
通過式(3)可對(duì)正弦混沌映射產(chǎn)生的序列值進(jìn)行取值,得到隨機(jī)碼,將隨機(jī)碼按照一定的順序進(jìn)行排序,利用排序前和排序后的對(duì)應(yīng)關(guān)系對(duì)身份號(hào)進(jìn)行置亂,得到置亂碼。
選取Chebyshev映射式如式(1),取其參數(shù)q=4,初值為x(0)=0.6,進(jìn)行迭代10000次,按照式(3)的規(guī)律對(duì)其得到的序列值進(jìn)行取值,在本文中需要取出32個(gè)數(shù)為{x1,x2,…,x32},再取 xi中每個(gè)數(shù)的小數(shù)點(diǎn)后的第6位,組成新的數(shù)組 {x′1,x′2,…,x′32} 。
文獻(xiàn)[7]中介紹了一種二進(jìn)制碼的產(chǎn)生方式。
式中:u為序列{x1,x2,…,xn} 的均值,即u=,在本文中結(jié)合文獻(xiàn)[7]的方法,在此基礎(chǔ)上進(jìn)行改進(jìn),可以取u為一個(gè)值,并將u作為一個(gè)密鑰。
將數(shù)組 { x′1,x′2,…,x′32} 按照式(5)進(jìn)行變換得到二進(jìn)制數(shù)組 { x″1,x″2,…,x″32} 。
將商品身份號(hào)的每一位都轉(zhuǎn)化為4位二進(jìn)制數(shù),可得到32 位的二進(jìn)制的身份號(hào),用數(shù)組 {x″1,x″2,…,x″32} 與32位二進(jìn)制的身份號(hào)進(jìn)行按位異或,得到32位的二進(jìn)制的防偽碼,然后依次將其每4位的二進(jìn)制數(shù)變?yōu)?位的十六進(jìn)制數(shù),這樣便可得到8位的十六進(jìn)制的防偽碼,則加密完成。
解密過程是加密過程的逆過程。其加密和解密的流程圖如圖1。
選取正弦迭代映射的參數(shù)為z=3,初值y(0)=0.5211,式(3)中取 a(0)=4,d=3;Chebyshev映射的參數(shù)為q=4,初值x(0)=0.6,則在計(jì)算機(jī)中仿真如表1。
圖1 加密與解密流程圖
表1 初值為y(0)=0.5211,x(0)=0.6的加密結(jié)果
為了更好地證明加密系統(tǒng)所具有的靈活性,將正弦迭代混沌系統(tǒng)和Chebyshev混沌系統(tǒng)的初值進(jìn)行細(xì)微的變化,各增大0.0001,則可得到如表2所示的仿真結(jié)果。
表2 初值為y(0)=0.5212,x(0)=0.6001的加密結(jié)果
通過分析比較表1和表2可以發(fā)現(xiàn),在初值變化萬(wàn)分之一的情況下,就可以對(duì)所產(chǎn)生的防偽碼帶來(lái)非常大的變化,這符合密碼學(xué)上對(duì)密鑰的敏感性要求。
混沌之所以具有密碼學(xué)特性,是因?yàn)榛煦缇哂凶陨淼囊恍┨赜械男再|(zhì),如初值敏感性、隨機(jī)性等性質(zhì)。文中對(duì)正弦迭代映射和Chebyshev映射都進(jìn)行了相應(yīng)的賦予初值,當(dāng)初值發(fā)生微小的變化時(shí),可以得到完全不同的迭代結(jié)果,圖2、圖3分別是對(duì)正弦迭代映射和Chebyshev映射的初值增加0.0001后所得到的圖像。圖2和圖3中,實(shí)線表示為文中初值所迭代產(chǎn)生的序列值,虛線表示初值增大0.0001后所迭代產(chǎn)生新的序列值。通過觀察圖2和圖3可以發(fā)現(xiàn),在參數(shù)不變的情況下,當(dāng)混沌映射的初值發(fā)生微小變化時(shí),混沌映射會(huì)迭代產(chǎn)生兩組不同的序列值,滿足混沌的敏感性特性,具備密碼學(xué)中對(duì)密鑰的要求。
文獻(xiàn)[8]Golomb提出偽隨機(jī)序列應(yīng)該滿足三個(gè)隨機(jī)性共設(shè),但是,嚴(yán)格滿足這3個(gè)隨機(jī)性公設(shè)的偽隨機(jī)序列是很少的,因此對(duì)密鑰序列通常只要求它們近似或部分滿足這3個(gè)隨機(jī)性公設(shè)就認(rèn)為序列是隨機(jī)的。為了保證生成的序列具有盡可能優(yōu)的隨機(jī)性能,可以對(duì)Chebyshev混沌序列生成的二值序列做一下檢測(cè):
1)頻數(shù)檢驗(yàn):對(duì)混沌序列得到的二值序列進(jìn)行計(jì)算
式中:n是生成二值序列的總數(shù);n0是二值序列中0的個(gè)數(shù);n1是二值序列中1的個(gè)數(shù),且與1自由度的χ2分布比較(隨機(jī)性假設(shè)檢驗(yàn)),對(duì)應(yīng)5%的顯著水平,得到的值為3.84,所以只要二值序列的的值不大于3.84,就認(rèn)為二值序列具有較好的隨機(jī)性。
2)序列檢驗(yàn):對(duì)混沌序列得到的二值序列進(jìn)行分析,對(duì)二值序列中00、01、10、11出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計(jì),同時(shí)計(jì)算它們各自的χ2,其計(jì)算公式為
式(7)中 ni,j表示二值序列中 i,j的個(gè)數(shù),i,j∈ {0,1} ,且與2自由度的χ2分布相比較(隨機(jī)性假設(shè)檢驗(yàn)),對(duì)應(yīng)5%的顯著水平,得出χ22的值為5.99,所以得出,只要得到的χ22值不大于5.99,就認(rèn)為序列具有較好的隨機(jī)性,測(cè)試結(jié)果見表3。
表3 隨機(jī)性分析
通過表3的測(cè)試結(jié)果可以看出,Chebyshev混沌映射具有良好的隨機(jī)性,符合序列的偽隨機(jī)性,可以用來(lái)做加密的密鑰。
本文將混沌映射的產(chǎn)生的二值序列用于數(shù)碼防偽技術(shù)中,以一種新的思路和方法來(lái)生成商品的防偽碼。利用混沌序列具有的偽隨機(jī)性、初值敏感性等獨(dú)有的一些性質(zhì),滿足數(shù)碼防偽過程中對(duì)密鑰敏感性的要求。把混沌序列應(yīng)用到數(shù)碼防偽技術(shù)中,實(shí)現(xiàn)了一個(gè)快速可靠、安全方便的數(shù)碼防偽系統(tǒng)。在今后的研究中,可通過更多測(cè)試不同混沌系統(tǒng)的隨機(jī)性、安全性等性能,致力于研究和開發(fā)更加安全實(shí)用的數(shù)碼防偽系統(tǒng)。
[1]MATTHEWS R.On the derivation ofa chaotic encryption algorithm[J].Cryptologia,1989(1):29.
[2]PAREEK N K,PATIDAR V,SUD K K.Discrete chaotic cryptography using external key[J].Physics Letters A,2003,309(3):75-82.
[3]KOCAREV L.Chaos-based cryptography:a brief overview[J].IEEE Circuit and Systems Magazine,2001,1(3):6-21.
[4]石紅芹,呂方亮,劉遵雄.基于混沌加密的彩色圖像盲數(shù)字水印算法[J].計(jì)算機(jī)工程,2011,37(20):105-107.
[5]陸秋琴,馬亮.基于Logistic映射和正弦混沌映射的交替混沌加密算法[J].科技信息:學(xué)術(shù)版,2008(12):106-108.
[6]廖曉峰,肖迪,陳勇,等.混沌密碼學(xué)原理及其應(yīng)用[M].北京:科學(xué)出版社,2009.
[7]張雪峰,范九倫.改進(jìn)的混沌序列產(chǎn)生方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(3):600-601.
[8]吳偉陵.信息處理與編碼[M].北京:人民郵電出版社,1997.