分形數(shù)據(jù)文件加密算法

由于分形圖形的不規(guī)則性,我們提出了一種分形數(shù)據(jù)文件加密算法,該加密算法用于數(shù)據(jù)文件加密,使非法用戶很難破解,大大增強(qiáng)了信息的安全性。

一、分形加密算法

分形幾何是非線性科學(xué)研究中十分活躍的一個(gè)分支,它的研究對(duì)象是自然界和非線性系統(tǒng)中出現(xiàn)的不光滑和不規(guī)則的幾何形體。正是由于它的非線形,在密碼學(xué)中就有了很好的用處,正如我們所熟悉的DES加密需要8個(gè)S盒來(lái)完成加密的非線形一樣。我們拿形成維數(shù)n=3的席爾賓斯基墊片作為加密模型,則加密的結(jié)果如下所示:

分形數(shù)據(jù)文件加密算法

詳細(xì)過(guò)程為:

將密鑰表示成二進(jìn)制形式,并從左至右分為三組,第一組由密鑰的第1~4位組成,第二組由密鑰的第5-16位組成,其余的位數(shù)劃人第三組。我們定義第一組為選擇數(shù)據(jù)文件加密所用的模型,第二組為分形的形成維數(shù),第三組中的各位作為控制位控制子圖形的旋轉(zhuǎn),0代表子圖形順時(shí)針旋轉(zhuǎn)一次,1代表順時(shí)針旋轉(zhuǎn)2次。

加密密鑰為0x10034567,要加密的明文為0x12345678,那么密鑰中第一組為0001,假設(shè)0001代表加密模型是席爾賓斯基墊片模型。第二組為000000000011,即形成維數(shù)為3,第三組為0100010101100111,用于控制子圖形旋轉(zhuǎn)。則用于加密的分形圖形如圖1所示。

分形數(shù)據(jù)文件加密算法

將密鑰第三組填入模型中,得到密鑰控制圖,生成過(guò)程為:將二進(jìn)制密鑰第三組的每一位按照從上到下從左到右的順序放在各頂角朝上的小三角形中,例如將上圖按照每個(gè)小三角形的高的長(zhǎng)度作為一個(gè)等級(jí)從上到下分為5級(jí),第0級(jí)到第1級(jí)之間有一個(gè)頂角朗上的小三角形,填入密鑰0,第1級(jí)到第2級(jí)之間有兩個(gè)三角形,由于在同一級(jí)則按照從左到右的順序,因此兩個(gè)三角形分別填入密鑰值1、0,第2級(jí)到第3級(jí)之間有兩個(gè)頂角胡上的三角形,得到密鑰值0、0,第3級(jí)到第4級(jí)之間有4個(gè)頂角朗上的三角形,得到密鑰值為1010。生成的控制圖如圖2所示。

分形數(shù)據(jù)文件加密算法

明文的二進(jìn)制為0001 0010 0011 0100 0101 0110_01 11 1000,將明文填入模型中,得到明文位置圖,生成過(guò)程為:將明文二進(jìn)制的每一位按照從上到下從左到右的順序放在頂角朗上的小三角形的三條邊上。依然按照以上的規(guī)則將圖1分為5級(jí), 第0級(jí)和第1級(jí)之間有兩條邊,得到的值為00,第1級(jí)上有一條邊得到的值為0,第1級(jí)到第2級(jí)之間有4條邊,得到的值為1001,依此類(lèi)推。生成的圖形如圖3所示。以下從上到下從左到右的規(guī)則都與此相同,故不再詳細(xì)說(shuō)明。

分形數(shù)據(jù)文件加密算法

將模型中子圖形按照密鑰控制規(guī)則旋轉(zhuǎn),得到密鑰位置圖,控制規(guī)則為:在圖2中如果三角形中二進(jìn)制數(shù)為0的則將該三角形順時(shí)針旋轉(zhuǎn)1次,如果為1則將該三角形順時(shí)針旋轉(zhuǎn)2次。生成的密文位置圖如圖4所示。這樣一次加密過(guò)程完成。

