?

基于漢明碼和Logistic-正弦映射的圖像隱寫

2018-08-22 02:13劉應紅孫樹亮
鄭州大學學報(理學版) 2018年3期
關鍵詞:碼字正弦載體

劉應紅, 孫樹亮

(福建師范大學福清分校 電子與信息工程學院 福建 福清 350300)

0 引言

隨著科技的發展,人們對于信息的安全也越來越重視.隱寫術和密碼學是信息安全的兩大技術,各有不同的應用范圍,將兩者相結合,能夠有效地提高信息的安全性.

漢明碼由于編碼簡單,因此得到廣泛的應用.近年來,人們對邊緣檢測和漢明碼的研究已經取得了一些顯著成果.文獻[1]提出了一種基于Canny邊緣檢測的自適應空域檢測算法,該算法對常見的隱寫分析方法具有魯棒性.文獻[2]提出了基于2k修正和霍夫曼編碼的圖像隱寫,該方法能夠有效地增強隱寫圖像的視覺效果.文獻[3]提出的算法既具有很高的隱藏能力,又具有很好的隱藏效率.文獻[4]提出了使用(7,4)漢明碼對壓縮圖像進行信息隱藏,把信息隱藏在使用動量絕對值區塊截短碼進行壓縮的圖像中.文獻[5]提出了使用(15,11)漢明碼在半色調圖像中進行信息隱藏的方法.

1 Logistic-正弦映射

1.1 Logistic映射

Logistic映射是最簡單常用的一維混沌映射.表達式為xn+1=L(μ,xn)=μxn(1-xn),參數μ的取值范圍是[3.57, 4].但在這個區間內,也并不是所有值都能使系統處于混沌狀態.Logistic 映射的李雅普諾夫指數較小,而且生成的混沌序列分布并不均勻,這些都是Logistic 映射存在的不足之處.

1.2 正弦映射

xn+1=S(μ,xn)=μsin (πxn)/4,

(1)

當式(1)的參數μ在[3.48, 4]范圍內,正弦映射系統處于混沌狀態.其混沌特性與Logistic 映射類似,同Logistic映射一樣,具有有限的參數范圍和生成的混沌序列分布不均勻的缺點.

1.3 Logistic-正弦映射

xn+1=(L(μ,xn)+S((4-μ),xn))mod 1=(μxn(1-xn)+(4-μ)sin (πxn)/4)mod 1,

(2)

當式(2)的參數μ在(0, 4]范圍內,系統處于混沌狀態.與Logistic映射和正弦映射相比,Logistic-正弦映射具有更大的參數空間,混沌序列分布得更加均勻,同時具有更大的李雅普諾夫指數[6],因此更適合混沌圖像加密的需要.

2 漢明碼

漢明碼是由Richard Hamming[7]提出的,它是一種能夠檢測并修正誤差的塊碼.在所有漢明碼中,(7, 4) 漢明碼的應用最為廣泛.它把4 bit的數據位(m1,m2,m3,m4) 與3 bit的校驗位(p1,p2,p3) 組合在一起成為7 bit的碼字.每一bit的校驗位是由相應的數據位決定的.漢明碼是通過校驗位與相應的數據位是否形成偶校驗來檢測是否存在誤差的[8].檢測過程又稱為校驗,所用公式為

2r-1≥n或者2r-1≥k+r,

其中:n是碼字的長度;k是數據位的長度;r是校驗位的長度,r≥2.

表1顯示了數據位和校驗位之間的關系,這里“√”表示相應的校驗位和數據位之間存在關系.m1、m2、m3和m4是數據位,p1、p2和p3是校驗位.

校驗位能用相應的數據位產生,

p1=m1?m2?m4,p2=m1?m3?m4,p3=m2?m3?m4,

“?”表示異或操作.

對于(7, 4) 漢明碼來說,相應的數據位和校驗位的關系如表2所示.

表2 (7, 4)漢明碼的碼字

把數據位與校驗位組合在一起形成碼字的方法是把校驗位放在2i位置上,例如p1p2m1p3m2m3m4.

在使用漢明碼進行編碼的時候,需要用到校驗矩陣H和產生矩陣G.矩陣G用來編碼,矩陣H用來校驗數據.在發送端,每4 bit數據乘以編碼矩陣G,并把結果對2求模,得到碼字R,所用公式為

