arnold圖像加密演算法
❶ 幫我看下這個Matlab編程哪錯了,一直顯示Not enough input arguments.
看看這個程序函數main()的
%的主要思想是選擇從兩個圖像信息,然後炒成一個單一的形象。
%這可以從多個被加密(2 * n個)圖像,按照上述思路,獲得圖像的一半的數量(n個)。
%隱藏圖像所獲得的自適應演算法中,並能獲得(N-1)個圖像。
%有關第(n-1)圖像Arnold變換件,(N-1)作為關鍵件的圖像,此外,還有迭代的密鑰號,擾碼規則,阿諾德加密規則
%阿諾德的主要缺點是較大的周期,在程序運行的時間很長,我的電腦需要8分鍾,此外,阿諾德能夠處理方陣
%圖像置亂加密演算法很多這樣的程序中使用的擾碼加密演算法只有一個辦法只有提出的想法多圖像加密,也可以後期做了很多工作。
%閱讀四個圖像
F1 = imread('lena.gif');
F2 = imread('monkey.gif');
F3 = imread('house.gif');
F4 = imread('cameraman.gif');圖像爭先恐後
pic1_luan = luan(F1,F2)的
%;
pic2_luan = luan(F3,F4);
%的顯示失真的圖像
pic1_luan = UINT8(pic1_luan);
身影,imshow(pic1_luan),標題(「PIC1 luan」)的
pic2_luan = UINT8(pic2_luan);
身影,imshow(pic2_luan),標題(「PIC2 luan」),點擊看詳細%兩個炒圖像隱藏
X1 =輸入('請輸入一個混合迭代參數:');
pic1_hide =隱藏(pic1_luan,X1,pic2_luan);圖像被隱藏Arnold置亂加密
diedai1 =輸入('輸入一個迭代的參數:')後
%
pic1_jiami =阿諾德(pic1_hide,diedai1,0);
%顯示加密圖像
pic1_jiami = UINT8(pic1_jiami);
身影,imshow(pic1_jiami),標題(「PIC1佳米')的
diedai2 =輸入('請輸入一個迭代的參數:')
pic2_jiami =阿諾德(pic2_luan,diedai2,0);
pic2_jiami = UINT8(pic2_jiami);
身影,imshow(pic2_jiami),標題(「PIC2佳米')的
%解密圖像
pic1_jiemi =阿諾德(pic1_jiami,diedai1,1);
pic2_jiemi =阿諾德(pic2_jiami,diedai2,1);隱藏圖像
pic1_huifu =惠福(pic1_jiemi,X1,pic2_jiemi)後
%的回收率;
%爭先恐後逆過程,
恢復後[image1的,IMAGE2] = ni_luan(pic1_huifu)獲得的圖像;
[一系列其他,為image4] = ni_luan(pic2_jiemi);
%顯示每個圖像
F1 = UINT8(F1);
身影,imshow(F1),標題('F1');
身影,imhist(F1),標題(「F1直方圖');
image1的= UINT8(image1的);
身影,imshow(image1的),標題('image1的');
身影,imhist(image1的),標題('image1的直方圖');
F2 = UINT8(F2);
身影,imshow(F2),標題('F2');
身影,imhist(F2),標題(「F2的直方圖');
IMAGE2 = UINT8(IMAGE2);
身影,imshow(IMAGE2),標題(「IMAGE2');
身影,imhist(IMAGE2),標題(「直方圖IMAGE2');
F3 = UINT8(F3);
身影,imshow(F3),標題('F3');
身影,imhist(F3),標題(「F3的直方圖');
一系列其他= UINT8(一系列其他);
身影,imshow(一系列其他),標題(「一系列其他');
身影,imhist(一系列其他),標題(「直方圖的一系列其他');
F4 = UINT8(F4);
身影,imshow(F4),標題('F4');
身影,imhist(F4),標題(「F4的直方圖');
為image4 = UINT8(為image4);
身影,imshow(為image4),標題(「為image4');
身影,imhist(為image4),標題(「為image4直方圖」
❷ 彩色圖像如何進行Arnold變換
看下這個程序function main()
%主要思想是從兩幅圖像中選取信息,然後置亂成一幅圖像。
%這樣可以從要加密的多幅(2*n幅)圖像中,按照上述思想,得到一半數目(n幅)的圖像。
%對得到的圖像進行自適應演算法的隱藏,又可以得到(n-1)幅的圖像。
%對(n-1)幅的圖像進行Arnold變換,得到(n-1)幅的圖像作為密鑰,此外,密鑰還有迭代次數,置亂規則,Arnold加密規則
%主要缺點是Arnold的周期較大,程序的運行的時間長些,我的電腦需要8分鍾,另外,Arnold只能處理方陣
%圖像的置亂加密演算法很多,本程序中用到的置亂加密演算法只是其中一種方法,僅僅提出一個多幅圖像加密的思想,後期還有許多的工作要做。
%讀入四幅圖像
F1 = imread('lena.gif');
F2 = imread('monkey.gif');
F3 = imread('house.gif');
F4 = imread('cameraman.gif');
%對圖像的置亂
pic1_luan = luan(F1,F2);
pic2_luan = luan(F3,F4);
%顯示置亂後的圖像
pic1_luan = uint8(pic1_luan);
figure,imshow(pic1_luan),title('pic1 luan')
pic2_luan = uint8(pic2_luan);
figure,imshow(pic2_luan),title('pic2 luan')
%將兩幅置亂圖像進行隱藏
X1 = input('請輸入一個混合迭代參數:');
pic1_hide = hide(pic1_luan,X1,pic2_luan);
%對隱藏後的圖像進行Arnold置亂加密
diedai1 = input('請輸入一個迭代的參數:')
pic1_jiami = Arnold(pic1_hide,diedai1,0);
%顯示加密後的圖像
pic1_jiami = uint8(pic1_jiami);
figure,imshow(pic1_jiami),title('pic1 jiami')
diedai2 = input('請輸入一個迭代的參數:')
pic2_jiami = Arnold(pic2_luan,diedai2,0);
pic2_jiami = uint8(pic2_jiami);
figure,imshow(pic2_jiami),title('pic2 jiami')
%解密圖像
pic1_jiemi = Arnold(pic1_jiami,diedai1,1);
pic2_jiemi = Arnold(pic2_jiami,diedai2,1);
%恢復隱藏後的圖像
pic1_huifu = huifu(pic1_jiemi,X1,pic2_jiemi);
%置亂的逆處理,得到恢復後的圖像
[image1,image2] = ni_luan(pic1_huifu);
[image3,image4] = ni_luan(pic2_jiemi);
%顯示各個圖像
F1 = uint8(F1);
figure,imshow(F1),title('F1');
figure,imhist(F1),title('F1的直方圖');
image1 = uint8(image1);
figure,imshow(image1),title('image1');
figure,imhist(image1),title('image1的直方圖');
F2 = uint8(F2);
figure,imshow(F2),title('F2');
figure,imhist(F2),title('F2的直方圖');
image2 = uint8(image2);
figure,imshow(image2),title('image2');
figure,imhist(image2),title('image2的直方圖');
F3 = uint8(F3);
figure,imshow(F3),title('F3');
figure,imhist(F3),title('F3的直方圖');
image3 = uint8(image3);
figure,imshow(image3),title('image3');
figure,imhist(image3),title('image3的直方圖');
F4 = uint8(F4);
figure,imshow(F4),title('F4');
figure,imhist(F4),title('F4的直方圖');
image4 = uint8(image4);
figure,imshow(image4),title('image4');
figure,imhist(image4),title('image4的直方圖'
❸ 主流的圖像置亂方法
一.背景/意義
背景:
圖像置亂是信息隱藏技術的一種,圖像置亂後圖像無法辨認,可以達到對圖像信息的隱藏和保護作用,圖像置亂的主要目的是將給定的圖像經過處理後變成雜亂無章的不可見圖像,其中按照圖像置亂的特點可以將圖像置亂劃分為空域置亂,頻域置亂和空頻域混合置亂,由於其數學原理相近,並沒有本質區別,因此在對圖像置亂進行分析時,可以只考慮空域上的圖像置亂
目前基於騎士巡遊變換的置亂演算法是目前比較流行的研究方向,在安全性上的性能優於其他演算法。
意義:
圖像置亂對信息起到了隱藏和保護作用,既可以對信息進行加密傳送,也可以作為圖像處理的預處理。任何的二進制比特,都可以採用相應的矩陣變換來進行處理,除了對信息的不可感知性和抗攻擊功能外,圖像置亂預處理的
目前圖像置亂的主流應用場景是圖像的預處理
二.騎士巡遊
在所有的置亂演算法中,騎士巡遊問題要求騎士在棋盤上使用馬步遍歷棋盤的格子且每個格子只路過一次,在對圖像進行騎士巡遊置亂時Niklaus Wirth在1976年的著作中使用了「回溯演算法」,其時間復雜度是n的四次方,雖然騎士巡遊演算法復雜度較高,但是其安全性高,可以應用在保密性要求高的圖像隱藏和保護演算法中,在對水印圖像進行預處理的過程中,水印的保密性要求僅僅要求水印處理後的不可見性。
三.對稱加密
四.混沌加密
五.Hilbert置亂
Hilbert置亂是在1890年由義大利數學家皮亞諾和赫爾伯特提出的填滿正方形單位的FASS曲線,其中一共存在八種置亂路徑,當圖像水印大小較為大時,例如16*16時,應用Hilbert置亂的置亂周期較大,置亂效果較好。Hilbert置亂具有較大的置亂周期,增強了圖像的安全性,但是由於其在某些置亂次數時重合度較高,且Hilbert演算法本身實現較為復雜,在本次演算法模擬時不予採用。
六.分塊分層
七.仿射變換理論(Arnold置換)
幾何仿射變換在圖像預處理和圖像隱藏應用較為廣泛,其變換的基本形式為:
幾何仿射變換要求變換是離散點域到其自身的單映射,變換是離散點域到其自身的滿映射
諸如Arnold變換的幾何仿射變換在圖像置亂中具有周期性,設最小周期為T,圖像經過周期T處理後回到原圖
常見的和幾何仿射相似的變換還有排列變換和斐波那契變換等變換,其中排列變換依舊具有周期性,其安全性不高
從對水印進行預處理的角度看,對水印的預處理的時間復雜度不應該太高,保密性也不應當太低。Arnold置換是一個周期固定的變換,進行適當的改進依舊可以讓傳統的Arnold置換具有較高的保密性和安全性,例如生成隨機二進制密鑰控制Arnold置亂的參數,可以讓圖像在進行置換時按照行列進行不同的置換
Arnold置換在進行迭代置亂時,具有較強的紋理特徵,這也是Arnold置換的缺點,通過明顯的紋理特徵可以看出Arnold置換的痕跡
Arnold置換的優點:其置換原理簡單,時間復雜度較低,根據柏森【基於信息隱藏的隱蔽通信技術研究】中的結論,幾何變換的置亂程度優於斐波那契變換的置亂程度。
八.生命游戲