基于耦合自觸發(fā)元胞自動(dòng)機(jī)加解密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于密碼學(xué)技術(shù),具體涉及一種耦合自觸發(fā)元胞自動(dòng)機(jī)加解密方法。
【背景技術(shù)】
[0002] 元胞自動(dòng)機(jī)是時(shí)間、空間和狀態(tài)均離散的動(dòng)力學(xué)系統(tǒng),其固有組成單元的簡單性、 單元之間作用的局部性和信息處理的高度并行性,并表現(xiàn)出復(fù)雜的全局性等特點(diǎn)使得元胞 自動(dòng)機(jī)適合于密碼學(xué)中的應(yīng)用。
[0003] 元胞自動(dòng)機(jī)(Cellular Automata,CA)是一時(shí)間和空間均離散的動(dòng)力學(xué)系統(tǒng),散布 在規(guī)則網(wǎng)格中的每一個(gè)元胞取有限的離散狀態(tài),遵循同樣的作用規(guī)則,依據(jù)確定的局部規(guī) 則作同步更新,大量元胞通過簡單的相互作用而構(gòu)成動(dòng)態(tài)系統(tǒng)的演化。元胞自動(dòng)機(jī)最早是 由von Neumann提出的,目的是為研究具有自我復(fù)制特性和通用計(jì)算能力的元胞自動(dòng)機(jī)。元 胞自動(dòng)機(jī)致力于抽象出復(fù)雜現(xiàn)象的基本動(dòng)力學(xué)模型,通過計(jì)算機(jī)完成實(shí)驗(yàn)和接受檢驗(yàn)。元 胞自動(dòng)開放性的、動(dòng)態(tài)的、不可預(yù)測(cè)的特點(diǎn)在不同領(lǐng)域中得到了充分的體現(xiàn),為復(fù)雜系統(tǒng)提 供了新的思路和實(shí)驗(yàn)手段。
[0004] 元胞自動(dòng)機(jī)在對(duì)稱密碼方面的應(yīng)用,國內(nèi)外也有相關(guān)的研究。Oliveira等人在考 慮雙向觸發(fā)元胞自動(dòng)機(jī)的情況下,建立基于雙向觸發(fā)元胞自動(dòng)機(jī)的加密算法,該算法增加 了更多的擾亂,提高了算法的加密強(qiáng)度。但在規(guī)則半徑相同時(shí),雙觸發(fā)元胞自動(dòng)機(jī)的數(shù)量較 少,要想提高加密強(qiáng)度,就要增大規(guī)則半徑,這增加了計(jì)算量。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種耦合自觸發(fā)元胞自動(dòng)機(jī)加解密方法,該方法具有加密 強(qiáng)度高,節(jié)省計(jì)算內(nèi)存需求和計(jì)算時(shí)間的優(yōu)點(diǎn)。
[0006] 實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案為:
[0007] 耦合自觸發(fā)元胞自動(dòng)機(jī)加密算法,步驟如下:
[0008] 1)令j為加密輪數(shù),j = 0 ;
[0009] 2)明文(字符串)經(jīng)編碼器編碼成三列長度都為N的二進(jìn)制位串A、B和C,用隨 機(jī)源生成6r位隨機(jī)數(shù);隨機(jī)數(shù)的引入使得單個(gè)誤差在明文中傳播過程較為明顯;
[0010] 3)在每列明文編碼的后面分別添加2r位,同時(shí)分別存儲(chǔ)在三個(gè)寄存器札、私和R3 中;
[0011] 4)將指針k置于最右側(cè)元胞,即令k = N+2r-l ;
[0012] 5)在計(jì)算指針k對(duì)應(yīng)的元胞的先導(dǎo)狀態(tài)值時(shí),根據(jù)該元胞當(dāng)前狀態(tài)值和寄存器 RpRjPR3中的值,從規(guī)則表中的相應(yīng)規(guī)則得到元胞的先導(dǎo)狀態(tài)值(規(guī)則表即加密過程中用 到的觸發(fā)規(guī)則);
[0013] 6)同時(shí)讓寄存器&、私和R 3右移一位;
[0014] 7)將況,gl,Ii1)的值分別置入&、1? 2和R3的左側(cè),然后指針A移一位((f D gl,Ii1) 為加密密鑰);
[0015] 8)重復(fù) 4)5)6),直到 k = 0。
[0016] 9) j = j+1,判斷j是否等于加密輪數(shù)n,若相等則加密結(jié)束,否則返回步驟2);
[0017] 耦合自觸發(fā)元胞自動(dòng)機(jī)解密算法,步驟如下:
[0018] 1)令j為解密輪數(shù),j = 0 ;
[0019] 2)解密過程為加密的逆過程,在解密過程中,首先生成一個(gè)解密指針p,p指向最 左端元胞,令N為最右端數(shù)據(jù),則k = N-2r ;
[0020] 3)根據(jù)解密密鑰確定況,gl,Ii1)的值(此時(shí)比, gl,Ii1)為解密密鑰);
[0021] 4)把這個(gè)值賦給p當(dāng)前指向的元胞,并把p值加1 ;
[0022] 5)重復(fù)3) 4),直到p = k,完成一輪迭代;
[0023] 6) j = j+Ι,判斷j是否等于解密輪數(shù)n,若相等則解密結(jié)束,否則返回步驟2)。
[0024] 本發(fā)明與現(xiàn)有加解密技術(shù)相比,其顯著優(yōu)點(diǎn)為:(1)本發(fā)明提出的耦合自觸發(fā)元 胞自動(dòng)機(jī)能在不增加計(jì)算量的同時(shí),利用耦合來有效提高加密強(qiáng)度。耦合自觸發(fā)元胞自動(dòng) 機(jī)具有簡單的局部作用、內(nèi)在的并行性、適合于硬件實(shí)現(xiàn)等特點(diǎn),因而可以快速完成加密解 密;(2)算法在不增加系統(tǒng)復(fù)雜度的情況下,極大地提高了密鑰空間。在較小的規(guī)則半徑 下,能有效地阻止蠻力攻擊;(3)加密時(shí)隨機(jī)數(shù)的引入使得攻擊者不可能獲得唯一的明文 密文對(duì),從而有效地抵御了已知明文攻擊和選擇密文攻擊,同時(shí)具有抵御差分分析的能力。
【附圖說明】
[0025] 圖1加解密算法結(jié)構(gòu)圖。
[0026] 圖2元胞自動(dòng)機(jī)的構(gòu)成圖。
[0027] 圖3 -維、鄰居半徑r = 2的元胞自動(dòng)機(jī)模型圖。
[0028] 圖4鄰居元胞圖。
[0029] 圖5耦合元胞自動(dòng)機(jī)模型圖。
[0030] 圖6基本元胞的計(jì)算框圖。
[0031] 圖7耦合自觸發(fā)元胞自動(dòng)機(jī)模型圖。
[0032] 圖8自觸發(fā)規(guī)則的構(gòu)造流程圖。
[0033] 圖9耦合自觸發(fā)元胞自動(dòng)機(jī)數(shù)據(jù)加密過程圖。
[0034] 圖10耦合自觸發(fā)元胞自動(dòng)機(jī)數(shù)據(jù)加密流程圖。
[0035] 圖11耦合自觸發(fā)元胞自動(dòng)機(jī)數(shù)據(jù)解密過程圖。
[0036] 圖12耦合自觸發(fā)元胞自動(dòng)機(jī)數(shù)據(jù)解密流程圖。
【具體實(shí)施方式】
[0037] 下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
[0038] 根據(jù)耦合和自觸發(fā)元胞自動(dòng)機(jī)的性質(zhì),采用相互作用的η個(gè)元胞自動(dòng)機(jī)作為一個(gè) 整體,構(gòu)造出耦合觸發(fā)元胞自動(dòng)機(jī)加解密系統(tǒng)。仿真實(shí)驗(yàn)結(jié)果表明,該算法極大地提高了密 鑰空間,有效地阻止了蠻力攻擊;同時(shí),加密時(shí)隨機(jī)數(shù)的引入使得攻擊者不可能獲得唯一的 明文密文對(duì),從而有效地抵御了已知明文攻擊和選擇密文攻擊。耦合自觸發(fā)元胞自動(dòng)機(jī)密 碼系統(tǒng)采用耦合自觸發(fā)元胞自動(dòng)機(jī)觸發(fā)規(guī)則作為密鑰,將明文編碼作為初始狀態(tài),通過反 向演化獲得的狀態(tài)來構(gòu)成密文;接收方收到密文后,正向迭代這個(gè)不可逆CA系統(tǒng),經(jīng)過與 加密時(shí)相同的演化,恢復(fù)出明文。
[0039] 元胞自動(dòng)機(jī)是一時(shí)間和空間均離散的動(dòng)力學(xué)系統(tǒng),分布在η維(η通常為1,2,3) 規(guī)則網(wǎng)格中的每一個(gè)元胞取有限的離散狀態(tài),遵循同樣的作用規(guī)則,依據(jù)確定的局部規(guī)則 作同步更新,大量元胞通過簡單的相互作用而構(gòu)成動(dòng)態(tài)系統(tǒng)的演化。元胞自動(dòng)機(jī)由元胞、元 胞空間、鄰居及轉(zhuǎn)換規(guī)則四部分組成,元胞自動(dòng)機(jī)可以視為由一個(gè)元胞空間和定義于該空 間的變換函數(shù)所組成(如圖1)。元胞單元與它周圍的其他元胞單元之間的相互影響的關(guān) 系,被稱為鄰居關(guān)系(如圖2)。二維元胞自動(dòng)機(jī)的鄰居定義較為復(fù)雜,圖3為Von Neumann 型和梯型兩種鄰居模型。圖3中深色元胞為中心元胞,淺色元胞為鄰居。
[0040] 耦合元胞自動(dòng)機(jī)是指兩個(gè)元胞自動(dòng)機(jī)的狀態(tài)相互影響,相互作用,共同決定CA系 統(tǒng)的演化狀態(tài),即某個(gè)元胞自動(dòng)機(jī)的下一時(shí)刻狀態(tài)除了取決于自身現(xiàn)有的狀態(tài)外還與其它 元胞自動(dòng)機(jī)的現(xiàn)有狀態(tài)相關(guān)(如圖4)。
[0041] 兩個(gè)簡單元胞自動(dòng)機(jī)A和B,它們具有相同的有限狀態(tài)集S,其構(gòu)形表示如下:
[0048] 針對(duì)元胞空間中的基本元胞建立狀態(tài)轉(zhuǎn)移函數(shù)。圖5給出了基本元胞在元胞自動(dòng) 機(jī)模型中的計(jì)算框圖。
[0049] 耦合自觸發(fā)元胞自動(dòng)機(jī)是一類特殊的元胞自動(dòng)機(jī),它由η個(gè)元胞自動(dòng)機(jī)作為一個(gè) 集團(tuán),每個(gè)元胞自動(dòng)機(jī)具有相同的狀態(tài)集S,根據(jù)各自的規(guī)則進(jìn)行演化。耦合是指η個(gè)元胞 自動(dòng)機(jī)相互作用,相互影響成為一個(gè)元胞自動(dòng)機(jī)組。觸發(fā)是指如果改變?cè)詣?dòng)機(jī)中的一 個(gè)元胞的狀態(tài),則其演化的狀態(tài)也隨之改變的性質(zhì)(如圖6)。耦合觸發(fā)元胞自動(dòng)機(jī)數(shù)據(jù)加 密過程如圖8所示,耦合觸發(fā)元胞自動(dòng)機(jī)數(shù)據(jù)加密流程圖如圖9所示。耦合觸發(fā)元胞自動(dòng) 機(jī)數(shù)據(jù)解密過程如圖10所示,耦合觸發(fā)元胞自動(dòng)機(jī)數(shù)據(jù)解密流程圖如