基于奇幻方的數(shù)字圖像加密算法
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,大量的個人信息和公眾信息在網(wǎng)上傳播,信息的安全性問題成為人們關(guān)注的熱點(diǎn),而在信息安全中圖像的安全尤為重要,那么,接下來,我就給大家介紹一種基于奇幻方的數(shù)字圖像文件加密算法。
一、幻方
幻方是最古老和最流行的數(shù)字游戲之一,一個n階幻方是由整數(shù)1,2,3...n2按下述方式組成的n×n方陣:該方陣每行、每列、每條對角線上的整數(shù)和都等于同一個數(shù)S,這個數(shù)叫幻方和。
這里介紹de laLoubere在17世紀(jì)發(fā)現(xiàn)的一種構(gòu)造n階幻方的方法(n為奇數(shù))。首先將1放在最上一行的中間,其后的整數(shù)沿著自左下至右上這條對角線按照自然順序放置,但同時須做如下調(diào)整:
1、在到達(dá)頂行時,下一個整數(shù)要放在底行,所放位置就是把底行當(dāng)作頂行上邊一行時該數(shù)應(yīng)該放置的位置。
2、當(dāng)?shù)竭_(dá)最右邊一行時,下一個整數(shù)要放在最左邊的一列上,所放位置就是把最左邊一列當(dāng)作最右邊那列的右邊的列時該數(shù)應(yīng)該放置的位置。
3、當(dāng)要放置的位置上已經(jīng)添好了整數(shù),或上一個整數(shù)已經(jīng)放在了幻方的右上角時,則當(dāng)前要擺放的整數(shù)將放在緊挨上述位置的下方。
二、基于奇幻方的數(shù)字圖像加密算法的原理
對于幻方An×n,將A中元素值為1的元素移到元素值為2的位置,將2移到元素值為3的位置,……將n×n移到1的位置,即該數(shù)組是n×n循環(huán)的。由此得到一個置換P,使A變成Ai,設(shè)A1=P(A)。設(shè)圖像為In×n,將I中象素與A中的元素按行列一一對應(yīng),運(yùn)用變換P,隨著A變換成A1,I變成I1,從而得到置亂變換后的圖像。
三、基于奇幻方的數(shù)字圖像加密算法實(shí)現(xiàn)步驟
Step1設(shè)原圖像象的數(shù)字矩陣為In×n,取幻方An×n,使An×n與In×n的元素按行列一一對應(yīng)。
Step2對幻方An×n的任意元素a[i][j],i=0,1,…n-1,j=0,1,…n-1;若其值不為1,則a[i][j]=a[i][j]-1;否則a[i][j]=nxn。
Step3記置換后的矩陣為A1,且A1=EA,對I作操作A1=EI,其中E為置換矩陣。
Step4重復(fù)Step2,Step3,經(jīng)過n×n次操作后,Inxn=EnxnI=I,恢復(fù)為原圖像。
四、基于奇幻方的數(shù)字圖像加密算法效果分析
根據(jù)幻方生成加密算法和觀察發(fā)現(xiàn),眾多元素按自然順序從自左下至右上可連成眾多條對角線,若將幻方矩陣看成一個正方形,它可被這些對角線填充。另外,該正方形可被分割成6大塊,如圖。

故幻方組成可概括為:按A1,A2,A3,A1的順序循環(huán),當(dāng)A區(qū)域填充完后,對B區(qū)域按B1,B2,B3,B1的順序循環(huán)填充,即B<A。將這六塊作調(diào)整移位,可得到下圖。
該平行四邊形的邊由鋸齒狀構(gòu)成;此時該平行四邊形不以長度計量,以元素點(diǎn)計量.將它卷成圓柱(以AB為圓周),此時可看成1,2,……n×n環(huán)繞并組成柱面(類似于螺絲),如圖所示。

故作變換P可看成將此柱旋轉(zhuǎn),后又按原分割線還原成平行四邊形,再調(diào)整移位,還原成正方形,圖像發(fā)生置亂變換。
由于柱面旋轉(zhuǎn)后,6大塊被原來的分割線分割,故P變換不可能把圖像變成點(diǎn)亂,而是分割成若干小塊再重新組合,是塊亂,加密效果不佳。
五、改進(jìn)的加密算法
單獨(dú)的象素點(diǎn)不含有任何信息,只有當(dāng)眾多象素點(diǎn)聚在一起時才有信息可言。上述幻方變換雖然移動了象素點(diǎn),但相鄰的點(diǎn)的距離沒有發(fā)生變化,作變換P只是塊的移動、分割和重組。
對于一幅圖像,它的每一個象素點(diǎn)都含有信息,當(dāng)隔點(diǎn)取走一半的象素點(diǎn)后,圖像的信息也損失一半。
根據(jù)奇幻方的組成特點(diǎn),將其中的元素按奇偶分成兩列,對圖像矩陣作同樣分割,可得到兩幅分圖,每個分圖的信息量為總圖的一半。此時,對變換P作改進(jìn):對奇數(shù)列1,3,……n×n,將1移到3,3移到5,……,n×n移到1;對偶數(shù)列2,4,…,n×(n-1),將n×(n-1)移到n×(n-3),將2移到n×(n-1),將4移到2,……;分別得到新的變換Pi,Pj。當(dāng)完成上述兩變換后,相鄰象素點(diǎn)的距離發(fā)生變化,此時,幻方變換由塊亂變成點(diǎn)亂(i,j不必相等)。算法實(shí)現(xiàn)步驟如下:
Stepl設(shè)原圖象的數(shù)字矩陣為In×n,取幻方An×n,In×n與An×n中的元素按行列一一對應(yīng)。
Step2對幻方An×n的任意元素a[i][j],i=0,1,…n-1;j=0,1,…n-1;若其值不為1,則a[i][j]=a[i][j]-1;否則a[i][j]=nxn。
Step3對幻方An×n的任意其值為偶數(shù)的元素a[i][j],i=0,1,…n-1;j=0,1,…n-1;若其值不為n×(n-1),則a[i][j]=a[i][j]+2;否則蛔a[i][j]=2。
Step4重復(fù)Step2后次,重復(fù)Step3 1次,記置換后的矩陣為Akl,且Akl=EklA,對I作操作Ikl=EklI,其中Ekl為變換矩陣。
六、基于奇幻方的數(shù)字圖像加密算法安全性分析
上述改進(jìn)的幻方加密法是將圖像分成2個等信息量的分圖,各自作幻方置亂變換,再合成1副圖,即成為密圖??梢娭灰幸环謭D沒有還原,總圖就不會還原,兩幅分圖各能置換出n2-1/2和n2+1/2種圖像來,且兩個變換之間沒有聯(lián)系,總圖變換后可得到n2-4/4種圖,比簡單幻方加密所得的圖像個數(shù)(n2個)增加。當(dāng)n大時,要用計算機(jī)做出所有種類的圖并非易事。
基于幻方置亂變換對圖像進(jìn)行加密,當(dāng)和其他理論相結(jié)合時,如和分形也能得到好而實(shí)用的加密方法。
小知識之置亂
所謂“置亂”,就是將圖像的信息次序打亂,將a像素移動到b像素的位置上,b像素移動到c像素的位置上……使其變換成雜亂無章難以辨認(rèn)的圖像。










