數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

針對(duì)數(shù)學(xué)公式和化學(xué)反應(yīng)方程式的特點(diǎn),我們提出了一種適用于數(shù)學(xué)公式與化學(xué)反應(yīng)方程式的加密方法。該方法首先利用TEX表示方法將數(shù)學(xué)語(yǔ)言轉(zhuǎn)化成理論計(jì)算機(jī)科學(xué)意義上的語(yǔ)言,以理論計(jì)算機(jī)科學(xué)意義上的語(yǔ)言為橋梁,建立了一種數(shù)學(xué)語(yǔ)言與自然數(shù)序列一一對(duì)應(yīng)的映射,然后設(shè)計(jì)了一個(gè)混沌序列生成器以生成不同的混沌序列,再用混沌序列來(lái)加密自然數(shù)序列,從而實(shí)現(xiàn)數(shù)學(xué)公式與化學(xué)反應(yīng)方程式的加密。

一、數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法相關(guān)知識(shí)

設(shè)有字母表A={s1,s2,…,SN),B={1,2,…,N),定義一個(gè)A*→B*的一一對(duì)應(yīng)映射:

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

式中:s=a1,a2,...,an,ai∈A,1≤i≤7;f的逆映射為f-l (i)=si。通過(guò)映射f,任何字符串信息s=a1,a2,...,an∈A*,可以轉(zhuǎn)換成B上的數(shù)組。

字母表A上的連接函數(shù)遞歸定義為:

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

而Z= Cn(m)(U1,U2,…,Um)。于是,對(duì)于給定的字符串U1,U2,…,Um∈A*,Z= Cn(m)(U1,U2,…,Um)就是把A上的字符一個(gè)接一個(gè)地連接起來(lái)所得到的新字符串。

二、數(shù)學(xué)公式的轉(zhuǎn)化

計(jì)算機(jī)科學(xué)意義上的語(yǔ)言加密問(wèn)題已經(jīng)得到解決,目前有各種各樣的對(duì)稱加密算法和公開(kāi)密鑰加密算法.如果能夠把數(shù)學(xué)的語(yǔ)言,特別是數(shù)學(xué)公式轉(zhuǎn)換成計(jì)算機(jī)科學(xué)意義上的語(yǔ)言,那么數(shù)學(xué)公式與化學(xué)反應(yīng)方程式的加密就可以得到解決.盡管數(shù)學(xué)公式十分復(fù)雜,有分式、上下標(biāo)、括號(hào)、分式套分式、上標(biāo)套上標(biāo)、括號(hào)套括號(hào),但還是可以通過(guò)適當(dāng)?shù)姆椒▉?lái)轉(zhuǎn)化它們。采用數(shù)學(xué)專用處理軟件TEX,可以消除數(shù)學(xué)公式中的一些特有的表示方法,并轉(zhuǎn)換成理論計(jì)算機(jī)科學(xué)意義上的語(yǔ)言,例如,對(duì)于公式

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

可以表示成:

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

根據(jù)TEX規(guī)則,所有的數(shù)學(xué)公式都可以轉(zhuǎn)化成這種表示,具體的轉(zhuǎn)化規(guī)則請(qǐng)參閱有關(guān)TEX的使用說(shuō)明書。

對(duì)于數(shù)學(xué)公式中的常用符號(hào)、函數(shù)等,按照便于記憶、便于使用的原則可建立字母表,見(jiàn)表1。

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法
表中的各種運(yùn)算符、字母以及函數(shù)都應(yīng)當(dāng)使用它們的TEX表示形式,為了直觀起見(jiàn),以字母的形式直接列入表中。對(duì)于沒(méi)有辦法直接表示的符號(hào),如表示分式、向量的\frac、\vec等少量符號(hào),用TEX的表示形式列入表中。稱這個(gè)字母表為M,那么所有的轉(zhuǎn)化成TEX方式表示的數(shù)學(xué)公式都可以看作是字母表M上的語(yǔ)言。定義一個(gè)集合B={1,2,…,264),然后利用前面定義的映射廠就可以將數(shù)學(xué)公式轉(zhuǎn)換成一個(gè)數(shù)值序列。

三、數(shù)學(xué)公式的加密

1、設(shè)計(jì)思想