R=(M×G) mod 2,

(4)

其中:M=(m1,m2,m3,m4);

在接收端,為了校驗收到的7 bit碼字R(數據位加上校驗位) 是否正確,將向量R乘以校驗矩陣H的轉置矩陣,結果對2求模,如式

Z=(R×HT) mod 2,

(5)

其中:

向量Z由3 bit向量(z1,z2,z3)組成.如果消息傳輸正確,則向量Z為0,即(0, 0, 0).否則,相應的位變為1,那么該消息就需要進行錯誤檢測.

3 秘密信息隱藏算法

圖1 信息隱藏過程框圖Fig.1 Diagram of data hiding process

信息隱藏的過程如圖1所示.具體算法步驟如下:

1) 讀取載體圖像和密碼圖像.

2) 用Canny邊緣檢測算子檢測載體圖像邊緣.

3) 用Logistic-正弦映射產生密鑰1、密鑰2和密鑰3.

4) 用密鑰1置亂邊界像素.

5) 秘密圖像轉換為1D比特流.

6) 用密鑰2置亂1D比特流.

7) 用(7, 4) 漢明碼編碼1D比特流,并與用密鑰3產生的隨機數進行異或操作.

8) 比特流嵌入置亂后的邊緣像素.

9) 用2k修正算法提高圖像的視覺效果.

10) 最終獲得隱寫圖像.

信息提取的過程是上述過程的逆過程.

4 實驗過程和結果

本文的實驗是在Windows 7下用Matlab 10實現的.為了衡量提出算法的效果,采用峰值信噪比(PSNR)、結構化的圖像質量評價方法[9]和隱藏能力來度量.

為了計算PSNR,首先要計算均方誤差(MSE),公式為

其中:I是載體圖像;S是隱寫圖像;M和N是載體圖像的大小.PSNR值計算公式為

(6)

信息隱藏能力Capacity用每個像素能夠隱藏的bit數來表示. 本文所提出的方法與文獻[10]以及最低3位有效位方法(LSB-3)進行比較.載體圖像大小是512×512 的灰度圖像,秘密圖像大小是128×128的灰度圖像.圖2顯示了應用Canny檢測算子得出的載體圖像的邊緣.高斯濾波器的標準差為1.5,低門限設定為5,高門限設為40.本文把秘密信息隱藏在3種方法的邊緣像素中.盡管負載較其他方法小,但是PSNR和Q值較大.從表3可見,本文的方法比LSB-3和文獻[10]的方法更好.

圖3顯示了載體圖像、隱寫圖像及其對應的直方圖,同時顯示出秘密圖像及其提取的秘密圖像.

圖2 Canny算子檢測的載體邊緣Fig.2 Edge images with Canny detector

載體圖像LSB-3文獻[10]本文方法CameramenCapacity/bit36 75537 21638 147PSNR/dB51.457 155.670 363.370 2Q0.986 40.994 70.999 9PeppersCapacity/bit33 18634 24535 928PSNR/dB51.743 756.521 863.489 9Q0.988 40.995 70.999 8ManCapacity/bit31 14535 74235 931PSNR/dB51.963 155.837 462.721 8Q0.990 70.995 30.999 5LenaCapacity/bit36 96837 32638 453PSNR/dB51.246 555.542 963.463 6Q0.982 60.992 50.999 9

圖3 隱寫圖像和提取的秘密圖像Fig.3 Stego image and retrieved image

5 結論

本文提出了基于Logistic-正弦映射和漢明碼的新型信息隱藏算法.由于人眼對平滑區域比對邊緣區域更加敏感,因此秘密信息僅僅隱藏在載體的邊緣像素中.用漢明碼對秘密信息進行編碼.利用Logistic-正弦映射生成3個密鑰,最后用2k修正法提高隱寫圖像的視覺效果.實驗證明本文提出的算法具有更好的安全性、有效性和魯棒性.

猜你喜歡
碼字正弦載體
創新舉措強載體 為僑服務加速跑
正弦、余弦定理的應用
堅持以活動為載體有效拓展港澳臺海外統戰工作
放 下
數據鏈系統中軟擴頻碼的優選及應用
“美”在二倍角正弦公式中的應用
放下
利用正弦定理解決拓展問題
正弦、余弦定理在三角形中的應用
碼 字
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合