孫 昊 姜子豪 郝晨茜 石 慧
(遼寧師范大學(xué)計算機與信息技術(shù)學(xué)院 大連 116033)
近年來,無載體信息隱藏方法通過結(jié)合各種生成式對抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)達(dá)到了較好的信息隱藏的效果。周琳娜[1]提出了一種基于GAN 的無載體信息隱藏方法,由噪聲作為驅(qū)動來產(chǎn)生圖像樣本,當(dāng)輸入噪聲后GAN就可以輸出隨機的特定圖像,信息隱藏則是將秘密信息作為噪聲的替代,便可以進(jìn)行以秘密信息為驅(qū)動的無載體信息隱藏。文獻(xiàn)[2]提出一種基于生成對抗網(wǎng)絡(luò)(Improved Wasserstein GAN)的信息隱藏,利用網(wǎng)絡(luò)的特點對方法進(jìn)行了改進(jìn)。文獻(xiàn)[3]利用ACGAN(Auxiliary Classifier GAN)[4],將秘密信息作為類別標(biāo)簽,與隨機噪聲作為驅(qū)動因素相結(jié)合,生成標(biāo)簽對應(yīng)的特定圖像,從而實現(xiàn)無載體信息隱藏。
上述算法對于信息安全性考慮不多,本文將ACGAN與多重超混沌系統(tǒng)、DNA加密有機結(jié)合,提出了新的無載體信息隱藏的方法。ACGAN 相較于原始GAN 和其它派生GAN,它的特點兼優(yōu)點是采用了輔助分類器,使得生成圖像可被設(shè)定的標(biāo)簽進(jìn)行分類,以增強生成器。本文正是反向利用該特點,通過分類獲得圖像標(biāo)簽,最后用標(biāo)簽還原出秘密信息以達(dá)成無載體信息隱藏。本文以新四維超混沌系統(tǒng)為基礎(chǔ),對原始圖像進(jìn)行復(fù)合置亂、DAN加密,再將秘密圖像作為類別標(biāo)簽對ACGAN 進(jìn)行訓(xùn)練,結(jié)合排序拼接成組合圖像并進(jìn)行加密,最后將訓(xùn)練后的ACGAN 與加密圖像集一同進(jìn)行發(fā)送,接收方通過該ACGAN得到相應(yīng)的圖像信息。
新超混沌系統(tǒng)作為一種基于數(shù)字信號的新型加密算法被應(yīng)用于圖像加密中,該方法的初始靈敏度高,隨機性好,并且有多個利雅普諾夫指標(biāo),具有良好的保密性能,在實現(xiàn)加密算法時可以提供巨大的密鑰空間。
本文使用了兩種不同的四維新超混沌系統(tǒng)疊加而成的多重新超混沌系統(tǒng)來進(jìn)一步提升安全性。相比于其它新超混沌系統(tǒng)加密算法而言,本文所使用的兩種新四維混沌系統(tǒng)較為新穎、簡單且更容易實現(xiàn)。其綜合性能良好,迭代后的隨機性較好。
本文使用的第一個混沌系統(tǒng)數(shù)學(xué)模型為式(1)所示:
其中a,b,c,d,m,f,g,r為實常數(shù)。當(dāng)參數(shù)a=20.5,b=68.8,c=42,d=5,m=4,f=4.5,g=5,r=20 時,系統(tǒng)存在一個典型的混沌吸引子[5]。
第二種新四維超混沌系統(tǒng)的數(shù)學(xué)模型如式(2)如下所示。其中,當(dāng)a=24,b=25,c=3 及d=0.5 時,系統(tǒng)處于混沌狀態(tài)。該算法的密鑰敏感度很高,將其與第一種混沌系統(tǒng)交替使用可有效增加混沌序列的復(fù)雜性及敏感性。
DNA 加密具有加密容量大,對系統(tǒng)性能占用比率較低,可被廣泛應(yīng)用等特點。其中A 與T 是互補的,同樣G與C也是互補的。將四個堿基分別編碼為00、01、10、11 時,共可以產(chǎn)生二十四種編碼方案。但滿足Waston-Crick互補規(guī)則的只有其中八條,如表1 所示。在DNA 算法快速發(fā)展時期,研究者同時為DNA序列構(gòu)建了基因算法,如表1 所示。
表1 DNA 編碼和解碼規(guī)則
GAN 是一種基于二人零和博弈思想的無監(jiān)督模型,其作用是能生成不存在于真實世界的數(shù)據(jù),ACGAN(基于輔助分類器生成對抗網(wǎng)絡(luò))是在GAN的基礎(chǔ)上派生出的新模型,它的構(gòu)造與GAN 相似。該模型的生成器不但能夠產(chǎn)生特定特性的圖像,也能將判別器的損失函數(shù)進(jìn)行優(yōu)化,從而提高整個對抗網(wǎng)絡(luò)的精準(zhǔn)度。其原理示意圖如1 所示,其中G為生成器,D為判別器。
圖1 ACGAN原理示意圖
ACGAN 使計算機擁有了能夠模仿現(xiàn)有數(shù)據(jù)從而生成獨特數(shù)據(jù)的能力,并增加了模型的類別,其應(yīng)用廣泛,對于實現(xiàn)無載體信息隱藏具有重要意義。
本文利用新四維超混沌系統(tǒng)為基礎(chǔ)對原始圖像進(jìn)行復(fù)合置亂加密和DNA 加密,得到秘密圖像,加密的流程圖如圖2所示。
圖2 圖像加密流程圖
原始圖像P 的長為l,寬為h。將原始圖像矩陣P'作為哈希函數(shù)的初始參數(shù),利用MD5算法生成一段長度為32位的十六進(jìn)制信息摘要密鑰序列Q,生成公式如式(3)所示。
索引序列Q 均分為四個部分,分別通過式(4)中得到x,y,z,w四個新超混沌系統(tǒng)的初始參數(shù)。hex[]是生成固定長度十六進(jìn)制序列的哈希函數(shù),hex2dec()的作用是將生成的序列從十六進(jìn)制轉(zhuǎn)換成十進(jìn)制序列。
將式(4)中得到的初始值X0,Y0,Z0,W0代入新4 維超混沌系統(tǒng)中,迭代N 次。其中N=(l×h/3)mod 8。
新4維超混沌系統(tǒng)的模型如式(5)所示:
迭代后的X′,Y′,Z′,W′即作為混沌系統(tǒng)中的四維。
3.2.1 位置置亂
Step 1. 將圖像P進(jìn)行分塊;
Step 2.以第一個塊作為初始塊,每次將以前一塊為頂點,以i×i(i=1,2,3,4…) 大小子塊為單位,進(jìn)行塊旋轉(zhuǎn)θ度,其中θ=(l'mod 3+1)×90°,得到置亂后的圖像P1,其中l(wèi)'為圖像分塊后每一行的塊數(shù)。
3.2.2 像素置亂
將圖像P1代入式(6)中,得到灰度置亂圖像P2。
其中,n為圖像P1的灰度值,n'為圖像P2的灰度值,X 為新四維超混沌系統(tǒng)中的第一維。再將灰度置亂與位置置亂進(jìn)行復(fù)合置亂。
在灰度圖像中,每個像素點采用8 位二進(jìn)制表示后可以按照DNA 編碼規(guī)則轉(zhuǎn)換成一個對應(yīng)的四位DNA序列。
步驟1 取出迭代后的新四維超混沌系統(tǒng)中的第二維Y′序列和第三維Z′序列,并根據(jù)行列選擇不同的DNA規(guī)則,
步驟2 由(l+h+y′)mod 8 得到該像素塊使用的編碼規(guī)則,由(l+h+z′)mod 8 得到使用的解碼規(guī)則。
當(dāng)DNA 編碼和解碼只選擇單一的規(guī)則時,會導(dǎo)致圖像灰度值變化較少,所以對不同行列的灰度值使用不同的規(guī)則進(jìn)行變換。
在實驗中根據(jù)圖像長和寬和的奇偶性對圖像進(jìn)行順逆時針遍歷,設(shè)l為圖像的長,h為圖像的寬。
若l+h為奇(偶)數(shù),則以順(逆)時針遍歷的方式進(jìn)行DNA編碼與解碼的加密。
本文提出的無載體信息隱藏的流程圖如圖3所示,在ACGAN中,它的生成裝置可以通過輸入不同類別標(biāo)簽以獲取特定圖像,判別裝置則可以從特定圖像中提取輸入的類別標(biāo)簽,完成了秘密信息的提取,創(chuàng)建了一種無載體信息隱藏方法。
圖3 無載體信息隱藏流程圖
1)信息隱藏可以使用ACGAN 類別標(biāo)簽的特性。發(fā)送方首先對二進(jìn)制秘密信息S按照長度L進(jìn)行了索引,得到S={s1,s2,s3…,sn} ,n 為秘密信息段的數(shù)目。
2)分別將s1,s2,s3…sn作為生成器的標(biāo)簽,與噪聲z 一同作為輸入生成圖片,將所有的生成圖片根據(jù)公共通道中的密鑰按特定順序組成一幅組合圖像。
3)通過對組合圖像進(jìn)行加密置亂操作,以獲得加密組合圖像,并交由安全信道向接收方傳輸。
根據(jù)本文對秘密圖像的加密方法使用的混沌系統(tǒng)和DNA 編碼,在文獻(xiàn)[6]的加密算法基礎(chǔ)上加以改進(jìn),具體流程如圖4所示。
圖4 ACGAN訓(xùn)練流程圖
通過發(fā)送方選擇的Logistic 映射函數(shù)初始值對其進(jìn)行量化處理得到長度為M×4N且取值為1~9的混沌序列L(i),如式(7)所示:
根據(jù)L(i)決定兩個混沌系統(tǒng)的序列長度,通過混沌序列加強兩個混沌系統(tǒng)的交替切換,可有效解決混沌收斂問題并增加混沌序列的復(fù)雜性。圖5給出了示意圖。
圖5 混沌序列生成示意圖
其中x1表示式(2)的混沌系統(tǒng)第一維度X,x2表示式(3)的混沌系統(tǒng)。
將新圖像分解成R,G,B 三通道,進(jìn)行以下操作:
1)通過發(fā)送方選擇的初始四維,分別對兩個新超混沌系統(tǒng)的第四維W 量化處理,得到一個M×4N 的混沌序列W(i),如式(8)所示,并使得取值為1~8。
利用混沌序列W(i)將明文轉(zhuǎn)成的大小為M ×8N 的二進(jìn)制矩陣,以W(i)中的值為DNA 編碼所使用的規(guī)則對與其對應(yīng)的兩比特位進(jìn)行DNA 編碼,最后重構(gòu)成大小為M×4N的DNA矩陣H。
2)借助于新超四維混沌系統(tǒng)產(chǎn)生的第一維x和第二維y 形成兩個長度分別為M 和4N 的向量,利用式(9)對其進(jìn)行量化處理:
使得DNA矩陣H的第i行與第X(i)行互換,第j行與第Y(j)列進(jìn)行互換,得到矩陣H'。
3)將新超四維混沌系統(tǒng)的四維分別作為交叉點對矩陣H'進(jìn)行交叉置亂,各交叉點如式(10)所示:
其中,Rt(i)和Re(i)分別為矩陣H'中第i 行進(jìn)行行交叉的頭交叉點和尾交叉點,而Ct(j)和Ce(j)分別為第j列進(jìn)行列交叉的頭交叉點和尾交叉點。
交叉置亂實質(zhì)是對矩陣H'選定兩行(列)的頭交叉點Rt(i)(Ct(j))與尾交叉點Re(i)(Ce(j))中的部分堿基置換。
本文是對矩陣H' 的第i 行(j 列)與第M-i 行(4N-j 列)分別進(jìn)行一次交叉置亂,然后再對第i 行(j列)與第M/2+i行(2N-j列)進(jìn)行交叉置亂,按照各交叉點進(jìn)行交叉置亂后得到矩陣H''。
4)對H''利用J(i,j)解碼規(guī)則進(jìn)行解碼獲得R通道的加密圖像R'。J(o)的解碼規(guī)則如式(11)所示:
其中i 和j 為H''中堿基的坐標(biāo),利用混沌系統(tǒng)的前三維生成J(i,j)作為該堿基的解碼規(guī)則,經(jīng)試驗證明,該方法可有效降低相鄰像素之間的相關(guān)性。
5)使用上述方法對R,G,B三個通道進(jìn)行相同操作得到R',G',B',最后將三通道合并得到經(jīng)過加密置亂后的生成圖像組合排序的新圖像。
當(dāng)發(fā)送方使用不同的混沌系統(tǒng)初始值與解碼規(guī)則時,可以得到不同視覺效果的加密組合圖像。接收方需從安全通道獲得密鑰,才可以正確解密。
發(fā)送方需將訓(xùn)練好的ACGAN判別器與加密組合圖像和使用的密鑰發(fā)送給接收方,具體步驟如下:
1)接收方獲取加密組合圖像和ACGAN 判別器后,根據(jù)接收到的密鑰得到混沌系統(tǒng)初值和解密規(guī)則進(jìn)行解密操作,得到由生成圖片組成的圖像,再根據(jù)公共密鑰依次提取出有類別和順序的生成圖像集合。
2)使用ACGAN 判別器對生成圖像集合進(jìn)行判別,獲得順序的類別集合NC,將其按照順序排列即為二進(jìn)制秘密信息S中所對應(yīng)的秘密信息片段。
3)由密鑰Q 獲得混沌系統(tǒng)的四維,對二進(jìn)制秘密信息S 根據(jù)加密的逆過程進(jìn)行解密即可還原出原始圖像。
本文實驗中ACGAN 的訓(xùn)練在Windows 11 操作系統(tǒng)上完成,使用Tensorflow1.14.0 深度學(xué)習(xí)平臺,計算顯卡設(shè)備為NVIDIA RTX 3060。樣本數(shù)據(jù)集是紋理圖像數(shù)據(jù)集,如圖6 所示,均為96×96 像素的紋理圖片,輸出圖像為48×48 像素。網(wǎng)絡(luò)的學(xué)習(xí)率為0.0002,訓(xùn)練epoch為4000,步長為100。
圖6 相關(guān)數(shù)據(jù)集
本文的實驗首先對秘密圖像進(jìn)行了基于新超4 維混沌系統(tǒng)的加密,圖7(a)為實驗中采用的原始圖像,為保證實驗表現(xiàn)的準(zhǔn)確與效率,本文實驗所選擇的圖像大小為512×512,圖7(b)則是其加密后的圖像。
圖7(c)為分段處理的秘密信息與噪聲一同輸入ACGAN 獲得生成圖像集,對其按照公共密鑰進(jìn)行排序組合獲得新圖像如圖7(d)所示。
圖7 加密過程生成圖像
最后對組合圖像進(jìn)行加密置亂操作,本實驗Logistic初值為3,兩個四維混沌系統(tǒng)使用的初值均為x=5,y=6,z=4,w=7,解密規(guī)則使用的是規(guī)則3,最終得到經(jīng)過加密置亂后的組合圖像如圖7(e)所示。經(jīng)提取秘密信息并解密還原得到的圖像為圖7(f)。
本文算法與一般使用GAN 的信息隱藏算法不同,秘密信息隱藏在類別標(biāo)簽中,對組合生成圖像也進(jìn)行了加密置亂,所以只需保證判別器的準(zhǔn)確率穩(wěn)定即可。
5.2.1 隱藏容量分析
本文的隱藏方法是使用已經(jīng)訓(xùn)練好的數(shù)據(jù)集作為標(biāo)簽載體,此時所使用的數(shù)據(jù)集圖像數(shù)量直接決定了隱藏容量。
在式(12)中,Ls為秘密信息總長度,Lc為每個生成圖像所能攜帶的秘密信息的長度,Tw和Th表示生成圖像的寬度和高度,Gw和Gh表示生成圖像的寬度和高度。設(shè)生成圖像長寬為1080×1080,不同數(shù)據(jù)集所能攜帶的秘密信息長度如表2所示。
表2 不同數(shù)據(jù)集所能攜帶的秘密信息長度
此時的隱藏容量與標(biāo)簽的長度和與秘密信息的相關(guān)度成正比,發(fā)送者可在不同情況下選擇最適合的標(biāo)簽進(jìn)行訓(xùn)練。
5.2.2 圖像直方圖
灰度直方圖是通過計算圖像中灰度值的分布,把各個灰度值的數(shù)量表示出來。本文對比了組合圖像和加密組合圖像R 通道的直方圖,如圖8 所示。
圖8 R通道灰度直方圖
從圖中可以看出組合圖像是多種生成圖像的組合,在其R通道的直方圖中顯示出灰度值分布不均勻,而在加密置亂后有效均衡了灰度值的分布。
5.2.3 相鄰像素相關(guān)性
相鄰像素相關(guān)性反映了圖像相鄰位置像素值的關(guān)聯(lián)情況。我們對彩色的尺寸為512×512×3的Lena 圖像進(jìn)行了本文組合圖像的加密置亂,并根據(jù)該像素位置分析了水平、垂直、對角像素三個部分,在各方向上任意選取了7000 對相鄰像素點利用式(13)計算相關(guān)系數(shù)進(jìn)行分析。
式中,xi和yi分別為相鄰像素的灰度值,N 代表所選取的像素對的數(shù)量,本文中N為7000。相關(guān)系數(shù)計算結(jié)果如表3~5 所示??梢钥闯觯忻魑膱D像的相鄰像素相關(guān)系數(shù)都較大,而在其加密置亂圖像中,相關(guān)系數(shù)分析結(jié)果較為接近零。此外,對比改進(jìn)前的文獻(xiàn)[6]中的加密算法以及文獻(xiàn)[7]和文獻(xiàn)[8]提出的方法,本文的方法能夠更好地消除相鄰的像素的相關(guān)性,且更有助于對組合圖像數(shù)據(jù)特征的掩蓋。
表3 水平方向相關(guān)系數(shù)值
表4 垂直方向相關(guān)系數(shù)值
表5 對角方向相關(guān)系數(shù)值
5.2.4 提取準(zhǔn)確率
本文在提取出的生成圖像上做了類別提取準(zhǔn)確測試。在不同訓(xùn)練次數(shù)情況下使用發(fā)送給的判別器對生成圖像進(jìn)行判別獲得類別標(biāo)簽,在訓(xùn)練前期提取標(biāo)簽的錯誤率較高。當(dāng)訓(xùn)練次數(shù)達(dá)到3000時,提取錯誤率降低至0.03%,加入冗余碼還可進(jìn)一步降低,可保證提取出的秘密信息的準(zhǔn)確性。
本文提出了一種基于ACGAN和多重多維混沌系統(tǒng)的無載體信息隱藏方法,將新四維超混沌系統(tǒng)、DNA 編碼、ACGAN 與無載體信息隱藏有機結(jié)合。既保證了圖像傳遞的安全性與隱蔽性,又避免了修改原始圖像。與其他信息隱藏算法相比,本文提出的算法安全性高、容量大、準(zhǔn)確性高。然而,本文所采用的數(shù)據(jù)集相對簡單,最終生成的圖像質(zhì)量仍可提升。通過添加冗余碼的方法可進(jìn)一步降低提取的錯誤率。未來的研究工作將上述方面進(jìn)行優(yōu)化,并選用更優(yōu)數(shù)據(jù)集來改善圖像質(zhì)量并提高算法的隱蔽性與安全性。