文章編號:1672-5913(2008)10-0112-03
摘要:本文提出了一種新穎的基于多M序列加密在數字圖像中隱藏信息的方法,分析了信息的嵌入與提取模型及實現算法。通過M序列生成的理論分析和計算,設計出M序列加密庫,并利用VB實現了Word文檔的信息嵌入與提取。
關鍵詞:M序列;信息隱藏;WORD文檔;數字圖像
中圖分類號:G642
文獻標識碼:B
1引言
信息隱藏是信息安全領域一個新興研究熱點,主要研究把特定信息隱藏在數字化信息宿主中的方法。其關鍵技術是在確保宿主文件格式、質量和大小不變的前提下,將密文保存在該宿主文件中,且能對密文實現無損還原。信息隱藏是利用了某種數據文件(主要是多媒體文件)的冗余性和人類感覺器官分辨信息的能力有限性等特點,將秘密信息嵌入到稱為載體的多媒體文件中,得到隱藏載體。由于隱密載體與原載體在感覺上沒有區別,不易引人注意,從而容易逃過攻擊者的破解。若將加密技術和信息隱藏技術結合使用,對秘密信息加密后再隱藏,則會進一步提高安全性[5]。
本文提出了一種新的基于多M序列加密與數字圖像的信息隱藏的方法。數字位圖是由許多像素組成的點陣,每一個像素點用若干個二進制位來描述其灰度或顏色;而每個像素點的低位(一般是低四位)對該點灰度或顏色的影響很小,因此改變像素點的低位所引起的圖像變化難以發覺。因此,可利用這些低位存儲信息實現秘密信息的隱藏。
2信息的嵌入與提取模型
在圖像低位字節中隱藏信息有兩種方法,一種是替換法,另一種是異或法。替換法是用隱藏信息替換載體圖像像素的某些低位,而提取信息時只要將隱藏信息圖像像素的某些低位取出即可。而異或法是用隱藏信息與載體圖像像素的某些低位進行異或運算,將結果放入載體圖像像素的某些低位中實現隱藏信息,而提取信息時只要將隱藏信息圖像像素的某些低位與源圖像像素的某些低位異或即可取出。
本模型采用替換法在彩色圖像像素(RGB)的低4位(d3d2d1d0)中隱藏信息,這樣可以不需要源圖像就可以提取信息。其隱藏信息的容量接近圖像文件大小的四分之一。首先將嵌入信息(word文件)轉換成二進制流,然后從M序列加密庫中隨機選擇一條M1序列對嵌入信息進行加密運算,得到經加密處理的二進制數字。再從M序列加密庫中隨機選擇一條M2、M3序列,用M2控制是否嵌入信息,用M3控制嵌入信息(d3d2d1d0)的置亂,從而進一步提高信息的保密性[2、3]。嵌入與提取模型如圖1所示。
3隱藏信息的嵌入與提取算法
為了提高傳輸信息的安全性,除采用隱藏的技術外,還要對傳輸的信息用M序列進行加密處理。加密和解密的方法是通過模2加運算完成。信息隱藏采用二進制進行嵌入與提取。
3.1M序列的生成
M序列是非線性反饋移位寄存器產生的最長的序列,它具有與m序列相類似的隨機特性和較好的相關性。一定級數的移存器產生M序列的數目和周期為: 和 。其中r、P、N分別為M序列的線性跨度、周期和序列的數量。由計算可知M序列的周期是m序列周期的兩倍;M序列的數量比m序列的數量大許多倍。因此用M序列對信息加密提供了豐富的資源,增強了信息的隱藏能力。M序列構造困難,計算量大,因此不易解密。
M序列產生器具有非線性反饋邏輯,結構復雜,不易直接用反饋邏輯構造,需要用狀態圖構造法構造M序列。從M序列的基本特點出發,它是移位寄存器產生的最長的序列,r級移位寄存器產生的序列的周期為P=2r,一個周期中包含了r級移位寄存器的全部狀態。如圖2所示,r級移位寄存器的輸出序列{an}和狀態序列{sn}是一一對應的。
si=ai2r-1+ar+12r-2+ … +ai+r-22+ai+r-1(1)
i=1,2,3,4… ∞。
根據移位寄存器的工作原理,狀態si的后續狀態為:
si+1=(2si)mod2r+0或si+1=(2si)mod2r+1 (2)
設移位寄存器的初始狀態為全“0”,即s1=0,由式(2)可推算出移位寄存器可能的后續狀態,將這些狀態按計算的先后次序排列起來得到如樹狀的r級M序列狀態流程圖。如圖3所示。
r級移位寄存器第K層上的插點數為2K-1,總層數為2r ,分枝總數為2P-1。則第K層,第L分枝叉點的狀態值記為S(K,L)為:
(3)
式中A[K]表示通過K層任一叉點的分枝數。[A]I表示對A取整, 表示K層L分枝叉點的叉點號。通過(3)式可以求得狀態樹圖上任何一個叉點的狀態,可求得任何一條經歷的全部2r個狀態。
由狀態樹圖分析可知,分枝總數為2P-1,M序列的總數為 ,由計算可知狀態圖中有許多分枝是非M序列。因此必須從狀態圖中篩選出M序列的分枝,再對這些分枝計算狀態流程,得到M序列。根據以上M序列的狀態圖的分析,就可構造出計算M序列的框圖,用C語言進行計算,就可以優化出自相關性強而互相差的M序列,以形成M序列加密庫[1]。
3.2隱藏信息的加密
首先將隱藏信息轉換成二進制流數據:
x={x1,x2,x3……} xi∈{0,1}(4)
然后從上面生成的M序列加密庫中隨機選取一條M序列與隱藏信息的二進制流數據進行模2加運算,得到加密處理后的新序列:
z={zi|zi=xi⊕Mii=1,2,3,4…P}(5)
3.3隱藏信息的嵌入與提取
對z二進制流數據進行嵌入,用M2控制是否嵌入信息,如果M2序列某一位是1則在圖像像素的低4位嵌入信息,否則不嵌入信息。如果M3序列某一位是1則嵌入信息順序為d3d2d1d0,否則嵌入信息順序為d0d1d2d3,從而達到置亂存放的效果。提取過程是嵌入的逆過程。為了抵御信息隱藏的被攻擊,在嵌入信息前進行了圖像處理,嵌入信息后進行動態補償[6]。
4信息隱藏及提取的程序實現
實現是用微軟VB6.0軟件設計程序,對Word文件進行了加密、解密、嵌入和提取。下面給出了信息加密與嵌入過程,解密與提取過程主要源程序代碼。載體文件選擇的是一幅寬800像素,高600像素的RGB24位的BMP圖片。根據本文提出的隱藏信息的嵌入算法可以隱藏的Word文件大小為350KB。程序中省略變量的定義和文件的打開命令。其中1號文件是源圖像文件、2號文件是密寫圖像文件、3號文件是嵌入的Word文件、4號文件是提取的Word文件、5號文件是M序列庫文件、6號文件是加密后的word文件。其實驗結果如圖所示。
圖4原始圖像、密寫圖像和嵌入與提取信息息
4.1信息加密與嵌入過程
Private Sub Command1_Click()
…..
Get #5, , M1: Get #5, , M2: Get #5, , M3'分別讀取M序列1、M序列2、M序列3
Do While Not EOF(3) '信息加密處理
For i = 1 To 2
Get #3, , b: b = b Xor M1(i): Put #6, , b
x = x + 1: If EOF(3) Then Exit For
Next i:Loop
Seek #3, 1: Seek #6, 1:mm2 = H80: f = 1
Do While Not EOF(6) '嵌入信息處理
For i = 1 To 2
mm1 = H80
For j = 1 To 8
Get #1, , a
If M2(i) And mm1 = 1 Then
k = k + 1
If k Mod 2 = 1 Then Get #6, , b
k1 = k1 + 1
IfM3(f) And mm2 = 1 Then
a = a And HF0: c = b And HF0: c = c \\ 16
b = b And HF: b = b * 16: a = a Or c '嵌入信息
Else a = a And HF0: c = b And HF0: c = c \\ 16
d3 = c And H8: d3 = d3 \\ 8: d2 = c And H4: d2 = d2 \\ 2
d1 = c And H2: d1 = d1 * 2: d0 = c And H1: d0 = d0 * 8
a = a Or d0: a = a Or d1: a = a Or d2: a = a Or d3 '嵌入信息
b = b And HF: b = b * 16
End If
If k1 Mod 8 = 0 Then f = f + 1: mm2 = H80
If k1 Mod 8 = 0 And f = 3 Then f = 1
mm2 = mm2 \\ 2
End If
Put #2, , a: mm1 = mm1 \\ 2
Next j: Next i: Loop
Close #1, #2, #3, #5, #6
End Sub
4.1信息解密與提取過程
Private Sub Command2_Click()
…..
Get #5, , M1: Get #5, , M2: Get #5, , M3
Seek #2, 55:mm2 = H80: f = 1
Do While Not EOF(2) '提取信息處理
For i = 1 To 2
mm1 = H80
For j = 1 To 8
Get #2, , a
If M2(i) And mm1 = 1 Then
k = k + 1: k1 = k1 + 1
If M3(f) And mm2 = 1 Then
b = a And HF'提取信息
Else b = a And HF: d3 = b And H1: d3 = d3 * 8
d2 = b And H2: d2 = d2 * 2: d1 = b And H4: d1 = d1 \\ 2
d0 = b And H8: d0 = d0 \\ 8: b = b And H0
b = b Or d0: b = b Or d1: b = b Or d2: b = b Or d3 '提取信息
End If
If k Mod 2 = 1 Thenc = b
else c = c * 16: c = c Or b: x = x – 1: Put #6, , c
If x = 0 Then Exit Do
End If
If k1 Mod 8 = 0 Then f = f + 1: mm2 = H80
If k1 Mod 8 = 0 And f = 3 Then f = 1
mm2 = mm2 \\ 2
End If
mm1 = mm1 \\ 2
Next j: Next I:Loop
Seek #6, 1
Do While Not EOF(6) '信息解密處理
For i = 1 To 2
Get #6, , b: b = b Xor M1(i): Put #4, , b
If EOF(6) Then Exit For
Next i:Loop
Close #2, #4, #5, #6
End Sub
5結束語
本文提出了一種新穎的基于多M序列加密在數字圖像中對Word文檔進行信息隱藏的方法,首先構造了信息的嵌入與提取模型。研究了M序列生成方法、信息的加密及嵌入算法,并利用VB6.0平臺進行編程試驗。經大量的試驗證明,該方法信息隱藏的峰值信噪比(PSNR)大于50dB,而PSNR大于36dB時人眼不會觀察出圖像的改動。該方法通過了RS和SPA分析的檢測。實驗證明,該方法信息隱藏方便、安全可靠,信息隱藏量大,具有較好的應用前景和使用價值。
本文的創新點:(1)提出了多M序列加密庫進行加密處理,增強了信息在Internet上傳輸的保密性及截獲文件的解密難度。(2)設計了一種新穎的嵌入和提取的算法并在VB平臺上實現了算法。⑶嵌入信息為Word文件,可以包括字體格式、表格、圖形等,因此具有廣泛的應用價值。
參考文獻
[1] 劉志軍. M序列碼分多址研究[J]. 江南航天科技,1995,(4):12-17.
[2] 崔寶江. 信息安全實驗指導[M]. 北京:國防工業出版社,2005:1-25.
[3] 王海春. 基于多混沌系統的數字密寫技術[J]. 微計算機信息,2006,(11):83-85.
[4] 陳銘等. 基于Arnold變換的圖像信息偽裝算法[J]. 計算機應用研究,2006,(1):235-238.
[5] 楊波. 信息隱藏技術及其應用[M]. 北京:科學出版社,2002.
[6] 羅向陽. 一類可抵御SPA分析的動態補償LSB信息隱藏方法[J]. 計算機學報,2007,(3):463-472.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”