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

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

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










