專利名稱:計(jì)算機(jī)加密裝置及其加密方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及計(jì)算機(jī)領(lǐng)域和數(shù)據(jù)通訊領(lǐng)域的加密裝置及其加密方法,特別涉及對(duì)私有的和非公開的數(shù)據(jù)在傳輸之前進(jìn)行加密處理以及接收之后進(jìn)行解密處理的數(shù)據(jù)加密裝置及其加密方法。
背景技術(shù):
隨著因特網(wǎng)的飛速發(fā)展,計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)已成為人類生活必不可少的一部分。然而,人們?cè)谙硎苡?jì)算機(jī)和網(wǎng)絡(luò)帶來的方便的同時(shí),個(gè)人的隱私也不斷的遭到侵害。因此,近年來,計(jì)算機(jī)和網(wǎng)絡(luò)安全也越來越成為信息技術(shù)的焦點(diǎn)問題之一。計(jì)算機(jī)和網(wǎng)絡(luò)的防火墻等網(wǎng)絡(luò)安全技術(shù)應(yīng)運(yùn)而生。然而,這些被動(dòng)防御方案,只能在計(jì)算機(jī)和局域網(wǎng)內(nèi)部起作用,而對(duì)于因特網(wǎng)上的傳輸?shù)臄?shù)據(jù)就無(wú)能為力了。只有采取主動(dòng)防御,即對(duì)傳輸數(shù)據(jù)進(jìn)行加密,即使信息在傳輸過程中被截獲也無(wú)法解讀,這樣才能真正達(dá)到保密的目的。
現(xiàn)代密碼學(xué)是在最近的幾十年才發(fā)展起來的。按密鑰的特點(diǎn),加密方法分為對(duì)稱密碼體制和非對(duì)稱密碼體制。所謂對(duì)稱密碼體制,又稱私鑰密碼體制,其加密密鑰和解密密鑰相同或彼此相互容易確定;所謂非對(duì)稱密碼體制,又稱公鑰密碼體制,其加密密鑰和解密密鑰不同,很難從其中一個(gè)推出另外一個(gè)。按加密方式來分,對(duì)稱密碼方法分為流密碼和分組密碼。通常,速度較快的私鑰密碼安全性較差;反之,安全性很好的公鑰密碼速度卻很慢。
實(shí)際應(yīng)用中,公鑰密碼不僅具有很高的安全性,而且密鑰的管理方面也有其方便之處。但是,由于它需要對(duì)相當(dāng)長(zhǎng)的密鑰進(jìn)行極其復(fù)雜的數(shù)學(xué)計(jì)算,速度非常緩慢,因此無(wú)法應(yīng)用于很多對(duì)速度要求很高的系統(tǒng)中,如網(wǎng)絡(luò)傳輸、多媒體數(shù)據(jù)交換等。故這些領(lǐng)域只能使用流密碼。
因此,提高流密碼的安全性就變得十分重要了。然而當(dāng)前的流密碼的要害問題在于其密鑰流生成器未能突破有限循環(huán)。由于一字一密的方法被認(rèn)為是安全的加密方法,因此問題就歸結(jié)于如何找到一個(gè)方法上實(shí)現(xiàn)無(wú)限循環(huán)的密鑰流生成器。
這樣,本技術(shù)領(lǐng)域需要一種方法上實(shí)現(xiàn)密鑰的無(wú)限循環(huán)的高速的流密碼方法。
近年來迅速發(fā)展起來的混沌學(xué)理論的研究為實(shí)現(xiàn)無(wú)限循環(huán)的密鑰流提供了有力的理論基礎(chǔ)。該方法滿足了該領(lǐng)域在上述應(yīng)用中對(duì)加密方法的安全性和效率的需求。該密碼方法巧妙的運(yùn)用了混沌原理,并結(jié)合隨機(jī)數(shù)攪拌及散列函數(shù)對(duì)數(shù)據(jù)進(jìn)行高速又安全的加密/解密。此外,在加密/解密過程中得到的認(rèn)證值可以對(duì)加密的數(shù)據(jù)作進(jìn)一步認(rèn)證。
在該密碼方法中,對(duì)明文中任意一個(gè)字節(jié)的加密/解密過程具體過程如下。加密過程中,首先選取某個(gè)混沌函數(shù)f(),以密鑰k為根,計(jì)算x0=fN(k),其中地fn+1(k)=f(fn(k))(這樣做的原因是,混沌函數(shù)必須在N輪迭代后才能產(chǎn)生混沌效果),然后再以x0為基礎(chǔ),利用混沌函數(shù)f()和明文m,做m次迭代,得到密文c=xm=fm(x0);解密過程中,利用同樣的混沌函數(shù)f(),以相同的密鑰k為根,計(jì)算x0=fN(k),然后再以x0為基礎(chǔ),利用混沌函數(shù)f()依次計(jì)算x0,x1,x2,……,其中xn+1=f(xn),直到找到某個(gè)i,使得xi=c(c為密文值),則明文m=i。這樣,利用混沌原理的特性,即對(duì)初始條件的敏感依賴性、不可預(yù)測(cè)性及不可逆性,使得在不知道密鑰的情況下,破譯者無(wú)法直接通過密文值解得明文值。
然而,部分混沌函數(shù)在某些特殊的條件下,可能會(huì)出現(xiàn)不同的明文對(duì)應(yīng)相同的密文的情況。即有可能存在m<n使得f(xm)=f(xn)。這樣一來,在解密的過程中可能會(huì)出錯(cuò)。例如,將n加密后得到c=f(xn)(=f(xm)),解密時(shí),當(dāng)計(jì)算到m時(shí),發(fā)現(xiàn)c=f(xm),此時(shí)就會(huì)認(rèn)為明文為m,造成出錯(cuò)。
在該方法中,一次加密計(jì)算只與一個(gè)明文值、一個(gè)密鑰值相關(guān),即對(duì)于同一個(gè)密鑰k和同一個(gè)明文m,一定會(huì)得出唯一的密文c。這樣的作法與簡(jiǎn)單的古典密碼系統(tǒng)非常相近。這樣的密碼系統(tǒng)很容易通過統(tǒng)計(jì)的方法破解出密鑰值,仍然存在不安全隱患。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種基于混鈍原理計(jì)算機(jī)加密裝置和加密方法,實(shí)現(xiàn)密鑰的無(wú)限循環(huán)的高速的流密碼的加密裝置和加密方法。
本發(fā)明的計(jì)算機(jī)加密裝置及其加密方法的再一個(gè)目的在于利用散列函數(shù)的方法,將f改進(jìn)成一一對(duì)應(yīng)的函數(shù),保證了不同的明文一定對(duì)應(yīng)不同的密文值。
本發(fā)明的計(jì)算機(jī)加密裝置及其加密方法的再一個(gè)目的在于還加入了獨(dú)特的隨機(jī)數(shù)生成器,每次加密前生成不同的隨機(jī)序列,通過本發(fā)明中獨(dú)特的隨機(jī)數(shù)攪拌方法,在明文前加上該隨機(jī)序列,和明文一起加密。
本發(fā)明的計(jì)算機(jī)加密裝置及其加密方法的再一個(gè)目的在于還引進(jìn)獨(dú)特的密鑰更新器,在加密/解密過程中不斷更新密鑰流,從而實(shí)現(xiàn)了無(wú)限循環(huán)的密鑰流。
本發(fā)明的計(jì)算機(jī)加密裝置及其加密方法的再一個(gè)目的在于還建立了本身的認(rèn)證方法,利用每一步加密/解密過程中產(chǎn)生的中間值,逐步得到認(rèn)證值,通過該值可以達(dá)到辨別加密數(shù)據(jù)的合法性的目的。
根據(jù)本發(fā)明的第一方面,本發(fā)明的計(jì)算機(jī)加密裝置是由基于混沌原理的計(jì)算機(jī)動(dòng)態(tài)加密器和解密器組成,用于對(duì)原數(shù)據(jù)進(jìn)行加密和將密碼文進(jìn)行解密,所述的加密器包括加密預(yù)處理裝置,初始密鑰轉(zhuǎn)化裝置,隨機(jī)序列生成器,隨機(jī)序列加密(隨機(jī)序列攪拌)器,明文的加密器和產(chǎn)生認(rèn)證值的裝置。
所述的解密器包括解密預(yù)處理裝置,初始密鑰轉(zhuǎn)化裝置,隨機(jī)序列解密(隨機(jī)序列提純)器,密文解密器裝置和校驗(yàn)認(rèn)證值的裝置。
根據(jù)本發(fā)明的第二方面,本發(fā)明的計(jì)算機(jī)加密裝置的加密器的所述的加密預(yù)處理裝置,由確定加密器版本信息的裝置,取得密文頭信息的裝置和加密密文頭信息的裝置組成,所述的版本信息包括版本號(hào),所述的密文頭信息包括密文隨機(jī)部的長(zhǎng)度和報(bào)尾認(rèn)證值的長(zhǎng)度。
所述的加密器的初始密鑰轉(zhuǎn)化裝置,由取得對(duì)密鑰的各項(xiàng)值作的算術(shù)運(yùn)算的轉(zhuǎn)換用的種子的裝置和包括混沌函數(shù)的加密器的初始密鑰流的生成器組成。
所述的加密器的隨機(jī)序列生成器;由從系統(tǒng)獲得隨機(jī)序列生成器的種子的裝置,從系統(tǒng)獲取系統(tǒng)隨機(jī)序列的裝置,混沌隨機(jī)數(shù)生成器和種子的更新器組成。
所述的加密器的隨機(jī)序列加密(隨機(jī)序列攪拌)器,包括對(duì)隨機(jī)序列進(jìn)行Chaos加密生成Chaos值的裝置。
所述的加密器的明文的加密器,由對(duì)明文進(jìn)行Chaos加密生成Chaos值的裝置,將Chaos值轉(zhuǎn)換為密文值的密文轉(zhuǎn)換器,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新器和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新器組成。
所述的加密器的產(chǎn)生認(rèn)證值的裝置,包括利用Chaos值更新作為密文報(bào)尾的認(rèn)證部的認(rèn)證值的裝置。
本發(fā)明的計(jì)算機(jī)加密裝置的解密器的所述的解密預(yù)處理裝置,由從密文報(bào)頭取得的加密方法版本信息的裝置,解密密文頭信息的裝置和取得該密文頭信息的裝置組成,該版本信息包括密文報(bào)頭的密文頭信息,該密文頭信息包括密文隨機(jī)部的長(zhǎng)度和報(bào)尾認(rèn)證值的長(zhǎng)度。
所述的解密器的初始密鑰轉(zhuǎn)化裝置,由取得轉(zhuǎn)換對(duì)密鑰的各項(xiàng)值作的算術(shù)運(yùn)算的種子的裝置和初始密鑰流的生成器組成。
所述的解密器的隨機(jī)序列解密(隨機(jī)序列提純)器,由對(duì)密文隨機(jī)部進(jìn)行Chaos解密生成Chaos值的裝置,該裝置包括使用散列函數(shù)的調(diào)整方法的混沌函數(shù)的解密器,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新器和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新器組成。
所述的解密器的密文解密裝置,由對(duì)密文進(jìn)行Chaos解密生成Chaos值和明文的裝置,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新器和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新器組成。
所述的解密器的校驗(yàn)認(rèn)證值的裝置,由從密文報(bào)文中取得認(rèn)證值的裝置,利用Chaos值更新認(rèn)證值的裝置和通過認(rèn)證值驗(yàn)證數(shù)據(jù)合法性的裝置組成,其中認(rèn)證值的為密文報(bào)尾的認(rèn)證部。
根據(jù)本發(fā)明的第三方面,本發(fā)明的計(jì)算機(jī)加密裝置的所述的加密預(yù)處理裝置中的加密密文頭信息的裝置包括混沌函數(shù)的加密器和散列函數(shù)的調(diào)整裝置;所述的隨機(jī)序列生成器包括操作系統(tǒng)固有的隨機(jī)序列生成器,所述的混沌隨機(jī)數(shù)生成器包括混沌函數(shù)的加密器和散列函數(shù)調(diào)整裝置,所述的種子的更新器包括對(duì)數(shù)據(jù)的取逆裝置;所述的隨機(jī)序列加密(隨機(jī)序列攪拌)器的Chaos加密器裝置包括混沌函數(shù)的加密器和散列函數(shù)的調(diào)整裝置,所述的密文轉(zhuǎn)換器包括對(duì)各個(gè)字節(jié)的異或計(jì)算裝置,所述的密鑰流更新器包括字節(jié)反序計(jì)算裝置和異或計(jì)算裝置所述的認(rèn)證值更新器包括混沌函數(shù)裝置和加法計(jì)算裝置;所述的明文的加密器的Chaos加密器裝置包括混沌函數(shù)的加密器和散列函數(shù)的調(diào)整裝置,所述的密文轉(zhuǎn)換器包括對(duì)各個(gè)字節(jié)的異或計(jì)算裝置,所述的密鑰流更新器包括字節(jié)反序計(jì)算裝置和異或計(jì)算裝置,所述的認(rèn)證值更新器包括混沌函數(shù)裝置和加法計(jì)算裝置;所述的產(chǎn)生認(rèn)證值的裝置的所述的更新認(rèn)證值的裝置包括混沌函數(shù)裝置和加法計(jì)算裝置。
根據(jù)本發(fā)明的第四方面,本發(fā)明的計(jì)算機(jī)加密裝置的所述解密器中,所述的解密預(yù)處理裝置的解密密文頭信息的裝置包括混沌函數(shù)的加密器和散列函數(shù)的調(diào)整裝置;所述的初始密鑰轉(zhuǎn)化裝置的初始密鑰流的生成器包括混沌函數(shù)的加密器;所述的隨機(jī)序列解密(隨機(jī)序列提純)器的密鑰流更新器包括字節(jié)反序計(jì)算裝置和異或計(jì)算裝置,所述的認(rèn)證值更新器包括混沌函數(shù)裝置和加法計(jì)算裝置。所述的密文解密裝置的Chaos解密器包括混沌函數(shù)的解密器和散列函數(shù)的調(diào)整裝置;所述的密鑰流更新器包括字節(jié)反序計(jì)算裝置和異或計(jì)算裝置;所述的認(rèn)證值更新器包括混沌函數(shù)裝置和加法計(jì)算裝置;所述的校驗(yàn)認(rèn)證值的裝置的更新認(rèn)證值的裝置包括混沌函數(shù)裝置和加法計(jì)算裝置;所述的驗(yàn)證數(shù)據(jù)合法性的裝置為逐位比較裝置。
根據(jù)本發(fā)明的第五方面,本發(fā)明的計(jì)算機(jī)加密方法是基于混鈍原理的對(duì)原數(shù)據(jù)進(jìn)行加密和將密碼文進(jìn)行解密的計(jì)算機(jī)加密、解密方法,所述的加密方法包括步驟加密預(yù)處理,初始密鑰轉(zhuǎn)化,隨機(jī)序列生成,加密隨機(jī)序列(隨機(jī)序列攪拌),加密明文和產(chǎn)生認(rèn)證值;所述的解密方法包括步驟解密預(yù)處理,初始密鑰轉(zhuǎn)化,解密隨機(jī)序列(隨機(jī)序列提純),解密密文和校驗(yàn)認(rèn)證值。
根據(jù)本發(fā)明的第六方面,在本發(fā)明的計(jì)算機(jī)加密方法所述的加密方法中,所述的加密預(yù)處理包括確定加密方法版本信息的方法,取得密文頭信息的方法和加密密文頭信息的方法,所述的版本信息包括版本號(hào),所述的密文頭信息包括密文隨機(jī)部的長(zhǎng)度和報(bào)尾認(rèn)證值的長(zhǎng)度;所述的初始密鑰轉(zhuǎn)化包括轉(zhuǎn)換用的種子的取得方法和初始密鑰流的方法,其中種子為對(duì)密鑰的各項(xiàng)值作的算術(shù)運(yùn)算;所述的隨機(jī)序列生成包括從系統(tǒng)獲得隨機(jī)序列生成器的種子的方法,從系統(tǒng)獲取系統(tǒng)隨機(jī)序列的方法,混沌隨機(jī)數(shù)生成方法和種子的更新方法,其中種子包括微秒級(jí)的系統(tǒng)時(shí)間和當(dāng)前的進(jìn)程號(hào)而隨機(jī)序列包括操作系統(tǒng)固有的隨機(jī)序列生成器生成的隨機(jī)序列;所述的加密隨機(jī)序列(隨機(jī)序列攪拌)包括對(duì)隨機(jī)序列進(jìn)行Chaos加密生成Chaos值的方法,將Chaos值轉(zhuǎn)換為密文值的密文轉(zhuǎn)換方法,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新方法和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新方法;所述的加密明文方法包括對(duì)明文進(jìn)行Chaos加密生成Chaos值的方法,將Chaos值轉(zhuǎn)換為密文值的密文轉(zhuǎn)換方法,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新方法和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新方法;所述的產(chǎn)生認(rèn)證值的方法包括利用Chaos值更新認(rèn)證值的方法和認(rèn)證值與密文值合并的方法,其中認(rèn)證值的為密文報(bào)尾的認(rèn)證部。
在所述的解密方法中,所述的解密預(yù)處理方法包括從密文報(bào)頭取得加密方法的版本信息的方法,解密密文頭信息的方法和取得該密文頭信息的方法,該版本信息包括密文報(bào)頭的密文頭信息,該密文頭信息包括密文隨機(jī)部的長(zhǎng)度和報(bào)尾認(rèn)證值的長(zhǎng)度;所述的初始密鑰轉(zhuǎn)化方法包括轉(zhuǎn)換種子的取得方法和初始密鑰流的方法;所述的解密隨機(jī)序列(隨機(jī)序列提純)方法包括對(duì)密文隨機(jī)部進(jìn)行Chaos解密生成Chaos值的方法,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新方法和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新方法;所述的解密密文方法包括對(duì)密文進(jìn)行Chaos解密生成Chaos值和明文的方法,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新方法和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新方法;所述的校驗(yàn)認(rèn)證值方法包括從密文報(bào)文中取得認(rèn)證值的方法,利用Chaos值更新認(rèn)證值的方法和通過認(rèn)證值驗(yàn)證數(shù)據(jù)合法性的方法,其中認(rèn)證值為密文報(bào)尾的認(rèn)證部。
根據(jù)本發(fā)明的第七方面,本發(fā)明的計(jì)算機(jī)加密方法的所述的加密方法的加密預(yù)處理方法中,加密密文頭信息的方法包括混沌函數(shù)的加密方法和散列函數(shù)的調(diào)整方法。
根據(jù)本發(fā)明的第八方面,本發(fā)明的計(jì)算機(jī)加密方法所述的加密方法的初始密鑰轉(zhuǎn)化方法中,初始密鑰流的方法包括混沌函數(shù)的加密方法。
根據(jù)本發(fā)明的第九方面,本發(fā)明的計(jì)算機(jī)加密方法的所述的加密方法的隨機(jī)序列生成方法中,混沌隨機(jī)數(shù)生成方法包括混沌函數(shù)的加密方法和散列函數(shù)調(diào)整方法,種子的更新方法包括對(duì)數(shù)據(jù)的取逆方法。
根據(jù)本發(fā)明的第十方面,本發(fā)明的計(jì)算機(jī)加密方法所述的加密方法的加密隨機(jī)序列(隨機(jī)序列攪拌)方法中,Chaos加密方法包括混沌函數(shù)的加密方法和散列函數(shù)的調(diào)整方法,密文轉(zhuǎn)換方法包括對(duì)各個(gè)字節(jié)的異或方法,密鑰流更新方法包括字節(jié)反序方法和異或方法,認(rèn)證值更新方法包括混沌函數(shù)和加法運(yùn)算。
根據(jù)本發(fā)明的第十一方面,本發(fā)明的計(jì)算機(jī)加密方法的所述的加密方法的加密明文方法中,Chaos加密方法包括混沌函數(shù)的加密方法和散列函數(shù)的調(diào)整方法,密文轉(zhuǎn)換方法包括對(duì)各個(gè)字節(jié)的異或方法,密鑰流更新方法包括字節(jié)反序方法和異或方法,認(rèn)證值更新方法包括混沌函數(shù)和加法運(yùn)算。
根據(jù)本發(fā)明的第十二方面,本發(fā)明的計(jì)算機(jī)加密方法所述的加密方法的產(chǎn)生認(rèn)證值的方法中,更新認(rèn)證值的方法包括混沌函數(shù)和加法運(yùn)算。
根據(jù)本發(fā)明的第十三方面,本發(fā)明的計(jì)算機(jī)加密方法的所述的解密方法的解密預(yù)處理方法中,解密密文頭信息的方法包括混沌函數(shù)的加密方法和散列函數(shù)的調(diào)整方法。
根據(jù)本發(fā)明的第十四方面,本發(fā)明的計(jì)算機(jī)加密方法的所述的解密方法的初始密鑰轉(zhuǎn)化方法中,種子為對(duì)密鑰的各項(xiàng)值作的算術(shù)運(yùn)算,初始密鑰流的方法包括混沌函數(shù)的加密方法。
根據(jù)本發(fā)明的第十五方面,本發(fā)明的計(jì)算機(jī)加密方法的所述的解密方法的解密隨機(jī)序列(隨機(jī)序列提純)方法中,Chaos解密方法包括混沌函數(shù)的解密方法和散列函數(shù)的調(diào)整方法,密鑰流更新方法包括字節(jié)反序方法和異或方法,認(rèn)證值更新方法包括混沌函數(shù)和加法運(yùn)算。
根據(jù)本發(fā)明的第十六方面,本發(fā)明的計(jì)算機(jī)加密方法的所述的解密方法的解密密文方法中,Chaos解密方法包括混沌函數(shù)的解密方法和散列函數(shù)的調(diào)整方法,密鑰流更新方法包括字節(jié)反序方法和異或方法,認(rèn)證值更新方法包括混沌函數(shù)和加法運(yùn)算根據(jù)本發(fā)明的第十七方面,本發(fā)明的計(jì)算機(jī)加密方法的所述的解密方法的校驗(yàn)認(rèn)證值的方法中,更新認(rèn)證值的方法包括混沌函數(shù)和加法運(yùn)算,驗(yàn)證數(shù)據(jù)合法性的方法為逐位比較。
根據(jù)本發(fā)明的第十八方面,本發(fā)明的計(jì)算機(jī)加密方法采用的密文格式包括密文報(bào)頭部,密文報(bào)文部和密文報(bào)尾部。
根據(jù)本發(fā)明的第十九方面,本發(fā)明的計(jì)算機(jī)加密方法的所述的密文報(bào)頭部包括版本信息和密文頭信息,所述的密文報(bào)文部包括密文隨機(jī)部和密文部,所述的密文報(bào)尾部包括認(rèn)證值。
圖1是提供了實(shí)現(xiàn)本發(fā)明中加密方法的一般性的運(yùn)行框架的方框圖;
圖2是提供了實(shí)現(xiàn)本發(fā)明中解密方法的一般性的運(yùn)行框架的方框圖;圖3是本發(fā)明用于數(shù)據(jù)加密過程所使用的各模塊的組成的功能方塊圖;圖4是本發(fā)明用于數(shù)據(jù)解密過程所使用的各模塊的組成的功能方塊圖;圖5-1是加密過程中的加密預(yù)處理的邏輯流程圖;圖5-2是解密過程中的解密預(yù)處理的邏輯流程圖;圖6是加密/解密過程中對(duì)用戶輸入的密鑰文進(jìn)行的初始密鑰轉(zhuǎn)換器的邏輯流程圖;圖7是加密過程中的混沌隨機(jī)序列生成器的結(jié)構(gòu)圖;圖7A是加密過程中的混沌隨機(jī)數(shù)生成器的邏輯流程圖;圖8是加密過程中隨機(jī)序列加密器的結(jié)構(gòu)圖;圖8A是加密過程中隨機(jī)序列加密器對(duì)隨機(jī)序列進(jìn)行加密的邏輯流程圖;圖9是加密過程中明文加密器的結(jié)構(gòu)圖;圖9A是加密過程中明文加密器對(duì)明文進(jìn)行加密的邏輯流程圖;圖10是解密過程中隨機(jī)序列解密器的結(jié)構(gòu)圖;圖10A是解密過程中隨機(jī)序列解密器對(duì)隨機(jī)部進(jìn)行解密的邏輯流程圖;圖11是解密過程中密文解密器的結(jié)構(gòu)圖;圖11A是解密過程中密文解密器對(duì)密文進(jìn)行解密的邏輯流程圖;圖12是本加密方法的密文的格式的結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖,對(duì)本發(fā)明的計(jì)算機(jī)數(shù)據(jù)加密的系統(tǒng)及其方法做詳細(xì)說明。為便于說明,對(duì)本說明書中涉及的符號(hào)和名次規(guī)定如下明文為M={M1,M2,…,M1m},0≤Mi<256,其長(zhǎng)度為lm;密文為C={C1,C2,…,C1c},0≤Ci<256,其長(zhǎng)度為lc;用戶定義的密鑰文為Key={Key1,Key2,…,Key1k},0≤Keyi<256,其長(zhǎng)度為lk;變換后的密鑰為k={k1,k2,…,k1k},0≤ki<2564,即ki為4字節(jié)整數(shù),其長(zhǎng)度也為lk;若f()為混沌函數(shù),則fn+1(x)=f(fn(x))(n>0),f1(x)=f(x)。其中0≤x<2564,0≤f(x)<2564。
為達(dá)到混沌效果,在進(jìn)行加密之前需對(duì)初始值預(yù)先迭代若干(即為N)次,通常取N=50可以滿足條件。
另外,本加密/解密方法中,共有5步使用到了混沌函數(shù)加密報(bào)頭(fh)、隨機(jī)數(shù)種子生成(fs)、隨機(jī)數(shù)生成(fr)、加密/解密隨機(jī)序列(fcr)、加密明文/解密密文(f),其中括號(hào)內(nèi)表示函數(shù)名。它們分別代表相同或不同的混沌函數(shù),全部具有共同的混沌特性,作為本發(fā)明的一個(gè)實(shí)施例,選取f(x)=4x(1-x)作為混沌函數(shù)。
圖1說明提供了實(shí)現(xiàn)本發(fā)明中加密方法的一般性的運(yùn)行框架。加密系統(tǒng)1000首先包括加密器1010,該加密器包含加密流程的各個(gè)步驟;加密系統(tǒng)1000還包括輸入的明文1020,密鑰1030,以及輸出的密文1040。加密者利用私有的密鑰1030,并以明文1020作為輸入調(diào)用加密器,輸出密文1040。
圖2說明提供了實(shí)現(xiàn)本發(fā)明中解密方法的一般性的運(yùn)行框架。解密系統(tǒng)2000首先包括解密器2010,該解密器包含解密流程的各個(gè)步驟;解密系統(tǒng)2000還包括輸入的密文2020,密鑰2030,以及輸出的明文2040。解密者利用私有的密鑰2030(必須與加密密鑰相同),并以密文2020作為輸入調(diào)用解密器,輸出明文2040。
圖3提供了本發(fā)明的加密模塊1100的組成和模塊圖。一般,圖3所示的組成和模塊的目的是利用密鑰1030將明文1020進(jìn)行加密,從而輸出密文1040。
圖3所示的組成和模塊對(duì)輸入的明文1020進(jìn)行加密。加密模塊1100包括加密預(yù)處理1110,首先獲得加密模塊的版本號(hào),并確定密文a100中的密文隨機(jī)部a130的長(zhǎng)度以及驗(yàn)證值a150的長(zhǎng)度,并對(duì)其進(jìn)行加密處理,加密后的數(shù)據(jù)儲(chǔ)存于密文頭信息a120。
加密模塊1100包括初始密鑰轉(zhuǎn)換器1120,利用混沌公式將用戶輸入的密鑰1030作變換,生成變換后的初始密鑰流1380。
加密模塊1100包括隨機(jī)序列生成器1130,首先利用操作系統(tǒng)得到系統(tǒng)信息1410作為種子1420,再取得系統(tǒng)隨機(jī)序列1430作為基礎(chǔ),在混沌隨機(jī)數(shù)生成器1440的作用下生成隨機(jī)序列1450。
加密模塊1100包括隨機(jī)序列加密器1140,利用初始密鑰轉(zhuǎn)換器1120得到的初始密鑰流1380,對(duì)隨機(jī)序列生成器1130生成的隨機(jī)序列進(jìn)行加密,生成密文隨機(jī)部1670。同時(shí),在加密過程中將密鑰流1380不斷更新。
加密模塊1100包括明文加密器1150,利用隨機(jī)序列加密器1140加密過程中更新的密鑰流1380,對(duì)明文1020進(jìn)行加密,生成密文a140。
加密模塊1100包括計(jì)算認(rèn)證值1160,在加密隨機(jī)序列和明文的過程中,分別對(duì)認(rèn)證值1690和認(rèn)證值1790進(jìn)行更新,該值即作為認(rèn)證值a150??捎糜趯?duì)加密數(shù)據(jù)進(jìn)行合法性認(rèn)證。
圖4提供了本發(fā)明的解密模塊2100的組成和模塊圖。一般,圖4所示的組成和模塊的目的是利用密鑰2030將密文2020進(jìn)行解密,從而輸出明文2040。
圖4所示的組成和模塊對(duì)輸入的密文2020進(jìn)行解密。解密模塊2100包括解密預(yù)處理2110,首先從密文報(bào)頭版本信息獲得解密模塊的版本號(hào),并通過對(duì)密文頭信息a120進(jìn)行解密處理,確定密文a100中的密文隨機(jī)部a130的長(zhǎng)度以及認(rèn)證值a150的長(zhǎng)度。
解密模塊2100包括初始密鑰轉(zhuǎn)換器2120,利用混沌公式將用戶輸入的密鑰2030作變換,生成變換后的初始密鑰流1380。
解密模塊2100包括隨機(jī)序列解密器2140,利用初始密鑰轉(zhuǎn)換器2120得到的初始密鑰流1380,對(duì)密文隨機(jī)部1670進(jìn)行解密。同時(shí),在加密過程中將密鑰流1380不斷更新。
解密模塊2100包括密文解密器2150,利用隨機(jī)序列解密器2140解密過程中更新的密鑰流1380,對(duì)密文2020進(jìn)行解密,生成明文。
解密模塊2100包括核對(duì)認(rèn)證值2160,在解密隨機(jī)序列和密文的過程中,分別對(duì)認(rèn)證值2690和認(rèn)證值2790進(jìn)行更新,該值和認(rèn)證值a150作比較??捎糜趯?duì)加密數(shù)據(jù)進(jìn)行合法性認(rèn)證,不相同則不合法。
圖5-1是加密過程中的加密預(yù)處理的邏輯流程圖。主要包括取得加密器版本號(hào)1202和確定密文隨機(jī)部長(zhǎng)度和認(rèn)證值長(zhǎng)度1204兩部分。通過這兩部分處理為以下的加密處理做好準(zhǔn)備。
步驟1220,取得該加密器的版本號(hào),將其儲(chǔ)存在密文報(bào)頭a160的版本信息a110中,以便在解密過程中決定解密器所要采取的版本。
步驟1230,根據(jù)用戶對(duì)安全度和效率的要求確定密文隨機(jī)部的長(zhǎng)度LR。
步驟1240,根據(jù)用戶對(duì)安全度和效率的要求確定密文認(rèn)證部的長(zhǎng)度LT。
步驟1250,將步驟1230生成的LR和步驟1240生成的LT合成L,然后對(duì)L進(jìn)行加密,得到的值CL作為密文報(bào)頭的密文頭信息。過程如下
(1)初始化數(shù)組u[256],設(shè)u[i]=false,0<i<255(2)計(jì)算w=ΣiKeyi]]>(Keyi為密鑰的第i個(gè)分量),x0=fh50(w)(3)j從0到L,反復(fù)執(zhí)行以下步驟(4)至步驟(6)(4)計(jì)算xj=fh(xj-1)(當(dāng)j=0時(shí)跳過該步)(5)依次查找u[xj(mod256)],u[xj+1(mod256)],u[xj+2(mod256)],……,直到找到某個(gè)t,使得u[xj+t(mod256)]=false(6)令u[xj+t(mod256)]=true(7)最終得到的xj+t(mod256)即為CL步驟1260,將步驟2250獲得的CL作為密文頭信息儲(chǔ)存于密文報(bào)頭。
圖5-2是解密過程中的解密預(yù)處理的邏輯流程圖。主要包括從密文取得解密器版本號(hào)2202和確定密文隨機(jī)部長(zhǎng)度和認(rèn)證值長(zhǎng)度2204兩部分。通過這兩部分處理為以下的解密處理做好準(zhǔn)備。
步驟2220,從密文報(bào)頭的版本信息中取得版本號(hào)以選擇相應(yīng)的版本的解密器。
步驟2230,從密文報(bào)頭的密文頭信息部取得密文頭信息,即為CL。
步驟2240,對(duì)步驟2230中取得的CL進(jìn)行解密,得到L,過程如下(1)初始化數(shù)組u[256],設(shè)u[i]=false,0<i<255(2)計(jì)算w=ΣiKeyi]]>(Keyi為密鑰的第i個(gè)分量),x0=fh50(w)(3)j從0到255,反復(fù)執(zhí)行以下步驟(4)至步驟(6)(4)計(jì)算xj=fh(xj-1)(當(dāng)j=0時(shí)跳過該步)(5)依次查找u[xj(mod256)],u[xj+1(mod256)],u[xj+2(mod256)],……,直到找到某個(gè)t,使得u[xj+t(mod256)]=false(6)若CL=xj+t(mod256),轉(zhuǎn)到(7),否則令u[xj+t(mod256)]=true
(7)此時(shí)的j即為密文頭信息L步驟2250,從L中提取出密文隨機(jī)部的長(zhǎng)度LR。
步驟2260,從L中提取出密文認(rèn)證部的長(zhǎng)度LT。
圖6是加密/解密過程中對(duì)用戶輸入的密鑰文進(jìn)行的初始密鑰轉(zhuǎn)換器的邏輯流程圖。該轉(zhuǎn)換器主要實(shí)現(xiàn)將用戶提供的密鑰轉(zhuǎn)換成可以被使用的初始密鑰流。轉(zhuǎn)換過程中去除了用戶密鑰中的相關(guān)信息。
步驟1320-1380實(shí)現(xiàn)了從用戶密鑰到初始密鑰流的轉(zhuǎn)換步驟1320,計(jì)算S為初始密鑰的每一個(gè)字節(jié)的平方和S=ΣlkKeyn2]]>步驟1330,初始化C=S,i=1。
步驟1340-1370是對(duì)密鑰流的每個(gè)分量作轉(zhuǎn)換處理步驟1340對(duì)C作變換C=C(C為C的按位取逆),t=Keyi。
步驟1350,計(jì)算C=fsN+t(C)。
步驟1360,Ki=C,i=i+1。
步驟1370,判斷i是否超出密鑰的長(zhǎng)度。如果否,則轉(zhuǎn)到步驟1340,繼續(xù)處理密鑰的下一個(gè)字節(jié);如果是,則轉(zhuǎn)到步驟1380。
步驟1380,將序列K作為初始密鑰流輸出。
圖7是加密過程中的混沌隨機(jī)序列生成器的結(jié)構(gòu)圖。它利用操作系統(tǒng)的一些特有的信息,通過獨(dú)特的混沌隨機(jī)數(shù)生成器,生成一組的獨(dú)特的隨機(jī)序列,從而為實(shí)現(xiàn)隨機(jī)序列攪拌方法提供了基礎(chǔ)。
混沌隨機(jī)序列生成器1400包括系統(tǒng)信息1410,從操作系統(tǒng)獲得毫秒級(jí)的時(shí)間值和當(dāng)前進(jìn)程的進(jìn)程號(hào)。并將這兩個(gè)值作為生成種子的參數(shù)傳給種子1420。
混沌隨機(jī)序列生成器1400包括種子1420,將系統(tǒng)信息1410生成的兩個(gè)值分別儲(chǔ)存為S1和S2
S1=系統(tǒng)時(shí)間,S2=進(jìn)程號(hào)。
混沌隨機(jī)序列生成器1400包括系統(tǒng)隨機(jī)系列1430,按照步驟1230確定的隨機(jī)序列長(zhǎng)度LR,并利用操作系統(tǒng)的隨機(jī)序列生成器,生成一組長(zhǎng)度為L(zhǎng)R的隨機(jī)序列R0,作為混沌隨機(jī)序列生成器1440的一組參數(shù)。
混沌隨機(jī)序列生成器1400包括混沌隨機(jī)數(shù)生成器1440,利用種子1420和系統(tǒng)隨機(jī)序列1430產(chǎn)生隨機(jī)序列1450。
混沌隨機(jī)序列生成器1400包括隨機(jī)序列1450,為混沌隨機(jī)數(shù)生成器產(chǎn)生的隨機(jī)序列1450,用于置于明文之前加密,從而實(shí)現(xiàn)隨機(jī)數(shù)攪拌方法。
混沌隨機(jī)序列生成器1400包括種子更新器1460,在每次生成隨機(jī)數(shù)之后,利用當(dāng)前的隨機(jī)序列對(duì)種子1420作更新處理。
圖7A是加密過程中的混沌隨機(jī)數(shù)生成器的邏輯流程圖。圖7A詳述了混沌隨機(jī)數(shù)生成器1440的具體處理流程。它以系統(tǒng)隨機(jī)序列1430和種子1420為參數(shù),生成隨機(jī)序列1450,同時(shí)利用種子更新器1460更新種子1420。
步驟1520,將系統(tǒng)生成的時(shí)間值和進(jìn)程號(hào)儲(chǔ)存為種子S1和S2S1=系統(tǒng)時(shí)間值,S2=進(jìn)程號(hào)步驟1530,利用系統(tǒng)的隨機(jī)數(shù)生成器生成隨機(jī)序列R0,作為混沌隨機(jī)數(shù)生成器的參數(shù)。
步驟1540,初始化i=0。
步驟1550-1580是生成隨機(jī)序列的每個(gè)字節(jié)的處理過程。
步驟1550,以S2為參數(shù),計(jì)算Ri=frN+Roi(S1),]]>即得到隨機(jī)序列的一個(gè)分量。
步驟1560,更新S1,S1=Ri。
步驟1570,下標(biāo)i移到下一個(gè)隨機(jī)數(shù)i=i+1。
步驟1580,判斷下標(biāo)i是否超出隨機(jī)序列的長(zhǎng)度(LR),如果否,則轉(zhuǎn)到步驟1550,繼續(xù)生成下一個(gè)隨機(jī)數(shù);如果是,轉(zhuǎn)到步驟1590。
步驟1590,將生成的隨機(jī)序列R作為隨機(jī)序列輸出。該隨機(jī)序列將會(huì)被置于明文之前與明文共同加密組成密文,即實(shí)現(xiàn)對(duì)明文的隨機(jī)數(shù)攪拌方法。
圖8是加密過程中隨機(jī)序列加密器的結(jié)構(gòu)圖。對(duì)混沌隨機(jī)數(shù)生成器1500生成的混沌隨機(jī)序列1590進(jìn)行加密,生成的密文將置于密文隨機(jī)部中作為密文的一部分。在加密過程中不斷更新密鑰流,使得密鑰流呈現(xiàn)非周期性。同時(shí)使得每次加密明文時(shí)使用不同的密鑰流,大大增強(qiáng)了抗破解性。
隨機(jī)序列加密器1600包括密鑰流1610,作為無(wú)限循環(huán)的密鑰流的載體。
隨機(jī)序列加密器1600包括隨機(jī)序列1620,該序列為混沌隨機(jī)序列生成器1400生成的隨機(jī)序列1450。該隨機(jī)序列為Chaos加密器1630的輸入。
隨機(jī)序列加密器1600包括Chaos加密器(隨機(jī)序列)1630,以密鑰流1610位參數(shù),對(duì)輸入的隨機(jī)序列1620進(jìn)行逐位加密,生成Chaos值1640。
隨機(jī)序列加密器1600包括Chaos值1640,該值為Chaos加密器1630利用混沌函數(shù)計(jì)算后得到的值,用來產(chǎn)生密文隨機(jī)部,同時(shí)更新認(rèn)證值和密鑰流。
隨機(jī)序列加密器1600包括密鑰更新器1650,以密鑰流1610和Chaos值1640參數(shù),更新密鑰流1610的值。
隨機(jī)序列加密器1600包括密文轉(zhuǎn)換器1660,以Chaos值為參數(shù),生成密文隨機(jī)部1670。
隨機(jī)序列加密器1600包括密文隨機(jī)部1670,密文轉(zhuǎn)換器1660生成的結(jié)果。
隨機(jī)序列加密器1600包括認(rèn)證值更新器1680,以當(dāng)前認(rèn)證值1690和Chaos值1640為參數(shù),更新當(dāng)前認(rèn)證值1690。
隨機(jī)序列加密器1600包括認(rèn)證值1690,用來加在密文報(bào)尾的認(rèn)證值,認(rèn)證數(shù)據(jù)的合法性。
圖8A是加密過程中隨機(jī)序列加密器對(duì)隨機(jī)序列進(jìn)行加密的邏輯流程圖。圖8A詳述了Chaos加密器1630的具體處理流程。它以隨機(jī)序列1450位參數(shù),產(chǎn)生Chaos值1640,進(jìn)而利用密文轉(zhuǎn)換器1660生成密文隨機(jī)部,同時(shí)利用密鑰更新器1650更新密鑰流1610,并利用認(rèn)證值更新器1680更新認(rèn)證值。
步驟1720,初始化密鑰流指針p=1,認(rèn)證值V=0,i=1。
步驟1730-1780是隨機(jī)序列加密器對(duì)隨機(jī)序列的每個(gè)字節(jié)的加密處理過程步驟1730,以混沌隨機(jī)序列的第i個(gè)字節(jié)Ri和密鑰流第p個(gè)字節(jié)Kp為參數(shù),計(jì)算Chaos值,過程如下(1) 初始化數(shù)組u[256]為false,(2) 計(jì)算x0=fcrN(Kp)(3) j從1到Ri,重復(fù)執(zhí)行步驟(4)步驟(6)(4) 計(jì)算xj=fcr(xj-1)(5) 計(jì)算yj=xj的各字節(jié)之異或和(6) 依次查找u[yj(mod256)],u[yj+1(mod256)],u[yj+2(mod256)],……,直到找到一個(gè)某個(gè)t,使得u[yj+t(mod256)]=false,令u[yj+t(mod256)]=true
(7) 此時(shí)的xj即為Chaos值,yj+t(mod256)為密文值步驟1740,步驟1730(7)由Chaos值生成的yj+t(mod256)即為隨機(jī)數(shù)密文值CRi=y(tǒng)j+t(mod256)步驟1750,以Chaos值為參數(shù),利用認(rèn)證值更新器1680,更新認(rèn)證值VV=V+fcr(Chaos)其中Chaos為Chaos值步驟1760,以Chaos值為參數(shù),利用密鑰更新器1650,更新密鑰流Kp=r(Kp) ChaosKp+1=KpChaos其中,表示異或方法;r()表示字節(jié)反序操作(abcd→dcba);Chaos表示Chaos值。
步驟1770,更新當(dāng)前隨機(jī)數(shù)位置i=i+1,移動(dòng)密鑰流當(dāng)前指針p=(p+1)mod lk,其中l(wèi)k為密鑰長(zhǎng)度。
步驟1780,判斷下標(biāo)i是否超出隨機(jī)序列的長(zhǎng)度(LR),如果否,則轉(zhuǎn)到步驟1730,繼續(xù)加密下一個(gè)隨機(jī)數(shù);如果是,轉(zhuǎn)到步驟1790。
步驟1790,加密過程中生成的序列CR作為密文隨機(jī)部輸出,同時(shí)保留密鑰流的所有值及當(dāng)前指針p還有當(dāng)前的認(rèn)證值,以備加密明文時(shí)繼續(xù)使用。
圖9是加密過程中明文加密器的結(jié)構(gòu)圖。對(duì)用戶輸入的明文1820進(jìn)行加密,生成的密文將置于密文報(bào)文部a170的密文a140部分。在加密過程中不斷更新密鑰流,使得密鑰流呈現(xiàn)非周期性。同時(shí)使得每次加密明文時(shí)使用不同的密鑰流,大大增強(qiáng)了抗破解性。
明文加密器1800包括密鑰流1810,作為無(wú)限循環(huán)的密鑰流的載體。該密鑰流保存了隨機(jī)序列加密器1600加密過程中更新的值。
明文加密器1800包括明文1820,該序列為用戶需要加密的明文。該明文為Chaos加密器1830的輸入。
明文加密器1800包括Chaos加密器(明文)1830,以密鑰流1810位參數(shù),對(duì)輸入的明文1820進(jìn)行逐位加密,生成Chaos值1840。
明文加密器1800包括Chaos值1840,該值為Chaos加密器1830利用混沌函數(shù)計(jì)算后得到的值,用來產(chǎn)生密文,同時(shí)更新認(rèn)證值和密鑰流。
明文加密器1800包括密鑰更新器1850,以密鑰流1810和Chaos值1840參數(shù),更新密鑰流1810的值。
明文加密器1800包括密文轉(zhuǎn)換器1860,以Chaos值為參數(shù),生成密文1870。
明文加密器1800包括密文1870,密文轉(zhuǎn)換器1860生成的結(jié)果。
明文加密器1800包括認(rèn)證值更新器1880,以當(dāng)前認(rèn)證值1890和Chaos值1840為參數(shù),更新當(dāng)前認(rèn)證值1890。
明文加密器1800包括認(rèn)證值1890,用來加在密文報(bào)尾的認(rèn)證值,認(rèn)證數(shù)據(jù)的合法性。
圖9A是加密過程中明文加密器對(duì)明文進(jìn)行加密的邏輯流程圖。圖9A詳述了Chaos加密器1830的具體處理流程。它以明文1820和密鑰流1810為參數(shù),產(chǎn)生Chaos值1840,進(jìn)而利用密文轉(zhuǎn)換器1860生成密文a140,同時(shí)利用密鑰更新器1850更新密鑰流1810,并利用認(rèn)證值更新器1880更新認(rèn)證值。
步驟1920,保留隨機(jī)序列加密過程中的密鑰流指針p和認(rèn)證值V,令i=1。
步驟1930-1980是明文加密器對(duì)明文的每個(gè)字節(jié)的加密處理過程
步驟1930,以明文的第i個(gè)字節(jié)Mi和密鑰流的第p個(gè)字節(jié)Kp為參數(shù),計(jì)算Chaos值,過程如下(1) 初始化數(shù)組u[256]為false,(2) 計(jì)算x0=fcrN(Kp)(3) j從1到Mi,重復(fù)執(zhí)行步驟(4)步驟(6)(4) 計(jì)算xj=f(xj-1)(5) 計(jì)算yj=xj的各字節(jié)之異或和(6) 依次查找u[yj(mod256)],u[yj+1(mod256)],u[yj+2(mod256)],……,直到找到一個(gè)某個(gè)t,使得u[yj+t(mod256)]=false,令u[yj+t(mod256)]=true(7) 此時(shí)的xj即為Chaos值,yj+t(mod256)為密文值步驟1940,步驟1930(7)由Chaos值生成的yj+t(mod256)即為密文值Ci=y(tǒng)j+t(mod256)步驟1950,以Chaos值為參數(shù),利用認(rèn)證值更新器1880,更新認(rèn)證值VV=V+f(Chaos)其中Chaos為Chaos值步驟1960,以Chaos值為參數(shù),利用密鑰更新器1850,更新密鑰流Kp=r(Kp)ChaosKp+1=KpChaos其中,表示異或方法;r()表示字節(jié)反序操作(abcd→dcba);Chaos表示Chaos值。
步驟1970,更新當(dāng)前明文位置i=i+1,移動(dòng)密鑰流當(dāng)前指針p=(p+1)mod lk,其中l(wèi)k為密鑰長(zhǎng)度。
步驟1980,判斷下標(biāo)i是否超出明文的長(zhǎng)度(lm),如果否,則轉(zhuǎn)到步驟1930,繼續(xù)加密下一個(gè)明文;如果是,轉(zhuǎn)到步驟1990。
步驟1990,加密過程中生成的序列C作為密文輸出,同時(shí)將當(dāng)前的認(rèn)證值儲(chǔ)存于密文的報(bào)尾,作為密文的認(rèn)證部。
圖10是解密過程中隨機(jī)序列解密器的結(jié)構(gòu)圖。對(duì)密文隨機(jī)部a130進(jìn)行解密。在解密過程中不斷更新密鑰流,使得密鑰流呈現(xiàn)非周期性。同時(shí)將密鑰流的值恢復(fù)到和加密明文之前的密鑰流相同的狀態(tài),以便正確的解密。
隨機(jī)序列解密器2600包括密鑰流2610,作為無(wú)限循環(huán)的密鑰流的載體。
隨機(jī)序列解密器2600包括密文隨機(jī)部2620,該序列為密文的密文隨機(jī)部a140。該密文隨機(jī)部為Chaos解密器2630的輸入。
隨機(jī)序列解密器2600包括Chaos解密器(隨機(jī)序列)2630,以密鑰流2610位參數(shù),對(duì)輸入的密文隨機(jī)部2620進(jìn)行逐位解密,生成Chaos值2640。
隨機(jī)序列解密器2600包括Chaos值2640,該值為Chaos解密器2630利用混沌函數(shù)計(jì)算后得到的值,用來更新認(rèn)證值和密鑰流。
隨機(jī)序列解密器2600包括密鑰更新器2650,以密鑰流2610和Chaos值2640參數(shù),更新密鑰流2610的值。
隨機(jī)序列解密器2600包括認(rèn)證值更新器2680,以當(dāng)前認(rèn)證值2690和Chaos值2640為參數(shù),更新當(dāng)前認(rèn)證值2690。
隨機(jī)序列解密器2600包括認(rèn)證值2690,用來與密文報(bào)尾的認(rèn)證值比較,認(rèn)證數(shù)據(jù)的合法性。
圖10A是解密過程中隨機(jī)序列解密器對(duì)隨機(jī)部進(jìn)行解密的邏輯流程圖。圖10A詳述了Chaos解密器2630的具體處理流程。它以密文隨機(jī)部2620位參數(shù),產(chǎn)生Chaos值2640,進(jìn)而利用密鑰更新器2650更新密鑰流2610,同時(shí)利用認(rèn)證值更新器2680更新認(rèn)證值。
步驟2720,初始化密鑰流指針p=1,認(rèn)證值V=0,i=1。
步驟2730-2780是隨機(jī)序列解密器對(duì)隨機(jī)序列的每個(gè)字節(jié)的解密處理過程步驟2730,以密文隨機(jī)部的的i個(gè)字節(jié)CRi和密鑰流的第p個(gè)字節(jié)Kp為參數(shù),計(jì)算Chaos值,過程如下(1) 初始化數(shù)組u[256]為false,(2) 計(jì)算x0=fcrN(Kp)(3) j從1到256,重復(fù)執(zhí)行步驟(4)步驟(6)(4) 計(jì)算xj=fcr(xj-1)(5) 計(jì)算yj=xj的各字節(jié)之異或和(6) 依次查找u[yj(mod256)],u[yj+1(mod256)],u[yj+2(mod256)],……,直到找到一個(gè)某個(gè)t,使得u[yj+t(mod256)]=false,如果yj+t(mod256)=CRi,則轉(zhuǎn)到(7),否則令u[yj+t(mod256)]=true(7) 此時(shí)的xj即為Chaos值步驟2750,以Chaos值為參數(shù),利用認(rèn)證值更新器2680,更新認(rèn)證值VV=V+fcr(Chaos)其中Chaos為Chaos值步驟2760,以Chaos值為參數(shù),利用密鑰更新器2650,更新密鑰流Kp=r(Kp)ChaosKp+1=KpChaos其中,表示異或方法;r()表示字節(jié)反序操作(abcd→dcba);Chaos表示Chaos值。
步驟2770,更新當(dāng)前密文隨機(jī)頭位置i=i+1,移動(dòng)密鑰流當(dāng)前指針p=(p+1)mod lk,其中l(wèi)k為密鑰長(zhǎng)度。
步驟2780,判斷下標(biāo)i是否超出密文隨機(jī)頭的長(zhǎng)度(LR),如果否,則轉(zhuǎn)到步驟2730,繼續(xù)解密下一個(gè)隨機(jī)數(shù);如果是,轉(zhuǎn)到步驟2790。
步驟2790,保留密鑰流的所有值及當(dāng)前指針p還有當(dāng)前的認(rèn)證值,以備解密密文時(shí)繼續(xù)使用。
圖11是解密過程中密文解密器的結(jié)構(gòu)圖。對(duì)密文2820進(jìn)行解密,生成的復(fù)原的明文。在解密過程中不斷更新密鑰流,使得密鑰流呈現(xiàn)非周期性。
密文解密器2800包括密鑰流2810,作為無(wú)限循環(huán)的密鑰流的載體。
密文解密器2800包括密文2820,該序列為密文報(bào)文的密文部分a140。該密文為Chaos解密器2830的輸入。
密文解密器2800包括Chaos解密器(密文)2830,以密鑰流2810位參數(shù),對(duì)輸入的密文2820進(jìn)行逐位解密,生成Chaos值2840和明文2870。
密文解密器2800包括Chaos值2840,該值為Chaos解密器2830利用混沌函數(shù)計(jì)算后得到的值,用來更新認(rèn)證值和密鑰流。
密文解密器2800包括密鑰更新器2850,以密鑰流2810和Chaos值2840參數(shù),更新密鑰流2810的值。
密文解密器2800包括明文2870,Chaos解密器(密文)2830生成的結(jié)果。
密文解密器2800包括認(rèn)證值更新器2880,以當(dāng)前認(rèn)證值2890和Chaos值2840為參數(shù),更新當(dāng)前認(rèn)證值2890。
密文解密器2800包括認(rèn)證值2890,用來與密文報(bào)尾的認(rèn)證值比較,認(rèn)證數(shù)據(jù)的合法性。
圖11A是解密過程中密文解密器對(duì)密文進(jìn)行解密的邏輯流程圖。圖11A詳述了Chaos解密器2830的具體處理流程。它以密文2820和密鑰流2810為輸入生成明文2870,并產(chǎn)生Chaos值2840,同時(shí)利用密鑰更新器2850更新密鑰流2810,并利用認(rèn)證值更新器2880更新認(rèn)證值。
步驟2920,保留密文隨機(jī)部解密過程中的密鑰流指針p和認(rèn)證值V,令i=1。
步驟2930-2980是密文解密器對(duì)密文的每個(gè)字節(jié)的解密處理過程步驟2930,以密文的第i個(gè)字節(jié)Ci和密鑰流的第p個(gè)字節(jié)Kp為參數(shù),計(jì)算Chaos值,過程如下(1) 初始化數(shù)組u[256]為false,(2) 計(jì)算x0=fcrN(Kp)(3) j從1到256,重復(fù)執(zhí)行步驟(4)步驟(6)(4) 計(jì)算xj=f(xj-1)(5) 計(jì)算yj=xj的各字節(jié)之異或和(6) 依次查找u[yj(mod256)],u[yj+1(mod256)],u[yj+2(mod256)],……,直到找到一個(gè)某個(gè)t,使得u[yj+t(mod256)]=false,如果yj+t(mod256)=Ci,則轉(zhuǎn)到(7),否則令u[yj+t(mod256)]=true(7) 此時(shí)的xj即為Chaos值,j即為明文值步驟2940,步驟2930(7)中得到的j即為名文值Mi=j(luò)步驟2950,以Chaos值為參數(shù),利用認(rèn)證值更新器2880,更新認(rèn)證值VV=V+f(Chaos)其中Chaos為Chaos值步驟2960,以Chaos值為參數(shù),利用密鑰更新器2850,更新密鑰流Kp=r(Kp)ChaosKp+1=KpChaos其中,表示異或方法;r()表示字節(jié)反序操作(abcd→dcba);Chaos表示Chaos值。
步驟2970,更新當(dāng)前密文位置i=i+1,移動(dòng)密鑰流當(dāng)前指針p=(p+1)mod lk,其中l(wèi)k為密鑰長(zhǎng)度。
步驟2980,判斷下標(biāo)i是否超出明文的長(zhǎng)度(lm),如果否,則轉(zhuǎn)到步驟2930,繼續(xù)解密下一個(gè)密文;如果是,轉(zhuǎn)到步驟2990。
步驟2990,解密過程中生成的序列M作為明文輸出,同時(shí)將當(dāng)前的認(rèn)證值與密文的報(bào)尾的認(rèn)證值作比較,相同則認(rèn)證合法,否則不合法。
圖12是本加密方法獨(dú)特的密文格式的構(gòu)成圖。表示了加密明文所得到的密文值的存儲(chǔ)格式。
密文格式a100包含報(bào)頭部分a160。其中包括加密器/解密器的版本信息a110和密文頭信息a120。
密文格式a100包含報(bào)文部分a170。其中包括密文隨機(jī)部a130和密文部a140。
密文格式a100包含報(bào)為部分a180。其中包括認(rèn)證值a150。
本發(fā)明的一種基于混沌理論高速加密裝置和加密方法是一種安全度較高的同時(shí)速度很快的加密裝置和加密方法,它適合于應(yīng)用在因特網(wǎng)上安全要求很高同時(shí)數(shù)據(jù)量很大的數(shù)據(jù)傳輸過程中,可以應(yīng)用在Internet上通訊的數(shù)據(jù)保護(hù)例如HTTP協(xié)議下的數(shù)據(jù)通信,IPSec協(xié)議的虛擬個(gè)人專用網(wǎng)(VPN)等各種網(wǎng)絡(luò)協(xié)議上的數(shù)據(jù)加密。另外,還可以應(yīng)用在數(shù)據(jù)保護(hù)加密領(lǐng)域中,對(duì)重要數(shù)據(jù)、文件的加密保存。例如,應(yīng)用在口令加密、文件的加密、數(shù)據(jù)庫(kù)的加密保存領(lǐng)域??梢栽趥鬏敂?shù)據(jù)或保存數(shù)據(jù)之前,利用私有的密鑰,通過調(diào)用加密處理模塊對(duì)數(shù)據(jù)進(jìn)行加密;在接收數(shù)據(jù)或讀取數(shù)取之前,利用相同的密鑰,調(diào)用解密處理模塊對(duì)數(shù)據(jù)進(jìn)行解密。
綜上所述,會(huì)理解本發(fā)明提供的一種基于混沌理論高速加密裝置和加密方法,其可以對(duì)數(shù)據(jù)進(jìn)行快速有效的保護(hù)。應(yīng)該明白上述內(nèi)容只涉及本發(fā)明的舉例性實(shí)施例,可以對(duì)其做出各種改變,而不會(huì)背離由下述權(quán)利要求所限定的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種計(jì)算機(jī)加密裝置,是由基于混沌原理的計(jì)算機(jī)動(dòng)態(tài)加密器和解密器組成,用于對(duì)原數(shù)據(jù)進(jìn)行加密和將密碼文進(jìn)行解密,其特征在于所述的加密器包括一加密預(yù)處理裝置;一初始密鑰轉(zhuǎn)化裝置;一隨機(jī)序列生成器;一隨機(jī)序列加密(隨機(jī)序列攪拌)器;一明文的加密器;一產(chǎn)生認(rèn)證值的裝置;所述的解密器包括一解密預(yù)處理裝置;一初始密鑰轉(zhuǎn)化裝置;一隨機(jī)序列解密(隨機(jī)序列提純)器;一密文解密裝置;和一校驗(yàn)認(rèn)證值的裝置。
2.根據(jù)權(quán)利要求1的計(jì)算機(jī)加密裝置,其特征在于所述的加密器的加密預(yù)處理裝置,由確定加密器版本信息的裝置,取得密文頭信息的裝置和加密密文頭信息的裝置組成,該器版本信息包括版本號(hào),該密文頭信息包括密文隨機(jī)部的長(zhǎng)度和報(bào)尾認(rèn)證值的長(zhǎng)度;所述的加密器的初始密鑰轉(zhuǎn)化裝置,由取得對(duì)密鑰的各項(xiàng)值作算術(shù)運(yùn)算的轉(zhuǎn)換用的種子的裝置和包括混沌函數(shù)的加密器的初始密鑰流的生成器組成;所述的加密器的隨機(jī)序列生成器;由從系統(tǒng)獲得隨機(jī)序列生成器的種子的裝置,從系統(tǒng)獲取系統(tǒng)隨機(jī)序列的裝置,混沌隨機(jī)數(shù)生成器和種子的更新器組成;所述的加密器的隨機(jī)序列加密(隨機(jī)序列攪拌)器,包括對(duì)隨機(jī)序列進(jìn)行Chaos加密生成Chaos值的裝置;所述的加密器的明文的加密器,由對(duì)明文進(jìn)行Chaos加密生成Chaos值的裝置,將Chaos值轉(zhuǎn)換為密文值的密文轉(zhuǎn)換器,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新器和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新器組成;所述的加密器的產(chǎn)生認(rèn)證值的裝置,包括利用Chaos值更新作為密文報(bào)尾的認(rèn)證部的認(rèn)證值的裝置;所述的解密器的解密預(yù)處理裝置,由從密文報(bào)頭取得加密方法版本信息的裝置,解密密文頭信息的裝置和取得該密文頭信息的裝置組成,該版本信息包括密文報(bào)頭的密文頭信息,該密文頭信息包括密文隨機(jī)部的長(zhǎng)度和報(bào)尾認(rèn)證值的長(zhǎng)度;所述的解密器的初始密鑰轉(zhuǎn)化裝置,由取得轉(zhuǎn)換對(duì)密鑰的各項(xiàng)值作算術(shù)運(yùn)算的種子的裝置和初始密鑰流的生成器組成;所述的解密器的隨機(jī)序列解密(隨機(jī)序列提純)器,由對(duì)密文隨機(jī)部進(jìn)行Chaos解密生成Chaos值的裝置,該裝置包括使用散列函數(shù)的調(diào)整方法的混沌函數(shù)的解密器,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新器和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新器組成;所述的解密器的密文解密裝置,由對(duì)密文進(jìn)行Chaos解密生成Chaos值和明文的裝置,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新器和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新器組成;所述的解密器的校驗(yàn)認(rèn)證值的裝置,由從密文報(bào)文中取得認(rèn)證值的裝置,利用Chaos值更新認(rèn)證值的裝置和通過認(rèn)證值驗(yàn)證數(shù)據(jù)合法性的裝置組成,其中認(rèn)證值的為密文報(bào)尾的認(rèn)證部。
3.根據(jù)權(quán)利要求1或2的計(jì)算機(jī)加密裝置,其特征在于所述加密器中所述的加密預(yù)處理裝置中的加密密文頭信息的裝置包括混沌函數(shù)的加密器和散列函數(shù)的調(diào)整裝置;所述的隨機(jī)序列生成器包括操作系統(tǒng)固有的隨機(jī)序列生成器,所述的混沌隨機(jī)數(shù)生成器包括混沌函數(shù)的加密器和散列函數(shù)調(diào)整裝置,所述的種子的更新器包括對(duì)數(shù)據(jù)的取逆裝置;所述的隨機(jī)序列加密(隨機(jī)序列攪拌)器的Chaos加密器裝置包括混沌函數(shù)的加密器和散列函數(shù)的調(diào)整裝置,所述的密文轉(zhuǎn)換器包括對(duì)各個(gè)字節(jié)的異或計(jì)算裝置,所述的密鑰流更新器包括字節(jié)反序計(jì)算裝置和異或計(jì)算裝置,所述的認(rèn)證值更新器包括混沌函數(shù)裝置和加法計(jì)算裝置;所述的明文的加密器的Chaos加密器裝置包括混沌函數(shù)的加密器和散列函數(shù)的調(diào)整裝置,所述的密文轉(zhuǎn)換器包括對(duì)各個(gè)字節(jié)的異或計(jì)算裝置,所述的密鑰流更新器包括字節(jié)反序計(jì)算裝置和異或計(jì)算裝置,所述的認(rèn)證值更新器包括混沌函數(shù)裝置和加法計(jì)算裝置;所述的產(chǎn)生認(rèn)證值的裝置的所述的更新認(rèn)證值的裝置包括混沌函數(shù)裝置和加法計(jì)算裝置。
4.根據(jù)權(quán)利要求1或2的計(jì)算機(jī)加密裝置,其特征在于所述解密器中所述的解密預(yù)處理裝置的解密密文頭信息的裝置包括混沌函數(shù)的加密器和散列函數(shù)的調(diào)整裝置;所述的初始密鑰轉(zhuǎn)化裝置的初始密鑰流的生成器包括混沌函數(shù)的加密器;所述的隨機(jī)序列解密(隨機(jī)序列提純)器的密鑰流更新器包括字節(jié)反序計(jì)算裝置和異或計(jì)算裝置,所述的認(rèn)證值更新器包括混沌函數(shù)裝置和加法計(jì)算裝置。所述的密文解密裝置的Chaos解密器包括混沌函數(shù)的解密器和散列函數(shù)的調(diào)整裝置;所述的密鑰流更新器包括字節(jié)反序計(jì)算裝置和異或計(jì)算裝置;所述的認(rèn)證值更新器包括混沌函數(shù)裝置和加法計(jì)算裝置;所述的校驗(yàn)認(rèn)證值的裝置的更新認(rèn)證值的裝置包括混沌函數(shù)裝置和加法計(jì)算裝置;所述的驗(yàn)證數(shù)據(jù)合法性的裝置為逐位比較裝置。
5.一種計(jì)算機(jī)加密方法,是基于混沌原理的對(duì)原數(shù)據(jù)進(jìn)行加密和將密碼文進(jìn)行解密的計(jì)算機(jī)加密、解密方法,其特征在于所述的加密方法包括步驟加密預(yù)處理;初始密鑰轉(zhuǎn)化;隨機(jī)序列生成;加密隨機(jī)序列(隨機(jī)序列攪拌);加密明文;和產(chǎn)生認(rèn)證值;所述的解密方法包括步驟解密預(yù)處理;初始密鑰轉(zhuǎn)化;解密隨機(jī)序列(隨機(jī)序列提純);解密密文;和校驗(yàn)認(rèn)證值。
6.根據(jù)權(quán)利要求5的計(jì)算機(jī)加密方法,其特征在于所述的加密方法中所述的加密預(yù)處理包括確定加密方法版本信息的方法,取得密文頭信息的方法和加密密文頭信息的方法,該版本信息包括版本號(hào),該密文頭信息包括密文隨機(jī)部的長(zhǎng)度和報(bào)尾認(rèn)證值的長(zhǎng)度;所述的初始密鑰轉(zhuǎn)化包括轉(zhuǎn)換用的種子的取得方法和初始密鑰流的方法,其中種子為對(duì)密鑰的各項(xiàng)值作的算術(shù)運(yùn)算;所述的隨機(jī)序列生成包括從系統(tǒng)獲得隨機(jī)序列生成器的種子的方法,從系統(tǒng)獲取系統(tǒng)隨機(jī)序列的方法,混沌隨機(jī)數(shù)生成方法和種子的更新方法,其中種子包括微秒級(jí)的系統(tǒng)時(shí)間和當(dāng)前的進(jìn)程號(hào)而隨機(jī)序列包括操作系統(tǒng)固有的隨機(jī)序列生成器生成的隨機(jī)序列;所述的加密隨機(jī)序列(隨機(jī)序列攪拌)包括對(duì)隨機(jī)序列進(jìn)行Chaos加密生成Chaos值的方法,將Chaos值轉(zhuǎn)換為密文值的密文轉(zhuǎn)換方法,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新方法和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新方法;所述的加密明文方法包括對(duì)明文進(jìn)行Chaos加密生成Chaos值的方法,將Chaos值轉(zhuǎn)換為密文值的密文轉(zhuǎn)換方法,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新方法和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新方法;所述的產(chǎn)生認(rèn)證值的方法包括利用Chaos值更新認(rèn)證值的方法和認(rèn)證值與密文值合并的方法,其中認(rèn)證值的為密文報(bào)尾的認(rèn)證部;所述的解密方法中所述的解密預(yù)處理方法包括從密文報(bào)頭取得加密方法的包括密文報(bào)頭的密文頭信息的版本信息的方法,解密包括密文隨機(jī)部的長(zhǎng)度和報(bào)尾認(rèn)證值的長(zhǎng)度的密文頭信息的方法和取得該密文頭信息的方法;所述的初始密鑰轉(zhuǎn)化方法包括轉(zhuǎn)換種子的取得方法和初始密鑰流的方法;所述的解密隨機(jī)序列(隨機(jī)序列提純)方法包括對(duì)密文隨機(jī)部進(jìn)行Chaos解密生成Chaos值的方法,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新方法和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新方法;所述的解密密文方法包括對(duì)密文進(jìn)行Chaos解密生成Chaos值和明文的方法,利用Chaos值對(duì)密鑰流進(jìn)行更新的密鑰流更新方法和利用Chaos值對(duì)認(rèn)證值進(jìn)行更新的認(rèn)證值更新方法;和所述的校驗(yàn)認(rèn)證值方法包括從密文報(bào)文中取得認(rèn)證值的方法,利用Chaos值更新認(rèn)證值的方法和通過認(rèn)證值驗(yàn)證數(shù)據(jù)合法性的方法,其中認(rèn)證值的為密文報(bào)尾的認(rèn)證部。
7.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的加密方法的加密預(yù)處理方法中,加密密文頭信息的方法包括混沌函數(shù)的加密方法和散列函數(shù)的調(diào)整方法。
8.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的加密方法的初始密鑰轉(zhuǎn)化方法中,初始密鑰流的方法包括混沌函數(shù)的加密方法。
9.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的加密方法的隨機(jī)序列生成方法中,混沌隨機(jī)數(shù)生成方法包括混沌函數(shù)的加密方法和散列函數(shù)調(diào)整方法,種子的更新方法包括對(duì)數(shù)據(jù)的取逆方法。
10.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的加密方法的加密隨機(jī)序列(隨機(jī)序列攪拌)方法中,Chaos加密方法包括混沌函數(shù)的加密方法和散列函數(shù)的調(diào)整方法,密文轉(zhuǎn)換方法包括對(duì)各個(gè)字節(jié)的異或方法,密鑰流更新方法包括字節(jié)反序方法和異或方法,認(rèn)證值更新方法包括混沌函數(shù)和加法運(yùn)算。
11.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的加密方法的加密明文方法中,Chaos加密方法包括混沌函數(shù)的加密方法和散列函數(shù)的調(diào)整方法,密文轉(zhuǎn)換方法包括對(duì)各個(gè)字節(jié)的異或方法,密鑰流更新方法包括字節(jié)反序方法和異或方法,認(rèn)證值更新方法包括混沌函數(shù)和加法運(yùn)算。
12.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的加密方法的產(chǎn)生認(rèn)證值的方法中,更新認(rèn)證值的方法包括混沌函數(shù)和加法運(yùn)算。
13.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的解密方法的解密預(yù)處理方法中,解密密文頭信息的方法包括混沌函數(shù)的加密方法和散列函數(shù)的調(diào)整方法。
14.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的解密方法的初始密鑰轉(zhuǎn)化方法中,種子為對(duì)密鑰的各項(xiàng)值作的算術(shù)運(yùn)算,初始密鑰流的方法包括混沌函數(shù)的加密方法。
15.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的解密方法的解密隨機(jī)序列(隨機(jī)序列提純)方法中,Chaos解密方法包括混沌函數(shù)的解密方法和散列函數(shù)的調(diào)整方法,密鑰流更新方法包括字節(jié)反序方法和異或方法,認(rèn)證值更新方法包括混沌函數(shù)和加法運(yùn)算
16.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的解密方法的解密密文方法中,Chaos解密方法包括混沌函數(shù)的解密方法和散列函數(shù)的調(diào)整方法,密鑰流更新方法包括字節(jié)反序方法和異或方法,認(rèn)證值更新方法包括混沌函數(shù)和加法運(yùn)算
17.根據(jù)權(quán)利要求5或6的計(jì)算機(jī)加密方法,其特征在于所述的解密方法的校驗(yàn)認(rèn)證值的方法中,更新認(rèn)證值的方法包括混沌函數(shù)和加法運(yùn)算,驗(yàn)證數(shù)據(jù)合法性的方法為逐位比較。
18.一種計(jì)算機(jī)加密方法,是基于混沌原理的對(duì)原數(shù)據(jù)進(jìn)行加密和將密碼文進(jìn)行解密的計(jì)算機(jī)加密、解密方法,其特征在于采用的密文格式包括密文報(bào)頭部,密文報(bào)文部和密文報(bào)尾部。
19.根據(jù)權(quán)利要求18的計(jì)算機(jī)加密方法,其特征在于所述的密文報(bào)頭部包括版本信息和密文頭信息,所述的密文報(bào)文部包括密文隨機(jī)部和密文部,所述的密文報(bào)尾部包括認(rèn)證值。
全文摘要
一種基于混沌理論高速加密裝置和加密方法,利用混沌學(xué)原理對(duì)初值的敏感依賴性,生成無(wú)限循環(huán)的密鑰流,具有很高的安全性。該方法所要求的密鑰為可變長(zhǎng)的,理論上可達(dá)到任意長(zhǎng)度,(推薦范圍為64-4096)。對(duì)密鑰的初始處理使得密鑰的微小變化將導(dǎo)致互相毫無(wú)關(guān)聯(lián)的密文值,大幅度提高了抗破解特性。該方法所提出的隨機(jī)數(shù)攪拌方法,在得到可變長(zhǎng)密文的同時(shí),在加密過程中加入了隨機(jī)的不可預(yù)知的信息,實(shí)現(xiàn)了即使相同的明文每次加密得到不同的密文,使得對(duì)該密碼的攻擊完全不可能。另外,該加密方法的時(shí)間不隨密鑰長(zhǎng)度變化而變化,具有比同等強(qiáng)度加密方法高很多的速度。該方法適用于各種平臺(tái),在因特網(wǎng)及手提電話等通信領(lǐng)域有著廣泛的應(yīng)用前景。
文檔編號(hào)G06F17/00GK1480851SQ0212935
公開日2004年3月10日 申請(qǐng)日期2002年9月4日 優(yōu)先權(quán)日2002年9月4日
發(fā)明者楊斌, 阮曉迅, 青山信義, 義, 楊 斌 申請(qǐng)人:楊斌, 阮曉迅, 青山信義, 楊 斌