分形數(shù)據(jù)文件加密算法

由上可知,每次加密能夠加密的二進(jìn)制位數(shù)為維數(shù)的三次方(如果模型為1的話),如果明文二進(jìn)制位數(shù)大于一次能加密的位數(shù),則需要繼續(xù)加密,繼續(xù)加密時(shí),密釧控制位循環(huán)使用,如上次用到密釧控制位的前9位0100 0101 0,接下來(lái)使用密釧的后7位1 10 01 1 。前2位01,依此循環(huán)使用密鑰,則密釧控制圖如圖5所示。

分形數(shù)據(jù)文件加密算法

剩下明文在席爾賓斯基墊片模型中所處位置為圖6所示,明文經(jīng)過(guò)密釧控制后在席爾賓斯基墊片模型中的位置如圖7所示。當(dāng)剩下明文不足一次能加密的位數(shù),使三角形的邊上數(shù)據(jù)不夠,比如圖6所示,有一個(gè)三角形中只有兩條邊上有數(shù)據(jù),則該三角形在加密過(guò)程中不作旋轉(zhuǎn)。

分形數(shù)據(jù)文件加密算法

加密完成,密文按照從上到下從左到右的規(guī)則取出,得到的密文為,0000 0001 1100 1100 0010 111001 10 1 100即OxOlcc2d6c。

解密的時(shí)候0代表三角形旋轉(zhuǎn)2次,1代表1次,因?yàn)槿切涡D(zhuǎn)三次就還原了,即解密過(guò)程完成,如是其他模型,加密規(guī)則同席爾賓斯基墊片模型類(lèi)似。

對(duì)于所有模型有如下規(guī)則:

1)將密鑰表示成二進(jìn)制形式,并從左至右分為三組,第一組由密鑰的第1~4位組成,第二組由密鑰的第5-16位組成,其余的位數(shù)劃入第三組。我們定義第一組為選擇數(shù)據(jù)加密所用的模型,第二組為分形的形成維數(shù),第三組中的各位作為控制位控制子圖形的旋轉(zhuǎn)。

2)設(shè)選擇好的模型,當(dāng)形成維數(shù)為1的時(shí)候,有m條邊,如席爾賓斯基墊片模型的m值為3,席爾賓斯基地毯模型的m值為4。那么當(dāng)形成維數(shù)為n時(shí),選擇子圖的原則是:選擇模型中與初始圖形相似且在黑色區(qū)域(即不是由于形成分形圖形而被挖去的部分,如下面兩個(gè)圖的黑色區(qū)域)的子圖。該子圖的個(gè)數(shù)為((m-1)2-1)n-1。如席爾賓斯基墊片模型當(dāng)n=3時(shí)候的個(gè)數(shù)為9個(gè),席爾賓斯基地毯模型當(dāng)n=3時(shí)候的個(gè)數(shù)為64個(gè)。

分形數(shù)據(jù)文件加密算法

3)旋轉(zhuǎn)控制位數(shù)的確定。如席爾賓斯基墊片模型只需要一位,即0和1。但是席爾賓斯基地毯則需要兩位,即00,01,1 0,1 1。因此旋轉(zhuǎn)位數(shù)的選擇依據(jù)為使(m--1)≤2k(k>0)成立時(shí)最小的k值,即為所需要的位數(shù)。

4)旋轉(zhuǎn)次數(shù)的確定。設(shè)控制位數(shù)為k,則此時(shí)該控制位對(duì)應(yīng)的十進(jìn)制值為w,則加密時(shí)候旋轉(zhuǎn)次數(shù)c=w%m+1,解密時(shí)旋轉(zhuǎn)次數(shù)為c=m-l-w%m。

5)明文填入位置的選取準(zhǔn)則,按照選擇好的子圖形中邊排列的從上到下從左到右的順序,依次填入,取出密文的時(shí)候也按照這個(gè)規(guī)則。如圖1所示,填入的順序?yàn)閍,b,c,d,e,f,g,h,i等。整個(gè)加密流程圖如圖8所示:

