日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

          歡迎訪問 生活随笔!

          生活随笔

          當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

          编程问答

          阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二)

          發布時間:2023/12/10 编程问答 41 豆豆
          生活随笔 收集整理的這篇文章主要介紹了 阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

          前文我們介紹了基于Arnold置亂的數字圖像加密算法的兩種圖像置亂變換,今天我們介紹的是另外三種圖像置亂變換:基于騎士巡游的圖像置亂變換、基于Arnold變換的數字圖像置亂和基于仿射變換的置亂變換。

          一、基于騎士巡游的圖像置亂變換

          所謂騎士巡游,就如同象棋一樣,給出一塊具有n2個格子的n×n棋盤,一位騎士(knight)按國際象棋規則移動,放在初始坐標為(x0,y0)的格子里,騎士巡游問題(Knight-tour Problem)就是要求尋找一種方案使之過每個格子一次,且僅一次。該問題可以較自然地推廣到n×m棋盤。一個9×9棋盤的騎士巡游路線如下面的矩陣T所示,稱其為巡游矩陣,其中1表示騎士巡游的起點,t(i, j)的值表示其實第t(i, j)步巡游到i行j列。

          騎士巡游變換:對于圖像A={a(i, j)}nxm,用巡游矩陣T={t(i, j)}nxm作置亂變換,得到圖像B。其變換方法如下:將A與T按行列作一一對應,將A中與T中位置1對應(下簡稱對應位置)的像素灰度值(或R、G、B分量值)移到對應位置2,將對應位置2的像素灰度值移到對應位置3,......以此類推,最后將對應nxm位置的像素灰度值移動對應位置1,就得到了按T置亂后的圖像B。這種按騎士巡游路徑進行置亂的變換,簡稱為騎士巡游變換。

          按騎士巡游變換對圖像作置亂,不僅可以隱藏圖像細節,而且可以使用圖像總的形象保持不變,用騎士巡游變換來作圖像的隱藏,其保密度是比較高的。密鑰個數大于Hilber曲線、Peano方法、E-曲線、幻方置亂變換的密鑰個數。通過騎士巡游起點和終點的選取、巡游方向的變化以及挖洞的位置和數量的確定來構成不同的密鑰,它既適合單密鑰體制,所以其保密度較高。

          騎士巡游交換具有以下優點:

          (1)適用于高和寬不同的圖像,而幻方變化僅適用于高和寬相同的圖像;

          (2)置亂方法靈活,可通過編程來控制巡游的起點、終點以及巡游的方向,還可控制一些點不巡游(挖洞),從而得到不同的置亂方法;

          (3)不僅能隱藏圖像的細節,而且特別能隱藏圖像中的文字信息,也可應用于其他計算機文件的加密。騎士巡游變換同樣具有周期性,其變換周期就是n2。

          二、基于Arnold變換的數字圖像置亂

          這是對一個一般的二維可逆保面積映射加了取正整數的限制,這種變換具有拉伸和折疊的性質,經變換后原來相鄰的亮點(i, j)和(i, j+1)經幾次迭代后就不再相鄰,這樣圖像經迭代若干次后就變得不可辨認,從而達到加密的效果。當|A|=+1時,變換后的圖像保持面積不變。由于這是一種雙射而且圖像是一個有限點集,所以反復變換必然能夠恢復到原來的位置,即變換具有周期性,從而對加密圖像只需繼續變換相應的次數就能對圖像解密。若P滿足一定條件,此變換具有周期性,其周期與圖像大小和內容沒有直接聯系。Arnold變換實際上是一種點的位置移動,且這種變換是一一對應的。Arnold變換僅有4個參數,用戶數據加密尚嫌太少。

          所以變換的周期T是使下式成立的最小自然數m:Am(mod N)=E,其中E為單位矩陣。這樣就很容易通過編程求出變換的周期。

          A作為加密矩陣應具有以下特點:映射是單的,滿的。即:保持圖像面積的不變性。

          加密因子a,b,c,d都是整數,因為圖像中作為離散的點都是取整數的。

          變換具有周期性或可逆,以保證加密后可以解密。

          三、基于仿射變換的置亂變換

          仿射變換是幾何中感到一種常見變換,它可以分解成:運動變換、斜對稱變換、相似變換、壓縮(拉伸)變換、正交變換、剪移等變換的組合,其矩陣形式:

          從數據加密角度考慮,仿射變換的參數有6個,比Arnold變換增加了兩個,從密鑰角度出發,增加了大量的密鑰。

          雖然對于平面仿射變換由三對對應點代入后就可完全確定,但由于目的是要它作圖像的置亂。因此對仿射變換還有特殊的要求,即:要尋找恰當的系統數使得變換是區域{1,2...N}到自身的單映射和滿映射。我們可以從仿射變換的特點出發,從而可求得滿足要求的一系列解。求得的系數可作為圖像置亂加密的密鑰。

          定義1:上式是仿射變換的必要條件是:ad-bc=+1.

          證明:根據仿射變換的定義,變換前后的圖像面積保持不變,即圖像所在區域的幾何面積不變,因此ad-bc=+1。

          作為數字圖像加密的仿射變換是不容易求出的,需要很強的技巧。下面是三種交換:

          和Arnold變換相類似,這是一種二維可逆保面積映射加了一定的限制條件,這種變換具有拉伸和折疊的性質,經變換后原來相鄰的兩點(i, j)和(i, j+1)經幾次迭代后就不再相鄰,這樣副圖像經迭代若干次后就變得不可辨認,從而達到加密的效果。由于這是一種雙射而且圖像是一個有限點集,所以反復變換必然能夠恢復到原來的位置,即變換具有周期性,從而對加密圖像只需繼續變換相應的次數就能對圖像解密。根據仿射變換的定義,容易得到下面的性質:

          性質1:仿射變換的積仍是仿射變換。

          性質2:仿射變換的和不是仿射變換。

          性質3:仿射變換的逆一定存在,且仍是仿射變換。

          仿射變換用于圖像置亂有較好的效果。在經過一定的迭代置亂變換后,可將圖像的各種灰度值均勻的分布到圖像區域中,從而能較好的隱藏原圖像的信息。另外由于這種仿射變換是雙射且圖像是由有限個點組成的,所以經過一定的迭代次數后能夠得到原圖像。

          也可以利用仿射變換的逆變換對圖像進行加密,這就增加了一種新的加密算法,而且它和仿射變換具有相似的性質。

          仿射變換避免了取模運算,從而運算速度快,它的逆交換也具有簡潔的解析表達式,使得解密過程無需進行周期次數的迭代。該新變換只需進行十幾次的迭代過程就可以使圖像完全置亂,因此它即可作為圖像加密的變換方法,另一方面,從信息隱藏的角度考慮,圖像置亂變換作為信息隱藏的預處理,如置亂后再進行隱藏,Arnold變換在進行迭代置亂時,有較強的紋理特征,而仿射變換使得圖像置亂后,其中灰度值均勻的分布在圖像所在的區域,減少了置亂圖像的紋理特征,從而提供了信息的安全性。

          總結

          以上是生活随笔為你收集整理的阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

          如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。