因?yàn)樾蛄忻艽a長(zhǎng)度可以靈活變化,可以適用于靈活多變的信息環(huán)境,所以它是密碼學(xué)的一個(gè)重要分支,發(fā)展很快。大量的軍事密碼系統(tǒng)都是序列密碼系統(tǒng),因此序列密碼的設(shè)計(jì)基本上都是保密的,公開(kāi)的文獻(xiàn)不多?;煦缧蛄芯哂腥菀咨?、對(duì)初始條件敏感、難于預(yù)測(cè)的特點(diǎn),混沌序列與隨機(jī)序列均具有計(jì)算上的不可區(qū)分性,所以混沌序列加密方法是目前圖像文件加密中使用得最多的力密方法。本文設(shè)計(jì)了一種利用混沌序列函數(shù)生成混沌序列的算法,然后將混沌序列與前面轉(zhuǎn)化成的數(shù)值序列進(jìn)行異或運(yùn)算,從而實(shí)現(xiàn)對(duì)數(shù)學(xué)公式的加密。

假設(shè)有一個(gè)離散序列函數(shù):

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

該函數(shù)具有如下性質(zhì):

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

又假設(shè)有一個(gè)序列X由初值xo迭代生成,另有一個(gè)序列X'由初值x=xo +dxo迭代生成,那么Xn和Xn'的差:

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

式中:L稱作Lyapounov特征指數(shù):

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

如果|df/dx|>o,那么L>o。給x0一個(gè)微小的變化,經(jīng)過(guò)行次迭代,x0將指數(shù)分離。也就是說(shuō),迭代結(jié)果對(duì)于初始條件是極度敏感的,這樣的結(jié)果將導(dǎo)致混沌。經(jīng)過(guò)n次迭代,f(x0)已經(jīng)與初值xo沒(méi)有確定的關(guān)系,結(jié)果將是不確定的,即發(fā)生了混沌。如果選擇一個(gè)足夠大的愚k,令{Xk+l,Xk+2,…,Xk+n)={X1,X2,…,Xn)=X,序列X將是不可預(yù)測(cè)的。

雖然這樣的混沌序列無(wú)法從初值預(yù)測(cè)序列的Xi,但是知道了Xi,則可以預(yù)測(cè)Xi+1,對(duì)這樣的混沌序列作進(jìn)一步的數(shù)學(xué)處理,使得即使知道了Xi,也不能預(yù)測(cè)Xi+l,從而生成一個(gè)隨機(jī)的混沌序列.令Yi=(aXi)mod m,y用于加密數(shù)據(jù)文件,這樣即使攻擊者獲得了K,它仍然無(wú)法預(yù)測(cè)Yi+1,因?yàn)閅i+1=g(Xj+4)而與Y沒(méi)有函數(shù)關(guān)系,根據(jù)所斷言的不可預(yù)測(cè)性與隨機(jī)性的關(guān)系可知,序列y是隨機(jī)的,選擇:

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

因?yàn)槭?7)所表示的離散序列函數(shù)可以等價(jià)地記作:

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

由于:

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

滿足生成混沌的條件.選擇一個(gè)充分大的k,計(jì)算出序列(Xk+1,Xk+2,…,Xk+n),利用該序列,通過(guò)函數(shù)Xi=(axk+i)mod m生成序列X={X1,X2,…,Xn).將序列X與由數(shù)學(xué)公式轉(zhuǎn)化來(lái)的數(shù)值序列進(jìn)行異或運(yùn)算,就完成了數(shù)學(xué)公式的加密。這里有一個(gè)技巧就是如何選擇合適的序列種子c,使得攻擊者無(wú)法分析c。

2、數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法描述

(1) Alice將數(shù)學(xué)公式轉(zhuǎn)化成計(jì)算機(jī)科學(xué)意義上的語(yǔ)言,再利用式(1)定義的映射把語(yǔ)言中的字符串轉(zhuǎn)換成數(shù)值序列,并設(shè)這樣的序列為{f(m1),f(m2),…,f(m2n)}(如果直接轉(zhuǎn)換過(guò)來(lái)的序列不是偶數(shù),可以用零填補(bǔ)),利用函數(shù)Pi=CN(f(m2i-1,f(m2i))將序列轉(zhuǎn)換成長(zhǎng)度為行的序列。

(2)Alice選擇a、k、l、m和2個(gè)大素?cái)?shù)p、q,令xo =c=p/q,利用式(8)生成序列{Xk+1,Xk+2,…,Xk+n),再利用函數(shù)Xi=(axk+i)mod m(i=1,2,…,n)生成序列X= {X1,X2,…,Xn)。

