阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二)
前文我們介紹了基于Arnold置亂的數(shù)字圖像加密算法的兩種圖像置亂變換,今天我們介紹的是另外三種圖像置亂變換:基于騎士巡游的圖像置亂變換、基于Arnold變換的數(shù)字圖像置亂和基于仿射變換的置亂變換。
一、基于騎士巡游的圖像置亂變換
所謂騎士巡游,就如同象棋一樣,給出一塊具有n2個(gè)格子的n×n棋盤,一位騎士(knight)按國(guó)際象棋規(guī)則移動(dòng),放在初始坐標(biāo)為(x0,y0)的格子里,騎士巡游問(wèn)題(Knight-tour Problem)就是要求尋找一種方案使之過(guò)每個(gè)格子一次,且僅一次。該問(wèn)題可以較自然地推廣到n×m棋盤。一個(gè)9×9棋盤的騎士巡游路線如下面的矩陣T所示,稱其為巡游矩陣,其中1表示騎士巡游的起點(diǎn),t(i, j)的值表示其實(shí)第t(i, j)步巡游到i行j列。
騎士巡游變換:對(duì)于圖像A={a(i, j)}nxm,用巡游矩陣T={t(i, j)}nxm作置亂變換,得到圖像B。其變換方法如下:將A與T按行列作一一對(duì)應(yīng),將A中與T中位置1對(duì)應(yīng)(下簡(jiǎn)稱對(duì)應(yīng)位置)的像素灰度值(或R、G、B分量值)移到對(duì)應(yīng)位置2,將對(duì)應(yīng)位置2的像素灰度值移到對(duì)應(yīng)位置3,......以此類推,最后將對(duì)應(yīng)nxm位置的像素灰度值移動(dòng)對(duì)應(yīng)位置1,就得到了按T置亂后的圖像B。這種按騎士巡游路徑進(jìn)行置亂的變換,簡(jiǎn)稱為騎士巡游變換。
按騎士巡游變換對(duì)圖像作置亂,不僅可以隱藏圖像細(xì)節(jié),而且可以使用圖像總的形象保持不變,用騎士巡游變換來(lái)作圖像的隱藏,其保密度是比較高的。密鑰個(gè)數(shù)大于Hilber曲線、Peano方法、E-曲線、幻方置亂變換的密鑰個(gè)數(shù)。通過(guò)騎士巡游起點(diǎn)和終點(diǎn)的選取、巡游方向的變化以及挖洞的位置和數(shù)量的確定來(lái)構(gòu)成不同的密鑰,它既適合單密鑰體制,所以其保密度較高。
騎士巡游交換具有以下優(yōu)點(diǎn):
(1)適用于高和寬不同的圖像,而幻方變化僅適用于高和寬相同的圖像;
(2)置亂方法靈活,可通過(guò)編程來(lái)控制巡游的起點(diǎn)、終點(diǎn)以及巡游的方向,還可控制一些點(diǎn)不巡游(挖洞),從而得到不同的置亂方法;
(3)不僅能隱藏圖像的細(xì)節(jié),而且特別能隱藏圖像中的文字信息,也可應(yīng)用于其他計(jì)算機(jī)文件的加密。騎士巡游變換同樣具有周期性,其變換周期就是n2。
二、基于Arnold變換的數(shù)字圖像置亂
這是對(duì)一個(gè)一般的二維可逆保面積映射加了取正整數(shù)的限制,這種變換具有拉伸和折疊的性質(zhì),經(jīng)變換后原來(lái)相鄰的亮點(diǎn)(i, j)和(i, j+1)經(jīng)幾次迭代后就不再相鄰,這樣圖像經(jīng)迭代若干次后就變得不可辨認(rèn),從而達(dá)到加密的效果。當(dāng)|A|=+1時(shí),變換后的圖像保持面積不變。由于這是一種雙射而且圖像是一個(gè)有限點(diǎn)集,所以反復(fù)變換必然能夠恢復(fù)到原來(lái)的位置,即變換具有周期性,從而對(duì)加密圖像只需繼續(xù)變換相應(yīng)的次數(shù)就能對(duì)圖像解密。若P滿足一定條件,此變換具有周期性,其周期與圖像大小和內(nèi)容沒(méi)有直接聯(lián)系。Arnold變換實(shí)際上是一種點(diǎn)的位置移動(dòng),且這種變換是一一對(duì)應(yīng)的。Arnold變換僅有4個(gè)參數(shù),用戶數(shù)據(jù)加密尚嫌太少。
所以變換的周期T是使下式成立的最小自然數(shù)m:Am(mod N)=E,其中E為單位矩陣。這樣就很容易通過(guò)編程求出變換的周期。
A作為加密矩陣應(yīng)具有以下特點(diǎn):映射是單的,滿的。即:保持圖像面積的不變性。
加密因子a,b,c,d都是整數(shù),因?yàn)閳D像中作為離散的點(diǎn)都是取整數(shù)的。
變換具有周期性或可逆,以保證加密后可以解密。
三、基于仿射變換的置亂變換
仿射變換是幾何中感到一種常見(jiàn)變換,它可以分解成:運(yùn)動(dòng)變換、斜對(duì)稱變換、相似變換、壓縮(拉伸)變換、正交變換、剪移等變換的組合,其矩陣形式:
從數(shù)據(jù)加密角度考慮,仿射變換的參數(shù)有6個(gè),比Arnold變換增加了兩個(gè),從密鑰角度出發(fā),增加了大量的密鑰。
雖然對(duì)于平面仿射變換由三對(duì)對(duì)應(yīng)點(diǎn)代入后就可完全確定,但由于目的是要它作圖像的置亂。因此對(duì)仿射變換還有特殊的要求,即:要尋找恰當(dāng)?shù)南到y(tǒng)數(shù)使得變換是區(qū)域{1,2...N}到自身的單映射和滿映射。我們可以從仿射變換的特點(diǎn)出發(fā),從而可求得滿足要求的一系列解。求得的系數(shù)可作為圖像置亂加密的密鑰。
定義1:上式是仿射變換的必要條件是:ad-bc=+1.
證明:根據(jù)仿射變換的定義,變換前后的圖像面積保持不變,即圖像所在區(qū)域的幾何面積不變,因此ad-bc=+1。
作為數(shù)字圖像加密的仿射變換是不容易求出的,需要很強(qiáng)的技巧。下面是三種交換:
和Arnold變換相類似,這是一種二維可逆保面積映射加了一定的限制條件,這種變換具有拉伸和折疊的性質(zhì),經(jīng)變換后原來(lái)相鄰的兩點(diǎn)(i, j)和(i, j+1)經(jīng)幾次迭代后就不再相鄰,這樣副圖像經(jīng)迭代若干次后就變得不可辨認(rèn),從而達(dá)到加密的效果。由于這是一種雙射而且圖像是一個(gè)有限點(diǎn)集,所以反復(fù)變換必然能夠恢復(fù)到原來(lái)的位置,即變換具有周期性,從而對(duì)加密圖像只需繼續(xù)變換相應(yīng)的次數(shù)就能對(duì)圖像解密。根據(jù)仿射變換的定義,容易得到下面的性質(zhì):
性質(zhì)1:仿射變換的積仍是仿射變換。
性質(zhì)2:仿射變換的和不是仿射變換。
性質(zhì)3:仿射變換的逆一定存在,且仍是仿射變換。
仿射變換用于圖像置亂有較好的效果。在經(jīng)過(guò)一定的迭代置亂變換后,可將圖像的各種灰度值均勻的分布到圖像區(qū)域中,從而能較好的隱藏原圖像的信息。另外由于這種仿射變換是雙射且圖像是由有限個(gè)點(diǎn)組成的,所以經(jīng)過(guò)一定的迭代次數(shù)后能夠得到原圖像。
也可以利用仿射變換的逆變換對(duì)圖像進(jìn)行加密,這就增加了一種新的加密算法,而且它和仿射變換具有相似的性質(zhì)。
仿射變換避免了取模運(yùn)算,從而運(yùn)算速度快,它的逆交換也具有簡(jiǎn)潔的解析表達(dá)式,使得解密過(guò)程無(wú)需進(jìn)行周期次數(shù)的迭代。該新變換只需進(jìn)行十幾次的迭代過(guò)程就可以使圖像完全置亂,因此它即可作為圖像加密的變換方法,另一方面,從信息隱藏的角度考慮,圖像置亂變換作為信息隱藏的預(yù)處理,如置亂后再進(jìn)行隱藏,Arnold變換在進(jìn)行迭代置亂時(shí),有較強(qiáng)的紋理特征,而仿射變換使得圖像置亂后,其中灰度值均勻的分布在圖像所在的區(qū)域,減少了置亂圖像的紋理特征,從而提供了信息的安全性。
總結(jié)
以上是生活随笔為你收集整理的阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 李宏毅:1 天搞懂深度学习,我总结了 3
- 下一篇: BZOJ 3994 [SDOI2015]