版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、信息隱藏原理及應(yīng)用信息隱藏原理及應(yīng)用第第3 3章章 信息隱藏的預(yù)處理信息隱藏的預(yù)處理本章目標(biāo)本章目標(biāo)在讀完本章之后,你應(yīng)該能夠:在讀完本章之后,你應(yīng)該能夠:理解加密預(yù)處理技術(shù);理解加密預(yù)處理技術(shù);理解簡(jiǎn)單的圖像信息偽裝技術(shù);理解簡(jiǎn)單的圖像信息偽裝技術(shù);理解置亂和混沌。理解置亂和混沌。n信息隱藏的主要目標(biāo)就是將隱藏在偽裝載體中的秘密信息進(jìn)行傳輸,并信息隱藏的主要目標(biāo)就是將隱藏在偽裝載體中的秘密信息進(jìn)行傳輸,并且不知情的第三方不能覺察隱藏信息的存在。在信息隱藏的不可感知性、且不知情的第三方不能覺察隱藏信息的存在。在信息隱藏的不可感知性、容量及魯棒性這三個(gè)主要特性中,隱寫術(shù)更加強(qiáng)調(diào)不可感知性和容量,
2、容量及魯棒性這三個(gè)主要特性中,隱寫術(shù)更加強(qiáng)調(diào)不可感知性和容量,而數(shù)字水印更強(qiáng)調(diào)魯棒性。在隱寫術(shù)中,不可感知性占了首位,并且要而數(shù)字水印更強(qiáng)調(diào)魯棒性。在隱寫術(shù)中,不可感知性占了首位,并且要求能嵌入的秘密的容量很大,三者之間需要找到最佳平衡點(diǎn);信息隱藏求能嵌入的秘密的容量很大,三者之間需要找到最佳平衡點(diǎn);信息隱藏通常都依賴于嵌入載體類型。我們所使用的載體都是以圖像為載體。在通常都依賴于嵌入載體類型。我們所使用的載體都是以圖像為載體。在信息隱藏技術(shù)的應(yīng)用過程中,如果只是利用各種信息隱藏算法對(duì)秘密信信息隱藏技術(shù)的應(yīng)用過程中,如果只是利用各種信息隱藏算法對(duì)秘密信息進(jìn)行隱藏保密,那么攻擊者只要直接利用現(xiàn)有
3、的各種信息提取算法對(duì)息進(jìn)行隱藏保密,那么攻擊者只要直接利用現(xiàn)有的各種信息提取算法對(duì)被截獲信息進(jìn)行窮舉運(yùn)算,就很有可能提取出秘密信息。但如果我們?cè)诒唤孬@信息進(jìn)行窮舉運(yùn)算,就很有可能提取出秘密信息。但如果我們?cè)谛畔㈦[藏之前,先對(duì)秘密信息按照一定的運(yùn)算規(guī)則進(jìn)行處理,使其失去信息隱藏之前,先對(duì)秘密信息按照一定的運(yùn)算規(guī)則進(jìn)行處理,使其失去本身原有的面目,然后再將其隱藏到載體信息里面,這樣所要傳輸?shù)拿乇旧碓械拿婺?,然后再將其隱藏到載體信息里面,這樣所要傳輸?shù)拿孛苄畔⒕透踩?。即使攻擊者將秘密信息從載體中提取了出來,也無密信息就更安全了。即使攻擊者將秘密信息從載體中提取了出來,也無法分辨出經(jīng)過預(yù)處理后的
4、秘密信息到底隱藏著什么內(nèi)容,于是就認(rèn)為提法分辨出經(jīng)過預(yù)處理后的秘密信息到底隱藏著什么內(nèi)容,于是就認(rèn)為提取取/檢測(cè)算法錯(cuò)誤或該載體中不含有任何其他信息。所以,我們對(duì)秘密檢測(cè)算法錯(cuò)誤或該載體中不含有任何其他信息。所以,我們對(duì)秘密信息進(jìn)行預(yù)處理是很有必要的。這也是將來我們信息隱藏技術(shù)研究的一信息進(jìn)行預(yù)處理是很有必要的。這也是將來我們信息隱藏技術(shù)研究的一個(gè)重要方向。也就是說,我們?cè)陬A(yù)處理階段,要將秘密信息及載體進(jìn)行個(gè)重要方向。也就是說,我們?cè)陬A(yù)處理階段,要將秘密信息及載體進(jìn)行各種方案的處理,使隱藏的信息達(dá)到第一層安全。各種方案的處理,使隱藏的信息達(dá)到第一層安全。3.1 加密的預(yù)處理 在預(yù)處理部分,我們
5、必須借助密碼學(xué)的編碼在預(yù)處理部分,我們必須借助密碼學(xué)的編碼方法來實(shí)現(xiàn)秘密信息的預(yù)處理。在密碼體制中,方法來實(shí)現(xiàn)秘密信息的預(yù)處理。在密碼體制中,有許多經(jīng)典算法。在信息隱藏的處理中,我們有許多經(jīng)典算法。在信息隱藏的處理中,我們選擇比較適合的選擇比較適合的RC4RC4流密碼、置亂方案和混沌序流密碼、置亂方案和混沌序列方案等。在介紹流密碼之前,我們先介紹偽列方案等。在介紹流密碼之前,我們先介紹偽隨機(jī)數(shù)發(fā)生器。隨機(jī)數(shù)發(fā)生器。計(jì)算機(jī)所使用的隨機(jī)數(shù)是一種偽隨機(jī)數(shù),偽隨機(jī)數(shù)有多種生成算法,真正的計(jì)算機(jī)所使用的隨機(jī)數(shù)是一種偽隨機(jī)數(shù),偽隨機(jī)數(shù)有多種生成算法,真正的隨機(jī)數(shù)符合正態(tài)分布且其生成不能重現(xiàn)。但如果一個(gè)隨機(jī)
6、數(shù)能夠被重現(xiàn)的隨機(jī)數(shù)符合正態(tài)分布且其生成不能重現(xiàn)。但如果一個(gè)隨機(jī)數(shù)能夠被重現(xiàn)的機(jī)率很小,由此認(rèn)為其為偽隨機(jī)數(shù)。偽隨機(jī)數(shù)都是使用確定性的算法計(jì)算機(jī)率很小,由此認(rèn)為其為偽隨機(jī)數(shù)。偽隨機(jī)數(shù)都是使用確定性的算法計(jì)算出來的,它的隨機(jī)性可以用它的統(tǒng)計(jì)特性來衡量,其主要特征是每個(gè)數(shù)出出來的,它的隨機(jī)性可以用它的統(tǒng)計(jì)特性來衡量,其主要特征是每個(gè)數(shù)出現(xiàn)的現(xiàn)的可可能性和它出現(xiàn)時(shí)與數(shù)序中其他數(shù)的關(guān)系。能性和它出現(xiàn)時(shí)與數(shù)序中其他數(shù)的關(guān)系。因?yàn)槭莻坞S機(jī)數(shù),所以知道了隨機(jī)數(shù)算法和種子,總能夠知道隨機(jī)序列中任因?yàn)槭莻坞S機(jī)數(shù),所以知道了隨機(jī)數(shù)算法和種子,總能夠知道隨機(jī)序列中任何一個(gè)隨機(jī)數(shù)的值,所以一般來說種子的設(shè)置都是使用當(dāng)
7、前時(shí)間的毫秒數(shù),何一個(gè)隨機(jī)數(shù)的值,所以一般來說種子的設(shè)置都是使用當(dāng)前時(shí)間的毫秒數(shù),保證隨機(jī)數(shù)列的不重現(xiàn)性。對(duì)于偽隨機(jī)數(shù)發(fā)生器的定義為:它的輸出序列保證隨機(jī)數(shù)列的不重現(xiàn)性。對(duì)于偽隨機(jī)數(shù)發(fā)生器的定義為:它的輸出序列和真正的隨機(jī)數(shù)發(fā)生器通過多項(xiàng)式次數(shù)試驗(yàn)得到的輸出序列不可區(qū)分。并和真正的隨機(jī)數(shù)發(fā)生器通過多項(xiàng)式次數(shù)試驗(yàn)得到的輸出序列不可區(qū)分。并且任何單通路函數(shù)的發(fā)現(xiàn)都可以成為偽隨機(jī)數(shù)發(fā)生器。且任何單通路函數(shù)的發(fā)現(xiàn)都可以成為偽隨機(jī)數(shù)發(fā)生器。一些隨機(jī)函數(shù)是周期性的,雖然一般來說使用非周期性的函數(shù)要好得多,但一些隨機(jī)函數(shù)是周期性的,雖然一般來說使用非周期性的函數(shù)要好得多,但周期性的隨機(jī)函數(shù)往往快得多。有些周
8、期函數(shù)的系數(shù)可以調(diào)整,之后它們周期性的隨機(jī)函數(shù)往往快得多。有些周期函數(shù)的系數(shù)可以調(diào)整,之后它們的周期非常大,基本上與非周期的函數(shù)效果一樣。也有些函數(shù)是有盡止的,的周期非常大,基本上與非周期的函數(shù)效果一樣。也有些函數(shù)是有盡止的,用它們無法計(jì)算出無限多個(gè)偽隨機(jī)數(shù)。用它們無法計(jì)算出無限多個(gè)偽隨機(jī)數(shù)。3.1.1 偽隨機(jī)數(shù)發(fā)生器n到現(xiàn)在為止,產(chǎn)生偽隨機(jī)數(shù)最廣泛使用的方法是由到現(xiàn)在為止,產(chǎn)生偽隨機(jī)數(shù)最廣泛使用的方法是由Lehmer首先提出的算法,即線性擬合法。算法有首先提出的算法,即線性擬合法。算法有以下以下4個(gè)參數(shù):個(gè)參數(shù): m 模模 a 乘數(shù)乘數(shù) c 增量增量 X。 初始值或種子初始值或種子 隨機(jī)數(shù)序
9、列隨機(jī)數(shù)序列X0按下面的迭代方程獲得:按下面的迭代方程獲得: 若若m,a,c和和X。都是整數(shù),那么這種方法將產(chǎn)生一個(gè)。都是整數(shù),那么這種方法將產(chǎn)生一個(gè)隨機(jī)數(shù)序列,且每個(gè)隨機(jī)數(shù)都滿足隨機(jī)數(shù)序列,且每個(gè)隨機(jī)數(shù)都滿足0X。m。mcaXXnnmod)(1要設(shè)計(jì)隨機(jī)數(shù)發(fā)生器有三個(gè)標(biāo)準(zhǔn):設(shè)計(jì)隨機(jī)數(shù)發(fā)生器有三個(gè)標(biāo)準(zhǔn):n(1)生成函數(shù)應(yīng)是全周期的,即重復(fù)周期與)生成函數(shù)應(yīng)是全周期的,即重復(fù)周期與m相等,也就是說,相等,也就是說,0m之間的所有數(shù)都可之間的所有數(shù)都可能。能。n(2)產(chǎn)生的序列應(yīng)顯得隨機(jī),因?yàn)槭遣捎每硕ㄐ陨呻S機(jī)數(shù)的方法,所以是偽隨機(jī),但)產(chǎn)生的序列應(yīng)顯得隨機(jī),因?yàn)槭遣捎每硕ㄐ陨呻S機(jī)數(shù)的方法,所
10、以是偽隨機(jī),但是有多種統(tǒng)計(jì)測(cè)試方法可以評(píng)估其隨機(jī)程序。是有多種統(tǒng)計(jì)測(cè)試方法可以評(píng)估其隨機(jī)程序。n(3)生成函數(shù)可以用)生成函數(shù)可以用32位運(yùn)算器方便地實(shí)現(xiàn)。位運(yùn)算器方便地實(shí)現(xiàn)。n選擇合適的選擇合適的m,a,c可以同時(shí)滿足這三點(diǎn)??梢酝瑫r(shí)滿足這三點(diǎn)。n對(duì)于條件對(duì)于條件1,可以證明若,可以證明若m是素?cái)?shù)且是素?cái)?shù)且c=0,則,則a的某些取值可以使產(chǎn)生函數(shù)的周期為的某些取值可以使產(chǎn)生函數(shù)的周期為m-1,只是不能得到只是不能得到0這個(gè)數(shù)。對(duì)于這個(gè)數(shù)。對(duì)于32位算術(shù)運(yùn)算,位算術(shù)運(yùn)算,231-1就是一個(gè)常用的素?cái)?shù),這時(shí)的產(chǎn)生函就是一個(gè)常用的素?cái)?shù),這時(shí)的產(chǎn)生函數(shù)為:數(shù)為:na的可能取值超過的可能取值超過20億
11、個(gè),但滿足上述條件的只有其中一部分。億個(gè),但滿足上述條件的只有其中一部分。a取值為取值為75=16807時(shí),時(shí),可以滿足上述條件,用這個(gè)參數(shù)做成的偽隨機(jī)數(shù)發(fā)生器經(jīng)過了細(xì)致的測(cè)試,適用于統(tǒng)計(jì)和可以滿足上述條件,用這個(gè)參數(shù)做成的偽隨機(jī)數(shù)發(fā)生器經(jīng)過了細(xì)致的測(cè)試,適用于統(tǒng)計(jì)和仿真。若乘數(shù)和模選擇恰當(dāng),用線性擬合算法產(chǎn)生的隨機(jī)數(shù)序列的統(tǒng)計(jì)特性幾乎與真隨機(jī)仿真。若乘數(shù)和模選擇恰當(dāng),用線性擬合算法產(chǎn)生的隨機(jī)數(shù)序列的統(tǒng)計(jì)特性幾乎與真隨機(jī)數(shù)相當(dāng)。數(shù)相當(dāng)。n用密碼編碼學(xué)方法可以生成隨機(jī)數(shù)。例如,循環(huán)加密,用密碼編碼學(xué)方法可以生成隨機(jī)數(shù)。例如,循環(huán)加密,DES輸出反饋模式,另外常用的是輸出反饋模式,另外常用的是BB
12、S發(fā)生器,它是一種安全的偽隨機(jī)數(shù)發(fā)生器,發(fā)生器,它是一種安全的偽隨機(jī)數(shù)發(fā)生器,BBS是是Blum,Blum,Shub三個(gè)設(shè)計(jì)者三個(gè)設(shè)計(jì)者名字的縮寫,它產(chǎn)生的原理如下:首先,選擇名字的縮寫,它產(chǎn)生的原理如下:首先,選擇2個(gè)大素?cái)?shù)個(gè)大素?cái)?shù)p和和q,且要求:,且要求:1mod231)(1。aXXn)4(mod3 qp 例如,且例如,且7和和11是素?cái)?shù),是素?cái)?shù),n=p*q。 接著,選擇一個(gè)隨機(jī)種子數(shù)接著,選擇一個(gè)隨機(jī)種子數(shù)S,要求,要求S與與n互素,互素,即即S與與p或或q皆無公因子。然后皆無公因子。然后BBS按下列算法產(chǎn)按下列算法產(chǎn)生隨機(jī)數(shù)序列:生隨機(jī)數(shù)序列:nX0=S2mod nnFor i=1
13、to Xi=(Xi-1)2 mod nnBi=Xi mod 2 以以Bi作為隨機(jī)數(shù)的作為隨機(jī)數(shù)的1位。如果位。如果n=192649=383*503,種子,種子S=101355。那么。那么BBS生成的種子數(shù)如表生成的種子數(shù)如表3-1所示。所示。表3-1 BBS生成的種子數(shù):sXiBi0207491143135121776711397048048999205174051168064917456631869442091868940101770460BBS是密碼安全偽隨機(jī)數(shù)發(fā)生器,它能經(jīng)受連續(xù)位測(cè)試,是密碼安全偽隨機(jī)數(shù)發(fā)生器,它能經(jīng)受連續(xù)位測(cè)試,BBS的安全性基于對(duì)的安全性基于對(duì)n的因子分解的困難的因
14、子分解的困難性上。即給定性上。即給定n,我們不能確定它的素因子,我們不能確定它的素因子p和和q。 本節(jié)我們討論對(duì)稱流密碼本節(jié)我們討論對(duì)稱流密碼RC4,流密碼每產(chǎn)生加密一個(gè)字節(jié)的明文,流密碼每產(chǎn)生加密一個(gè)字節(jié)的明文,當(dāng)然流密碼也可被設(shè)計(jì)為每次操作一比特或者大于一個(gè)字節(jié)的單元。典型當(dāng)然流密碼也可被設(shè)計(jì)為每次操作一比特或者大于一個(gè)字節(jié)的單元。典型的流密碼結(jié)構(gòu)圖的流密碼結(jié)構(gòu)圖3.1所示。所示。3.1.2 RC4流密碼圖圖3.1 流密碼結(jié)構(gòu)圖流密碼結(jié)構(gòu)圖在該結(jié)構(gòu)中,密鑰輸入到一個(gè)偽隨機(jī)數(shù)發(fā)生器,該偽隨機(jī)數(shù)發(fā)生器在該結(jié)構(gòu)中,密鑰輸入到一個(gè)偽隨機(jī)數(shù)發(fā)生器,該偽隨機(jī)數(shù)發(fā)生器產(chǎn)生一串隨機(jī)的產(chǎn)生一串隨機(jī)的8 8比
15、特位,發(fā)生器的輸出稱為密鑰流,通過與同一比特位,發(fā)生器的輸出稱為密鑰流,通過與同一時(shí)刻一個(gè)字節(jié)的明文流進(jìn)行異或操作產(chǎn)生密文流。如果發(fā)生器產(chǎn)生時(shí)刻一個(gè)字節(jié)的明文流進(jìn)行異或操作產(chǎn)生密文流。如果發(fā)生器產(chǎn)生的下一個(gè)字節(jié)是的下一個(gè)字節(jié)是0110110001101100,而下一明文字節(jié)為,而下一明文字節(jié)為1100110011001100,則得出密,則得出密文字節(jié)為:文字節(jié)為:1010000010100000。解密時(shí)需要使用相同的隨機(jī)序列,即。解密時(shí)需要使用相同的隨機(jī)序列,即1010000010100000與與0110110001101100異或得出明文異或得出明文1100110011001100。在設(shè)計(jì)流
16、密碼時(shí)要考慮:n(1)加密序列的周期要長(zhǎng)。n(2)密鑰流應(yīng)盡可能接近于真正的隨機(jī)數(shù)流的特征。n(3)在流密碼結(jié)構(gòu)中隨機(jī)數(shù)發(fā)生器的輸出取決于輸入密鑰的值,應(yīng)該保證密鑰長(zhǎng)度不小于128位。下面我們?cè)敿?xì)介紹下面我們?cè)敿?xì)介紹RC4算法。算法。nRC是是Ron Rivest設(shè)計(jì)的一種流密碼,它是一個(gè)可變密鑰長(zhǎng)度,面向字節(jié)操設(shè)計(jì)的一種流密碼,它是一個(gè)可變密鑰長(zhǎng)度,面向字節(jié)操作的流密碼。該算法以隨機(jī)置換為基礎(chǔ),作的流密碼。該算法以隨機(jī)置換為基礎(chǔ),RC4是最廣泛使用的流密碼,它的是最廣泛使用的流密碼,它的算法描述如下:用從算法描述如下:用從1256個(gè)字節(jié)的可變長(zhǎng)度密鑰初始化一個(gè)個(gè)字節(jié)的可變長(zhǎng)度密鑰初始化一個(gè)2
17、56個(gè)字節(jié)個(gè)字節(jié)的狀態(tài)適量的狀態(tài)適量S,S的元素記為的元素記為S0,S1,S255,從始至終轉(zhuǎn)換后的,從始至終轉(zhuǎn)換后的S包含從包含從0255的所有的所有8比特?cái)?shù)。對(duì)于加密和解密,字節(jié)比特?cái)?shù)。對(duì)于加密和解密,字節(jié)k由由S中中255個(gè)元素個(gè)元素按一不定期方式選出一個(gè)元素而生成。每生成一個(gè)按一不定期方式選出一個(gè)元素而生成。每生成一個(gè)k值,值,S中的元素被重新中的元素被重新轉(zhuǎn)換一次。轉(zhuǎn)換一次。n初始化初始化S:n開始時(shí),開始時(shí),S中元素的值被置為按升序從中元素的值被置為按升序從0255,同時(shí)建立一個(gè)臨時(shí)矢量,同時(shí)建立一個(gè)臨時(shí)矢量T。如果密鑰如果密鑰K的長(zhǎng)度為的長(zhǎng)度為256字節(jié),則將字節(jié),則將K賦給賦給
18、T。否則,若密鑰長(zhǎng)度為。否則,若密鑰長(zhǎng)度為keylen字節(jié),則將字節(jié),則將K的值賦給的值賦給T的前的前keylen個(gè)元素,并循環(huán)重復(fù)用個(gè)元素,并循環(huán)重復(fù)用K的值賦給的值賦給T剩下剩下的元素,直到的元素,直到T的所有元素都被賦值。預(yù)操作可概括如下:的所有元素都被賦值。預(yù)操作可概括如下: /*Initialization*/ For i=0 to 255 do Si=i; Ti=ki mod keylen;n然后用然后用T產(chǎn)生產(chǎn)生S的初始置換。從的初始置換。從S0S255,對(duì)每個(gè),對(duì)每個(gè)Si,根據(jù)由,根據(jù)由Ti確定的方案,將確定的方案,將Si置換為置換為S中的另一字節(jié):中的另一字節(jié): /*Init
19、ial Permutation of S*/ j=0; For i=0 to 255 do j=(j+Si+Ti) mod 256; swap(Si, Sj);n因?yàn)閷?duì)因?yàn)閷?duì)S的操作僅是交換,所以唯一的改變就時(shí)置換。的操作僅是交換,所以唯一的改變就時(shí)置換。S仍然包含所有值為仍然包含所有值為0255的元素。的元素。n密鑰流的生成密鑰流的生成n矢量矢量S一旦完成初始化,輸入密鑰就不再被使用。密鑰流的生成是從一旦完成初始化,輸入密鑰就不再被使用。密鑰流的生成是從S0到到S255,對(duì)于每個(gè),對(duì)于每個(gè)Si,根據(jù)當(dāng)前根據(jù)當(dāng)前S的值,將的值,將Si與與S的另一字節(jié)置換。當(dāng)?shù)牧硪蛔止?jié)置換。當(dāng)S255完成置換后
20、,操作繼續(xù)重復(fù),從完成置換后,操作繼續(xù)重復(fù),從S0開始:開始:; while (true) i=(i+1) mod 256 j=(j+Si) mod 256; swap(Si, Sj); t=(Si+Sj) mod 256; k=St; /*Stream Generation */ i,j=0n加密中,將加密中,將k的值與下一明文字節(jié)異或;解密中,將的值與下一明文字節(jié)異或;解密中,將k的值與下一密文字節(jié)異或。的值與下一密文字節(jié)異或。n通過通過RC4算法,可以生成安全的加密密鑰,這樣就在預(yù)處理層中達(dá)到了秘密消息的安全性。算法,可以生成安全的加密密鑰,這樣就在預(yù)處理層中達(dá)到了秘密消息的安全性。n我
21、們要嵌入的信息是文本,可以通過上述算法對(duì)其加密。我們要嵌入的信息是文本,可以通過上述算法對(duì)其加密。3.2 簡(jiǎn)單的圖像信息偽裝技術(shù)另外如果要嵌入的對(duì)象是圖像,則對(duì)圖像的預(yù)處理的方式很多,這里介紹簡(jiǎn)單另外如果要嵌入的對(duì)象是圖像,則對(duì)圖像的預(yù)處理的方式很多,這里介紹簡(jiǎn)單的圖像偽裝技術(shù)與置亂方法。的圖像偽裝技術(shù)與置亂方法。這里我們分別以這里我們分別以.bmp.bmp和和.gif.gif格式的圖像為載體。對(duì)載體進(jìn)行偽裝。格式的圖像為載體。對(duì)載體進(jìn)行偽裝。BMPBMP文件包文件包括各種信息的頭記錄和帶著像素?cái)?shù)據(jù)的掃描線。對(duì)于此類文件,可以對(duì)像素?cái)?shù)括各種信息的頭記錄和帶著像素?cái)?shù)據(jù)的掃描線。對(duì)于此類文件,可以
22、對(duì)像素?cái)?shù)據(jù)掃描線加密,也可以對(duì)調(diào)色板加密來進(jìn)行信息偽裝。我們使用據(jù)掃描線加密,也可以對(duì)調(diào)色板加密來進(jìn)行信息偽裝。我們使用Cryptbmp.exeCryptbmp.exe對(duì)圖像進(jìn)行加密,如圖對(duì)圖像進(jìn)行加密,如圖3.23.2所示。所示。圖圖3.2 簡(jiǎn)單的圖像加密簡(jiǎn)單的圖像加密n在加密的過程中,種子數(shù)的選擇很重要。如果我們?cè)诩用艿倪^程中,種子數(shù)的選擇很重要。如果我們假設(shè)假設(shè)R是隨機(jī)的比特流順序,是隨機(jī)的比特流順序,A XOR B的結(jié)果與的結(jié)果與(A XOR R) XOR (B XOR R) 結(jié)果相同,但還原時(shí)得結(jié)果相同,但還原時(shí)得到的圖像是不同的。所以對(duì)于不同圖像一定要使用到的圖像是不同的。所以對(duì)于
23、不同圖像一定要使用不同的唯一密鑰。不同的唯一密鑰。n對(duì)于對(duì)于JPEG格式的文件,需要將加密的信息做為二進(jìn)格式的文件,需要將加密的信息做為二進(jìn)制信息流進(jìn)行保存。制信息流進(jìn)行保存。JPEG加密技術(shù)可以應(yīng)用于任何加密技術(shù)可以應(yīng)用于任何其他類型的圖像文件,比如其他類型的圖像文件,比如GIF。加密過的。加密過的JPEG文文件是一串二進(jìn)制比特流,只有在經(jīng)過解密以后才能件是一串二進(jìn)制比特流,只有在經(jīng)過解密以后才能使用。下面我們使用使用。下面我們使用crypjpeg.exe對(duì)對(duì)JPEG類型的類型的文件進(jìn)行簡(jiǎn)單的預(yù)處理,形成二進(jìn)制流。用一串隨文件進(jìn)行簡(jiǎn)單的預(yù)處理,形成二進(jìn)制流。用一串隨機(jī)產(chǎn)生的字符串異或的方法來
24、加密是個(gè)簡(jiǎn)單加密術(shù)機(jī)產(chǎn)生的字符串異或的方法來加密是個(gè)簡(jiǎn)單加密術(shù)的方法。這樣的技術(shù)也對(duì)其他類型的文件有效。的方法。這樣的技術(shù)也對(duì)其他類型的文件有效。3.3 置亂n信息隱藏技術(shù)可以將機(jī)密的圖像、語音或文字等信息進(jìn)行置亂加密,然后隱藏在信息隱藏技術(shù)可以將機(jī)密的圖像、語音或文字等信息進(jìn)行置亂加密,然后隱藏在可公開的載體圖像中,這樣使別人無法察覺秘密的存在,從而實(shí)現(xiàn)了隱寫,現(xiàn)有可公開的載體圖像中,這樣使別人無法察覺秘密的存在,從而實(shí)現(xiàn)了隱寫,現(xiàn)有的圖像置亂加密技術(shù)有:的圖像置亂加密技術(shù)有:Arnold變換、變換、Hilbert曲線曲線變換、變換、Fibonacci變換、幻方變換、幻方變換、變換、FASS
25、曲線、分形技術(shù)、幻方、正交拉丁方、騎士巡游、仿射變換、原根、曲線、分形技術(shù)、幻方、正交拉丁方、騎士巡游、仿射變換、原根、Gray碼變換的置亂方法,等等。數(shù)字圖像的置亂就是一種可逆變換,它是在二維碼變換的置亂方法,等等。數(shù)字圖像的置亂就是一種可逆變換,它是在二維的層次上,對(duì)數(shù)字圖像色彩、位置、頻率進(jìn)行擾亂來擾亂圖像,使置亂后的圖像的層次上,對(duì)數(shù)字圖像色彩、位置、頻率進(jìn)行擾亂來擾亂圖像,使置亂后的圖像雜亂無章,如果不知道置亂的類型,很難恢復(fù)出圖像。數(shù)字圖像置亂可以在數(shù)字雜亂無章,如果不知道置亂的類型,很難恢復(fù)出圖像。數(shù)字圖像置亂可以在數(shù)字圖像的空間域,如顏色空間、位置空間上進(jìn)行,也可以在數(shù)字圖像的
26、頻域上進(jìn)行,圖像的空間域,如顏色空間、位置空間上進(jìn)行,也可以在數(shù)字圖像的頻域上進(jìn)行,基于循環(huán)移位的數(shù)字圖像置亂,基于異或操作的數(shù)字圖像置亂,基于幻方的數(shù)字基于循環(huán)移位的數(shù)字圖像置亂,基于異或操作的數(shù)字圖像置亂,基于幻方的數(shù)字圖像置亂,基于空間填充曲線的數(shù)字圖像置亂,如弓形線、圖像置亂,基于空間填充曲線的數(shù)字圖像置亂,如弓形線、zigzag、螺旋曲線等,、螺旋曲線等,基于基于Arnold變換的數(shù)字圖像置亂等。下面我們介紹和分析各種置亂。變換的數(shù)字圖像置亂等。下面我們介紹和分析各種置亂。n信息隱藏技術(shù)可以將機(jī)密的圖像、語音或文字等信息進(jìn)行置亂加密,然后隱藏在信息隱藏技術(shù)可以將機(jī)密的圖像、語音或文字
27、等信息進(jìn)行置亂加密,然后隱藏在可公開的載體圖像中,這樣使別人無法察覺秘密的存在,從而實(shí)現(xiàn)了隱寫,現(xiàn)有可公開的載體圖像中,這樣使別人無法察覺秘密的存在,從而實(shí)現(xiàn)了隱寫,現(xiàn)有的圖像置亂加密技術(shù)有:的圖像置亂加密技術(shù)有:Arnold變換、變換、Hilbert曲線曲線變換、變換、Fibonacci變換、幻方變換、幻方變換,變換,F(xiàn)ASS曲線,分形技術(shù),幻方,正交拉丁方,騎士巡游,仿射變換,原根,曲線,分形技術(shù),幻方,正交拉丁方,騎士巡游,仿射變換,原根,Gray碼變換的置亂方法等等。數(shù)字圖像的置亂就是一種可逆變換,它是在二維的碼變換的置亂方法等等。數(shù)字圖像的置亂就是一種可逆變換,它是在二維的層次上,對(duì)
28、數(shù)字圖像色彩、位置、頻率進(jìn)行擾亂來擾亂圖像,使置亂后的圖像雜層次上,對(duì)數(shù)字圖像色彩、位置、頻率進(jìn)行擾亂來擾亂圖像,使置亂后的圖像雜亂無章,如果不知道置亂的類型,很難恢復(fù)出圖像。數(shù)字圖像置亂可以在數(shù)字圖亂無章,如果不知道置亂的類型,很難恢復(fù)出圖像。數(shù)字圖像置亂可以在數(shù)字圖像的空間域,如顏色空間、位置空間上進(jìn)行,也可以在數(shù)字圖像的頻域上進(jìn)行,像的空間域,如顏色空間、位置空間上進(jìn)行,也可以在數(shù)字圖像的頻域上進(jìn)行,基于循環(huán)移位的數(shù)字圖像置亂,基于異或操作的數(shù)字圖像置亂,基于幻方的數(shù)字基于循環(huán)移位的數(shù)字圖像置亂,基于異或操作的數(shù)字圖像置亂,基于幻方的數(shù)字圖像置亂,基于空間填充曲線的數(shù)字圖像置亂,如弓形線
29、、圖像置亂,基于空間填充曲線的數(shù)字圖像置亂,如弓形線、zigzag、螺旋曲線等,、螺旋曲線等,基于基于Arnold變換的數(shù)字圖像置亂等。下面分析和實(shí)現(xiàn)典型的置亂。變換的數(shù)字圖像置亂等。下面分析和實(shí)現(xiàn)典型的置亂。n1Arnold置亂置亂n首先分析基本首先分析基本Arnold變換:變換:n定義定義1:設(shè)有單位正方形上的點(diǎn),將點(diǎn)變成另一點(diǎn)的:設(shè)有單位正方形上的點(diǎn),將點(diǎn)變成另一點(diǎn)的變換,公式如變換,公式如3-1所示:所示:n (3-1)n此變換稱作二維此變換稱作二維Arnold變換,簡(jiǎn)稱變換,簡(jiǎn)稱Arnold變換。變換。n定義定義2:基本:基本Arnold變換推廣到變換推廣到n維維Arnold變換如公
30、變換如公式式3-2所示:所示:n (3-2)n根據(jù)根據(jù)n維維Arnold變換矩陣,推出兩種類型的矩陣,分變換矩陣,推出兩種類型的矩陣,分別稱為別稱為A型型n維維Arnold變換矩陣和變換矩陣和B型型n維維Arnold變換變換矩陣。矩陣。Nyxyxmod2111)(mod11.321.122111.111.2121Nxxxnnxxxnnn(1)A型型Arnold變換矩陣變換矩陣nmassey在其設(shè)計(jì)的在其設(shè)計(jì)的SAFER類型分組密碼中使用了一種類型分組密碼中使用了一種“偽隨機(jī)哈達(dá)馬偽隨機(jī)哈達(dá)馬達(dá)變換(達(dá)變換(pseduo-Hadamard transform)”,簡(jiǎn)稱,簡(jiǎn)稱PHT,其中,其中2-
31、PHT定定義如公式義如公式3-3所示:所示: (3-3)n并把并把2維維PHT推廣到推廣到n維,記為維,記為n-PHT,如公式,如公式3-4所示所示: (3-4) n為了和為了和2維維Arnold變換矩陣相一致,同時(shí)受變換矩陣相一致,同時(shí)受n-PHT啟發(fā),定義了如下的啟發(fā),定義了如下的n維維Arnold變換矩陣。變換矩陣。n定義定義3:A型型n維維Arnold變換矩陣為以下矩陣如公式變換矩陣為以下矩陣如公式3-5所示:所示: (3-5)11122H11.11112.111.11.12111.112nH21.11112.111.11.12111.111nRanA型n維Arnold變換矩陣有如下兩
32、個(gè)性質(zhì):n(1)A型Arnold變換矩陣的行列式恒為1。n(2)A型n維Arnold變換矩陣的可逆矩陣如公式3-6所示: (3-6)n(2)B型Arnold變換矩陣n定義4:對(duì)任意正整數(shù)N,B型n維Arnold變換矩陣為以下矩陣,如公式3-7所示: (3-7) n其中b為NZ上的可逆元。1111111.001.00.10100.01100.001nRan) 1()2(.21)2()2(.21.11.11.)(nbnbbbbnbnbbbbbbbbbbbbbbbRnn從定義可看出,公式3-6中定義的n維Arnold變換矩陣(即n維Arnold變換矩陣)是1=b時(shí)的B型n維Arnold變換矩陣。n下
33、面分析和改進(jìn)Arnold置亂加密算法。n設(shè)原圖像A為大小,假定像素位置為,按幾何變換置亂后的像素位置為,則幾何變換的置亂方法如下: (3-8)n其中,要求(Z是正整數(shù)集合),其解有很多,當(dāng)a=b=c=1,d=2時(shí),就是著名的Arnold變換,它是數(shù)學(xué)家Arnold在研究遍歷理論時(shí)提出的一種變換,俗稱描臉變換,原意為cat mapping,設(shè)想在平面單位正方形內(nèi)繪制一個(gè)貓臉圖像,通過此變換,貓臉圖像將由清晰變模糊,這就是Arnold變換。Arnold變換實(shí)際上是一種點(diǎn)的位置移動(dòng),且這種變換是一一對(duì)應(yīng)的。此外,這種變換可以迭代地做下去。類似的變換還有面包師變換。Arnold變換具有周期性,即當(dāng)?shù)?/p>
34、到某一步時(shí),將從新得到原始圖像。Dyson和Falk分析了離散Arnold變換的周期性,給出了Arnold變換的周期。n對(duì)于數(shù)字圖像來說,可以將其看成是一個(gè)函數(shù)在離散網(wǎng)格點(diǎn)處的采樣值,這樣就得到了一個(gè)表示圖像的矩陣。矩陣中元素的值是對(duì)應(yīng)點(diǎn)處的灰度值或RGB顏色分量值。位置移動(dòng)實(shí)際上是對(duì)應(yīng)點(diǎn)的灰度值或者RGB顏色值的移動(dòng),即將原來點(diǎn)處像素對(duì)應(yīng)的灰度值或RGB顏色值移動(dòng)至變換后的點(diǎn)處。如果對(duì)一個(gè)數(shù)字圖像迭代地使用離散化的Arnold變換,即將左端輸出的作為下一次Arnold變換的輸入,可以重復(fù)這個(gè)過程一直做下去,當(dāng)?shù)侥骋徊綍r(shí),如果出現(xiàn)的圖像符合對(duì)圖像的“雜亂無章”標(biāo)準(zhǔn)的要求,這即是一幅置亂了的
35、圖像。 )(mod,*., Nyxdcbayx例:置亂的Matlab的實(shí)現(xiàn) %嵌入圖像并顯示 w=imread(arnold.bmp); M=w; Size_w=size(w); subplot(2,2,2); imshow(w); title(將要嵌入的圖像); %取水印圖像的維數(shù) c,d,e=size(w); %定義一個(gè)零矩陣用于設(shè)置Arnold變換后生成的新圖像 w1=zeros(c,d,e); %讀取灰度值矩陣U U=w(:,:,1); %讀取灰度值矩陣U U1=w1(:,:,1); %逐行掃描水印圖像的坐標(biāo)x,y所構(gòu)成的矩陣 for i=1:c for j=1:d %對(duì)每個(gè)像素的x,
36、y坐標(biāo)進(jìn)行Arnold變換 i1=i+j; j1=i+2*j; i1=mod(i1,1); J1=mod(j,1); %將每個(gè)像素的x,y坐標(biāo)對(duì)應(yīng)的灰度值放入定義的數(shù)組E中 if (i1=0)&(j1=0) U1(i1,j1)=U(i,j); w1(i1,j1)=w(i,j); end end end subplot(2,2,3); imshow(w1); title(置亂圖像);n仿真實(shí)驗(yàn)結(jié)果如圖3.3所示:圖圖3.3 3.3 置亂處理后的圖像置亂處理后的圖像實(shí)驗(yàn)結(jié)果表明,經(jīng)過置亂處理后的圖像,已經(jīng)看不出原圖像,這就達(dá)到了預(yù)處理的目的。實(shí)驗(yàn)結(jié)果表明,經(jīng)過置亂處理后的圖像,已經(jīng)看不出原
37、圖像,這就達(dá)到了預(yù)處理的目的。例:改進(jìn)算法例:改進(jìn)算法A=imreadA=imread(DEER.BMP);DEER.BMP);N=lengthN=length(A);A);% %按列抽樣按列抽樣T=zerosT=zeros(N);N);for i=1:N/2for i=1:N/2T T(2 2* *i-1i-1,i)=1;i)=1;EndEndfor j=1:N/2T(2*j,j+N/2)=1;EndB=double(A)*T;%按行抽樣T=zeros(N);for i=1:N/2T(i,2*i-1)=1;Endfor j=1:N/2T(j+N/2,j)=1;EndB=T*B;nimshow
38、(uint8(B)%顯示置亂后的圖像B圖圖3.4 Arnold3.4 Arnold算法的置亂算法的置亂n仿真的實(shí)驗(yàn)結(jié)果如圖3.4所示。這能達(dá)到更佳的預(yù)處理的目標(biāo)。n另外,通過前面的矩陣分析,可以知道,迭代次數(shù)的選取是不同的,出現(xiàn)的結(jié)果也就不同,不迭代次數(shù)不斷改變的情況下,取相應(yīng)的迭代系統(tǒng)數(shù),就能在提取圖像時(shí)恢復(fù)原圖像。另外,還通過進(jìn)一步的仿真實(shí)驗(yàn)來改進(jìn)上述的Arnold置亂。n對(duì)于Arnold置亂有優(yōu)勢(shì)也有缺點(diǎn),在選擇圖像時(shí),必須是方陣圖像,否則就不能使用Arnold置亂進(jìn)行預(yù)處理。為了解決這個(gè)問題,下面的小節(jié)中分析我們可以在預(yù)處理中使用的其他置亂方法。n2幻方置亂n幻方方陣就是:以自然數(shù)為元
39、素的n階矩陣,如公式3-9所示: (3-9)n有了幻方矩陣的定義后,接下來看如何構(gòu)造幻方矩陣?;梅阶儞Q根據(jù)矩陣中自然數(shù)序號(hào)來對(duì)圖像塊位置進(jìn)行移動(dòng)。如果n階圖像相對(duì)應(yīng)的n階方陣為B,幻方矩陣為A,變換過程是首先將A中自然序號(hào)與B中像素點(diǎn)一一對(duì)應(yīng),然后將A中的序號(hào)m的移動(dòng)到m+1的位置,將序號(hào)為n2的元素移到序號(hào)為1的位置。A中元素m位置的像素移至元素m+1位置處,1變?yōu)樵瓉?的位置,2變?yōu)樵瓉?的位置15變?yōu)樵瓉?6的位置,16變?yōu)樵瓉?的位置,隨著位置的移動(dòng),到一定位置,一定能變幻出原有的圖像。也就是說當(dāng)達(dá)到n2次變換時(shí),就可以恢復(fù)出圖像。利用B=magic(4)可以構(gòu)造出第一個(gè)幻方矩陣。如公
40、式3-10所示。nnnnnnaaaaaaaaaA.212222111211 (3-10)n公式3-10的B即第一次幻方所得的矩陣。n也就是說,基于幻方的變換具有周期性,對(duì)于一幅像素為的數(shù)字圖像,其變換周期為n2。通過仿真實(shí)驗(yàn)可知,基于奇數(shù)階幻方變換的數(shù)字圖像Pnn經(jīng)kn次迭代變換,圖像恢復(fù),kn為變換的準(zhǔn)周期,k=1,2,n一1。準(zhǔn)周期性形成的原因?yàn)槠鏀?shù)階幻方的構(gòu)造算法和幻方的構(gòu)造算法共同所至,每變換kn次時(shí),圖像像素總體在行位置上共計(jì)下移2k行,列位置上共計(jì)左移k列,使圖像恢復(fù)。n首先需要生成n階幻方矩陣,設(shè)原圖像像素矩陣為A,經(jīng)過幻方置亂后的圖像像素矩陣為B。因?yàn)橐獙⒃袼鼐仃嚺c幻方矩陣的
41、像素一一對(duì)應(yīng),需要一一對(duì)應(yīng)賦值,當(dāng)位置第一次改變時(shí),得到第一次幻方變換,輸出的矩陣作為下一次幻方的輸入矩陣,經(jīng)過n次處理后,得到需要的置亂矩陣。1614133115687910413211511514412679810115133216BA 圖3.5 幻方變換n算法的結(jié)果如圖3.5所示。另外,還可以將幻方變換與圖像分塊相結(jié)合,這樣就能達(dá)到更好的置亂效果。此改進(jìn)算法的具體思路如下:n源圖像像素矩陣為A,按上述的算法對(duì)圖像進(jìn)行一次置亂。然后對(duì)第一次置亂后的圖像進(jìn)行分割,再根據(jù)第一次置亂的算法對(duì)各圖像分塊進(jìn)行幻方置亂(一般可以分成4塊等),這樣就得到了4個(gè)又一次幻方置亂后的圖像。最后將4個(gè)矩陣組成圖像的像素矩陣,這樣遞歸的幻方下去,即可得到理想的幻方置亂矩陣。3.4 混沌n混沌是指發(fā)生在確定性系統(tǒng)中的貌似隨機(jī)的不規(guī)則運(yùn)動(dòng),一個(gè)確定性理論描述的系統(tǒng),其行為卻表現(xiàn)為不確定性、不可重復(fù)和不可預(yù)測(cè),這就是混沌現(xiàn)象
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題14按要求完成句子練習(xí)-兩年(2021-2022)小升初語文真題匯編
- 2024年影視作品版權(quán)代理與發(fā)行合同
- 2024年度C水利水電工程施工合同典范
- 2024年曲靖c1道路運(yùn)輸從業(yè)資格證考試
- 2024年呼和浩特客運(yùn)從業(yè)資格證理論考試答案
- 2024年度供應(yīng)鏈管理合同:某制造業(yè)供應(yīng)鏈管理服務(wù)協(xié)議
- 2024年二手房定金合同中的交易雙方個(gè)人信息保密條款
- 連梁可替換的搖擺鋼支撐框架結(jié)構(gòu)抗震性能研究
- 路燈工程各分部分項(xiàng)的施工方案及質(zhì)量保證措施
- 2024年彩妝品牌代理權(quán)協(xié)議
- 《牧原第一課》試題
- 重大事故隱患排查備案表
- 優(yōu)秀團(tuán)員競(jìng)選主題班會(huì)課件
- 用戶運(yùn)營(yíng)專員工作職責(zé)與任職要求(7篇)
- 杜甫生平介紹最終版課件
- 專題七馬克思主義剩余的價(jià)值理論課件
- 超星爾雅學(xué)習(xí)通《改革開放史(王向明)》章節(jié)測(cè)試答案
- 手術(shù)患者輸血反應(yīng)的應(yīng)急預(yù)案流程圖
- 三級(jí)數(shù)學(xué)下冊(cè) 面積1 滬教
- 圓面積公式的推導(dǎo)優(yōu)秀課件
- 科學(xué)實(shí)驗(yàn):磁懸浮課件
評(píng)論
0/150
提交評(píng)論