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