圖像文件雙重加密算法

圖像文件雙重加密算法是一種基于傅立葉變換和Fibonacci變換的雙重圖像文件加密方法,相對(duì)于傳統(tǒng)的傅立葉變換加密方法,雙重加密方法的安全性更高,計(jì)算量更大。但由于Fibonacci變換是時(shí)域上的置亂,計(jì)算量比其他頻域變換少,這種雙重加密算法在安全性和計(jì)算量方面求得一個(gè)平衡。

一、傅立葉變換和Fibonacci變換

1、傅立葉變換

傅立葉變換是一種把信號(hào)從時(shí)域變換到頻域的變換方法,對(duì)于二維的圖像信號(hào),傅立葉變換公式為:

圖像文件雙重加密算法

2、Fibonacci變換

(1)Fibonacci數(shù)列

如果定義F1_=1,F(xiàn)2 =1,E=Fn_i+Fn-2,n≥3,則數(shù)列{Fn}就是Fibonacci數(shù)列。

(2)Fibonacci變換

設(shè)Fn和Fn+1,是兩個(gè)Fibonacci數(shù)列中相鄰的數(shù),則Fibonacci變換為:

圖像文件雙重加密算法

其中k=0,1,2,…,F(xiàn)n+1-1。

利用Fibonacci變換置亂一維信號(hào)后,可以使這個(gè)信號(hào)能量均勻分布在時(shí)域內(nèi),形成雜亂無章的信號(hào),達(dá)到加密的目的。Fibonacci還具有周期性,即對(duì)一個(gè)信號(hào)做相同的
Fibonacci變換N次后可以精確的恢復(fù)出原信號(hào)。

圖像文件雙重加密算法

二、圖像文件的雙重加密算法原理

1、圖像文件加密方法

基于改進(jìn)的傅立葉變換圖像文件加密方法和Fibonacci變換的雙重圖像文件加密算法步驟如下:

Step1:對(duì)圖像文件進(jìn)行改進(jìn)的傅立葉變換加密

(1)首先對(duì)一幅原始圖像IMG進(jìn)行二維傅立葉變換,并提取出其幅值信息A和相位信息θ。

(2)與被授權(quán)接收?qǐng)D像的部門約定一幅與原始圖像相同大小的均勻分布的矩陣圖像作為密鑰圖像,對(duì)這個(gè)圖像做二維傅立葉變換,提取出幅值信息F,用這個(gè)幅值信息F調(diào)制原始圖像的相位信息θ得到加密后的相位信息φ,公式為:

φ=θ*F[2-3]。

(3)計(jì)算a*exp(jφ)的逆傅立葉變換得到B,完成圖像文件加密過程。

Step2:對(duì)圖像文件進(jìn)行Fibonacci變換加密

(1)把step1的最終運(yùn)行結(jié)果B做Z字型掃描重組成一維數(shù)組,在Fibonacci數(shù)列中選擇一個(gè)比數(shù)組大小稍大一些的數(shù)作為Fn+1,例如,數(shù)組大小為1×10000,則可以選擇Fn+1=10946,數(shù)組大小不匹配的最后946個(gè)采樣點(diǎn)用0來填補(bǔ),得到數(shù)組C。在Fibonacci數(shù)列中選擇與Fn+1相鄰的較小的數(shù)作為E。

(2)按照式(3)進(jìn)行Fibonacci變換得到Sk(k=0,1,2,…,F(xiàn)n+1-1),把一維數(shù)組C按照Sk的順序重新排列得到D,D數(shù)組的值就是經(jīng)過Fibonacci變換置亂后的信息,也是要在網(wǎng)絡(luò)中傳輸?shù)募用苄畔ⅰ?/p>

2、解密方法

當(dāng)網(wǎng)絡(luò)中傳輸?shù)募用苄畔⒌竭_(dá)被授權(quán)的接收方時(shí),需要對(duì)加密信息進(jìn)行解密才能還原出原始圖像被人讀取。解密過程與加密過程相對(duì)應(yīng),分為兩步進(jìn)行,過程如下:

Step1: Fibonacci變換解密

(1)根據(jù)加密時(shí)所選擇的Fn+1的值查出對(duì)應(yīng)的周期N,把接收到的信息D’做N-I次Fibonacci變換得到C’,這時(shí)Fn+1的取值應(yīng)該與加密時(shí)的取值相同。

(2)去除加密時(shí)在數(shù)組尾部添加的值為0的元素后,重新排列成二維矩陣B’,F(xiàn)ibonacci變換解密過程完成。

Step2:改進(jìn)的傅立葉變換解密

(1)把B’進(jìn)行傅立葉變換,提取其幅值信息A’和相位信息φ’,對(duì)與圖像發(fā)送方約定好的密鑰圖像進(jìn)行傅立葉變換,提取其幅值信息F’,計(jì)算θ’=φ’/F',得到還原了的相
位信息θ’。

(2)計(jì)算A’*exp(jθ’)的逆傅立葉變換得到IMG’,完成圖像文件解密過程得到原始圖像。

三、實(shí)驗(yàn)結(jié)果

在圖像文件雙重加密算法的計(jì)算機(jī)模擬中,選擇了大小為256×256的灰度圖像作為原始圖像,轉(zhuǎn)換為一維數(shù)組后,數(shù)組的大小為1×65536。因此選擇Fibonacci數(shù)列中的75025為Fn+1,那么比75025較小一些的Fibonacci數(shù)列中的數(shù)46368就是Fn的值。從表1中可以推出此時(shí)Fibonacci變換的周期N=4。

根據(jù)前面介紹的圖像的雙重加密算法原理,對(duì)這幅原始圖像做了一系列變換運(yùn)算之后,得出的實(shí)驗(yàn)結(jié)果如下:

圖像文件雙重加密算法

圖1中,圖(a)是待加密的原始圖像,大小為256×256。圖(b)是圖像雙重加密算法中的第一重加密一一傅立葉變換加密后的圖像,加密過程中的密鑰是由計(jì)算機(jī)隨機(jī)產(chǎn)生的
均勻分布的大小為256×256的矩陣。圖(c)顯示了圖像矩陣經(jīng)過第一重加密后,矩陣排列成的一維數(shù)組經(jīng)過Fibonacci變換后的置亂數(shù)組前500個(gè)元素值??梢钥闯?,
數(shù)組經(jīng)過Fibonacci置亂后,能量值呈均勻分布。圖(d)顯示的是圖(c)排列成的矩陣的圖像顯示。圖(e)是被授權(quán)的接收方最終解密得到的圖像。

實(shí)驗(yàn)證明,該圖像文件雙重加密算法可以成功的實(shí)現(xiàn)圖像文件的加密解密過程,并取得了較好的加密、解密效果和運(yùn)行速度,雙重加密也保證了加密算法的高安全性。

小知識(shí)之Fibonacci

又譯費(fèi)波拿契數(shù)、斐波那契數(shù)列、費(fèi)氏數(shù)列、黃金分割數(shù)列。