(3)C(C1,C2,…,Cn)={P1+X1, P2+X2,…,Pn+Xn),并用Bob的公開(kāi)密鑰加密a、k、l、m和2個(gè)大素?cái)?shù)p、q,得到(Eb(a),Eb(l),Eb(k),Eb (m),Eb(p),
E6(q))。

(4)Alice將C和(E6(a),(Eb(a),Eb(l),Eb(k),Eb (m),Eb(p),E6(q))都通過(guò)公開(kāi)信道傳送給Bob。

(5) Bob收到這些密文層,首先解密出a、k、l、m、p和q,重構(gòu)序列X={X1,X2,…,Xn),然后解密消息的密文C={C1+X1,C2 +X2,…,Cn+Xn)。

(6)Bob利用P運(yùn)算M=CN (P1,P2,…,Pn),然后將M放在TEX的編譯器中進(jìn)行編譯,就可以恢復(fù)出最初的數(shù)學(xué)公式。

四、數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法分析

一個(gè)算法的安全性取決于密鑰的安全性,要想徹底了解本算法的安全性,首先需要了解偽隨機(jī)性與不可預(yù)測(cè)性的關(guān)系。

定義 對(duì)于序列X1,X2,…Xm,…|X|=max( |Xi |(1≤i≤m)),如果對(duì)于每一個(gè)概率多項(xiàng)式時(shí)間算法D,都有:

數(shù)學(xué)公式和化學(xué)反應(yīng)式的混沌序列加密算法

式中N表示字母表中符號(hào)的個(gè)數(shù),則稱序列X1,X2,…,Xm,…是不可預(yù)測(cè)的。本方案的序列X就滿足這樣的特性,序列中的前i項(xiàng)與第i+1項(xiàng)并沒(méi)有直接的聯(lián)系,所以知道前i項(xiàng)對(duì)于預(yù)測(cè)第i+1項(xiàng)并沒(méi)有幫助,因?yàn)榈趇+1項(xiàng)是由另一個(gè)序列的i+1項(xiàng)生成的.要能夠猜測(cè)出另一個(gè)序列,可以歸約到攻破公開(kāi)密鑰體系,在不能攻破公開(kāi)密鑰體系的條件下,本方案中所用的加密序列是無(wú)法預(yù)測(cè)的。因?yàn)樵撔蛄惺莻坞S機(jī)的,隨機(jī)序列與任何序列的異或仍然是隨機(jī)序列,所以密文序列與隨機(jī)序列是無(wú)法區(qū)分的,從而可以認(rèn)為該密文序列是安全的。

另一方面,對(duì)稱加密密鑰是一次性的,類似于一次一密通信。Shannon已經(jīng)證明一次一密是絕對(duì)安全的,這也說(shuō)明了本方案的安全性。本方案的安全性最終歸結(jié)為公開(kāi)密鑰體系的安全性。公鑰加密算法的安全性是基于攻擊復(fù)雜性的安全性,使用較長(zhǎng)的密鑰就可以獲得較高的安全性,而本方案中由于用公鑰加密的只是簡(jiǎn)單的密鑰種子,所以可以選用較長(zhǎng)的密鑰而不影響加密的速度,同時(shí)可以保證較高的安全性。所以,利用本文的混合密碼系統(tǒng)加密數(shù)學(xué)公式既保證了安全性,又保證有較高的運(yùn)算速度。只要建立適當(dāng)?shù)淖帜副?,這種方法可以很容易地推廣,以用于化學(xué)反應(yīng)方程式的加密。

小知識(shí)之TeX

TeX是由著名的計(jì)算機(jī)科學(xué)家Donald E. Knuth(高德納)發(fā)明的排版系統(tǒng),利用Tex很一很容易的生成高質(zhì)量的dvi文件,打印輸出。利用dvips,dvipdfmx,pdflatex等程序生成pdf,ps,文件,latexhtml生成html文件。 它在學(xué)術(shù)界十分流行,特別是數(shù)學(xué)、物理學(xué)和計(jì)算機(jī)科學(xué)界。TeX被普遍認(rèn)為是一個(gè)很好的_排版工具,特別是在處理復(fù)雜的數(shù)學(xué)公式時(shí)。利用諸如是LaTeX等終端軟件,TeX就能夠排版 出精美的文本。通過(guò)ctan上的宏包可以擴(kuò)展其功能,可以作幻燈片,定義模板。中文支持可以由CCT,CJK來(lái)完成。