分形數(shù)據(jù)文件加密算法
解密中明文輸入部分換成密文輸入,同時(shí)模型旋轉(zhuǎn)次數(shù)按照規(guī)則4)中做出轉(zhuǎn)化。

整個(gè)加密流程圖如圖8所示:

解密中明文輸入部分換成密文輸入,同時(shí)模型旋轉(zhuǎn)次數(shù)按照規(guī)則4)中做出轉(zhuǎn)化。

該加密算法在大數(shù)據(jù)文件需要加密解密的情況下使用,如網(wǎng)絡(luò)傳輸數(shù)據(jù)包的加密和解密,企業(yè)中數(shù)據(jù)需要保密等,成功使用過(guò)des或3des的地方都能適用此算法。由于加密解密得到的明文密文的數(shù)據(jù)位數(shù)相同,且在擁有密鑰的前提下算法可逆,因此不能用作簽名算法。

二、安全性分析

該加密方法的安全性在于:

1)第1-4位選擇圖形,即0000 - 1111,共16種圖髟可以選擇,本文只介紹了最簡(jiǎn)單的子圖形為三角形的模型,其它子圖形如正方形,星形等,如果錯(cuò)誤選暈圖形則無(wú)法解出。

2)第5-16位為維數(shù),過(guò)多過(guò)少的維數(shù)都會(huì)解出錯(cuò)誤,同時(shí)維數(shù)多能夠保證數(shù)據(jù)加密后密文位置具有一定的隨機(jī)性,能夠抵抗差分和線性攻擊。

3)旋轉(zhuǎn)的次數(shù)是根據(jù)密鑰變化改變而改變,而且密鑰循環(huán)使用,相同的明文可以加密成不同的密文,方止選擇明文攻擊。

4)未用到任何數(shù)學(xué)算法,因此根據(jù)數(shù)學(xué)公式無(wú)法作為破解的工具。

5)由于很好的非線形以及無(wú)規(guī)則性,很好的保護(hù)加密明文。=

6)只有窮舉法才有機(jī)會(huì)攻擊,而理論上窮舉法對(duì)所有的加密方法都有效,但是由于密鑰位數(shù)選擇的任意性,因此只要密鑰在8字節(jié)(64位)以上,窮舉需要2的64次方次,在時(shí)間上已經(jīng)是不太可能。

現(xiàn)在,分形理論已應(yīng)用到了各個(gè)領(lǐng)域,人們已提出了自然分形、時(shí)間分形、空間分形、社會(huì)分形、思維分形等概念。分形理論的提出,轉(zhuǎn)變了人們傳統(tǒng)的思維方法,認(rèn)識(shí)到整體與部分之間的關(guān)系可由線性進(jìn)展到非線性的階段,且它與系統(tǒng)論還能共同揭示整體與部分之間的多層次、多視角、多維度的關(guān)聯(lián)方式。

本文運(yùn)用分形圖形對(duì)數(shù)據(jù)文件加密,將分形運(yùn)用到密碼學(xué)中,得出一種新的加密算法,并詳細(xì)的分析了該算法的實(shí)現(xiàn)過(guò)程;而利用分形圖的加密技術(shù)和解密技術(shù),目的就是為了改變以前在信息安全技術(shù)中古板的加密方式,力求實(shí)現(xiàn)信息保密中的多樣性,開(kāi)拓分形理論的應(yīng)用領(lǐng)域。

小知識(shí)之分形

分形,具有以非整數(shù)維形式充填空間的形態(tài)特征。分形(Fractal)一詞,是芒德勃羅創(chuàng)造出來(lái)的,其原意具有不規(guī)則、支離破碎等意義。1973年,芒德勃羅(B.B.Mandelbrot)在法蘭西學(xué)院講課時(shí),首次提出了分維和分形的設(shè)想。