鄒振婉 李明軒 楊慧婷
(國網(wǎng)新疆電力有限公司電力科學(xué)研究院 烏魯木齊 830011)
(1165602476@qq.com)
在數(shù)據(jù)處理過程中,敏感的重要數(shù)據(jù)會移交給受信任的第三方.例如,一個(gè)組織可能與共享客戶數(shù)據(jù)的其他組織有關(guān)聯(lián).另一家企業(yè)可以將其工作外包給需要向外部公司發(fā)送數(shù)據(jù)的其他公司.在數(shù)據(jù)流傳過程中,往往會因?yàn)楣芾聿划?dāng)造成敏感數(shù)據(jù)的泄露.因此如何防止敏感數(shù)據(jù)泄露并保證數(shù)據(jù)泄露后可以有效溯源成為數(shù)據(jù)安全研究的焦點(diǎn).
為解決敏感數(shù)據(jù)泄露以及溯源追蹤的問題,數(shù)據(jù)水印一直以來備受學(xué)術(shù)界和企業(yè)界的關(guān)注.數(shù)據(jù)水印通過將與數(shù)據(jù)內(nèi)容關(guān)聯(lián)的標(biāo)識信息以直接或間接方式嵌入數(shù)據(jù)中,且保證并不影響原有信息的使用價(jià)值[1].在敏感數(shù)據(jù)審計(jì)過程中,通過提取敏感數(shù)據(jù)中的水印信息識別出數(shù)據(jù)泄露情況,并通過水印比對識別出數(shù)據(jù)泄露者,以達(dá)到追蹤目的[2].
由于互聯(lián)網(wǎng)應(yīng)用帶來的多媒體數(shù)據(jù)廣泛應(yīng)用,基于多媒體數(shù)據(jù)的敏感數(shù)據(jù)泄露也層出不窮.常用的圖像隱寫方法分為基于空間域的方法和基于變換域的方法[3].基于空間域的方法比基于變換域的方法更普遍,包括自適應(yīng)LSB隱藏方法[4],空間自適應(yīng)隱寫算法HUGO[5],WOW[6],S-UNIWARD[7],HILL-CMD[8]等.變換域方法是在改善前的基礎(chǔ)上提高魯棒性攻擊,它包括量化表(QT)[9]、DWT域[10](離散小波變換)、DFT(離散傅里葉變換)域[11]、DCT(離散余弦變換)域[12]和IWT(整數(shù)小波變換)[13].
由于嵌入造成的修改會留在被覆蓋的圖像中,這將使得對隱藏的數(shù)字水印無法抵抗基于統(tǒng)計(jì)學(xué)的分析檢測問題.為解決這個(gè)問題,提高隱寫的魯棒性,Bilal等人[14]在2013年提出“零隱寫”.為提高安全性,Zhou等人[15]于2016年5月提出無載體隱寫概念,與傳統(tǒng)的圖像隱寫相比,無載體雖然仍需要載體,但它強(qiáng)調(diào)不需要其他載體,而是直接利用數(shù)字水印信息作為動力來生成加密載體.圖像本身已經(jīng)包含許多特征信息,如像素亮度值、顏色、紋理、邊緣、輪廓和高級語義等.通過適當(dāng)?shù)奶卣髅枋?,這些特征信息與隱藏的數(shù)字水印信息之間可以產(chǎn)生一定的關(guān)系.通過發(fā)送與數(shù)字水印信息無關(guān)的生成圖像,可以生成與數(shù)字水印相同的信息數(shù)據(jù).該方法能有效抵御隱寫分析工具的攻擊,顯著提高秘密信息的安全性.Pan等人[16]提出一種基于GIF (graphics interchange format)圖像的無載體隱寫方法,該方法嵌入率更大.同時(shí),Zheng等人[17]提出一種新的基于魯棒圖像哈希的無覆蓋隱寫方法,具有更高的容量、魯棒性和安全性.Duan等人[18]提出一種基于生成模型的新的無載體隱寫方法,可以有效抵抗隱藏分析工具.Hu等人[19]提出一種基于深度卷積生成對抗網(wǎng)絡(luò)的圖像隱寫方法,將秘密信息映射為噪聲向量,基于噪聲向量,利用訓(xùn)練好的發(fā)生器神經(jīng)網(wǎng)絡(luò)模型生成載體圖像.
現(xiàn)有無載體隱寫技術(shù)為保證快速準(zhǔn)確地發(fā)送信息,需要事先準(zhǔn)備大量自然圖像構(gòu)成圖像數(shù)據(jù)集,而這些圖像來源廣泛,不能滿足理想的情況.自然圖像選擇的偏差或倒排索引結(jié)構(gòu)建立的不完善都將導(dǎo)致信息傳遞的不完整或錯(cuò)誤.同時(shí),如果圖像在傳輸過程中受到攻擊,則會降低精度.因此,本文提出一種基于生成對抗網(wǎng)絡(luò)的圖像數(shù)據(jù)水印無載體隱寫方法.該方法利用生成對抗網(wǎng)絡(luò)的生成器從隨機(jī)噪聲、圖像標(biāo)簽和數(shù)字水印信息生成類似于原始圖像的偽造圖像,生成對抗網(wǎng)絡(luò)的判別器則負(fù)責(zé)判別輸入圖像的真假,并同時(shí)提取標(biāo)簽和數(shù)字水印信息.通過多輪的對抗訓(xùn)練后,生成器最后輸出類似原始圖像且含有數(shù)字水印的圖像數(shù)據(jù),同時(shí)肉眼無法區(qū)分原始圖像和生成圖像.仿真結(jié)果驗(yàn)證本文算法的有效性.
自從Goodfellow[20]提出GAN(generative adversarial network)以來,其已經(jīng)成為一種最為流行的生成模型.其核心思想來源于博弈論中的零和游戲.主要由1個(gè)生成器(G)、1個(gè)判別器(D)組成.若干維隨機(jī)噪聲z以先驗(yàn)分布Pz(z)輸入生成器(G),并產(chǎn)生PG(z)的樣本分布來擬合Pdata(x)真實(shí)樣本分布.判別器(D)負(fù)責(zé)判斷輸入的是真實(shí)樣本還是G合成的偽造樣本,如果是真實(shí)數(shù)據(jù),則輸出1,否則輸出0.GAN的優(yōu)化目標(biāo)是一個(gè)極大極小值問題,即先求價(jià)值函數(shù)V(D,G) 關(guān)于D的極大值,再根據(jù)訓(xùn)練生成器G求lg(1-D(G(z)))的極小值.最后,使得G(z)和真實(shí)數(shù)據(jù)x盡可能的接近.從感官上來說就是G生成的圖像和數(shù)據(jù)集的圖像x越來越相似.
(1)
標(biāo)準(zhǔn)GAN輸入的噪聲一般是100維的高斯分布z~N(0,1)或者均勻分布z~U(-1,1),經(jīng)過G編碼后噪聲z往往已經(jīng)高度耦合.所以很難解釋為什么不同的z就能生成不同的圖像,本文把原來的噪聲輸入分解成2部分:第1部分是原來的隨機(jī)噪聲z;第2部分是由若干個(gè)潛變量拼接而成的潛變量(latent code)c.潛變量c會有一個(gè)先驗(yàn)的概率分布,且可以是離散的或連續(xù)的,用于代表生成數(shù)據(jù)的不同特征維度.比如在原InfoGAN論文中mnist數(shù)據(jù)集的潛變量就由一個(gè)取值范圍為0~9(one-hot編碼)標(biāo)簽和2個(gè)連續(xù)的隨機(jī)變量c1,c2(分別用于表示數(shù)字類型和傾斜度、粗細(xì)度)計(jì)算得到.
僅僅增加潛變量是不夠的,還必須對其進(jìn)行約束,本文采用互信息實(shí)現(xiàn)約束.變量X,Y的互信息為I(X,Y)=H(X)-H(X|Y).可以理解為知道條件Y后X不確定度的減少量.生成器G輸入的是X=G(z,c),輸出的變量為Y=c.GAN訓(xùn)練后互信息I(c,G(z,c))能達(dá)到最大.從GAN圖像生成來說,潛變量c需盡可能控制生成圖像的內(nèi)容;而已知圖像時(shí),需盡可能準(zhǔn)確地提取出潛變量c,保證信息c不丟失.最終提出帶有信息調(diào)節(jié)項(xiàng)的損失函數(shù):
(2)
計(jì)算互信息項(xiàng)時(shí)需要計(jì)算后驗(yàn)概率p(c|x),本文采用一個(gè)近似變分分布Q(c|x)來模擬p(c|x),并根據(jù)概率分布計(jì)算I(c,G(z,c))的下限表達(dá)式:L1(G,Q)=Ec~p(c),x~g(z,c)[lgQ(c|x)]+H(c).所以損失函數(shù)重新寫作:
(3)
當(dāng)Q(c|x)=p(c|x)時(shí),L1(G,Q)達(dá)到最大化H(c),為一個(gè)常數(shù).隨機(jī)噪聲z和潛編碼c輸入生成器G,產(chǎn)生偽造圖像.并從偽造圖像和真實(shí)圖像數(shù)據(jù)集中隨機(jī)采樣,輸入給定D判斷真假,并且返回一個(gè)0~1之間的實(shí)數(shù)值,值越大,表明是真實(shí)圖像的可能性越大.變分分布Q也可以視作一個(gè)判別器,輸出類別c.Q通常與判別器D共享卷積層,以減少計(jì)算花銷.
基于上述方法構(gòu)造的GAN模型,在生成器G輸入隨機(jī)噪聲z和潛編碼c能夠控制圖像生成的內(nèi)容,并且在判別器D中提取出潛編碼c的信息.
GAN的訓(xùn)練極為困難,需要精心設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu),并小心協(xié)調(diào)G和D的訓(xùn)練程度;訓(xùn)練失敗無法生成圖像;模式崩壞造成生成的圖片缺乏多樣性等.經(jīng)過多次嘗試,本文采用DCGAN框架實(shí)現(xiàn)圖像生成.采用32×32和64×64這2種圖像分辨率.整體架構(gòu)如圖1所示,由生成器G、判別器D和信息提取器Q構(gòu)成.輸入分為噪聲z和潛編碼c.其中隨機(jī)噪聲z為100維0~1之間均勻采樣的實(shí)數(shù),這有助于合成復(fù)雜圖像.
圖1 無線設(shè)備身份異常檢測系統(tǒng)模型
通過實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)z維度較低時(shí),往往不能表征足夠的信息,圖像有較大的失真,因此選擇100維.潛編碼c分為標(biāo)簽信息L和機(jī)密信息d這2部分.標(biāo)簽信息采用獨(dú)熱編碼(one-hot),可以控制合成圖像的屬性,標(biāo)簽L表示所選擇數(shù)據(jù)集的標(biāo)簽種類,編號為L.如mnist數(shù)據(jù)集和cifar-10數(shù)據(jù)集均為10類,維度就是10.機(jī)密信息d采用的是滿足n維伯努利分布的0/1比特流,n決定隱藏?cái)?shù)字水印的比特?cái)?shù).0/1隨機(jī)排列,每次迭代時(shí)均會產(chǎn)生新的隨機(jī)0/1比特流.這樣能夠保證網(wǎng)絡(luò)學(xué)習(xí)到編碼和解碼數(shù)字水印的能力,而非簡單地記住輸入的信息.此處,噪聲z和潛編碼c的取值都在0~1之間,有助于參數(shù)的收斂和圖像的合成.
當(dāng)生成器G收到噪聲z、標(biāo)簽L和機(jī)密信息d后,將其拼接融合,生成一個(gè)維度為(100+L+n)的1維數(shù)組.而后,經(jīng)過2個(gè)全連接層進(jìn)行Linear線性變化,并采用BatchNorm1d和Relu進(jìn)行規(guī)范化和參數(shù)限制,簡寫為Linear-BatchNorm1d-Relu.接著,采用變形操作將其規(guī)整為128個(gè)原圖像大小的1/4特征圖,然后采用2次上采樣操作(ConvTranspose2d-BatchNorm2d-Relu)將其恢復(fù)到原始圖像大小.設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)簡單,但是有效,能夠生成小尺寸的各類圖像.
共享卷積層(S)使用的是2個(gè)Conv2d-BatchNorm2d-LeakyReLU和2個(gè)Linear-BatchNorm1d-Relu操作,最后輸出維度為(1+L+n)的數(shù)組.判別器D連接在共享卷積層后,經(jīng)過sigmoid變換后,輸出1個(gè)1維的標(biāo)量,用于判斷輸入的是真實(shí)圖像還是偽造圖像.網(wǎng)絡(luò)中所有的卷積核大小為4,步長為2,填充大小為1.信息提取器Q用于提取標(biāo)簽信息L和輸入的機(jī)密信息d,分別輸出維度為l,n的數(shù)組.采用wake-sleep交叉優(yōu)化的方式,即先優(yōu)化D,再優(yōu)化G,最后對(G,Q)聯(lián)合優(yōu)化.
網(wǎng)絡(luò)的訓(xùn)練優(yōu)化過程如下:采用Adam優(yōu)化器,學(xué)習(xí)率lr= 0.000 2,參數(shù)betas=(0.5,0.999),λ為函數(shù)系數(shù).Batch size大小m=128,CE為計(jì)算多分類損失的交叉熵,MSE為計(jì)算均方根函數(shù).每個(gè)批次按照D,G,Q串聯(lián)組合的參數(shù)chain(Q,G)輪流迭代1次.每次x,y分別為讀取數(shù)據(jù)的圖像部分和標(biāo)簽,每次數(shù)據(jù)從先驗(yàn)分布為U(0,1)的隨機(jī)噪聲中采集m個(gè)隨機(jī)噪聲樣本{z1,z2,…,zm};從真實(shí)樣本數(shù)據(jù)集中隨機(jī)抽取m個(gè)真實(shí)圖像樣本{x1,x2,…,xm};從真實(shí)樣本數(shù)據(jù)集中讀取m個(gè)真實(shí)圖像的標(biāo)簽{y1,y2,…,ym};隨機(jī)產(chǎn)生m個(gè)n維隨機(jī)0/1比特流{d1,d2,…,dm},d~B(n,0.5).
根據(jù)式(4)計(jì)算D的梯度,按梯度增加方向,根據(jù)Adam規(guī)則更新共享卷積層S參數(shù):
lg(1-D(G(zi,yi,di)))].
(4)
根據(jù)式(5)計(jì)算G的梯度,按照梯度增加方向,用Adam優(yōu)化器更新參數(shù)G:
(5)
將網(wǎng)絡(luò)G,S部分的參數(shù)串聯(lián)起來并形成一個(gè)迭代器chain(G,S),根據(jù)式(6)計(jì)算chain(G,S)梯度,并用Adam按照梯度下降方向更新G,S所有的參數(shù):
λMSE(diG(zi,yi,di),di),
(6)
判別器D和生成器G的優(yōu)化采用0-1二分類交叉熵.網(wǎng)絡(luò)用pytorch實(shí)現(xiàn),使用函數(shù)BCELoss.標(biāo)簽損失值的計(jì)算使用的是多分類交叉熵函數(shù)CrossEntropyLoss.判別器D和信息提取器Q輸出的機(jī)密信息d均需要經(jīng)過sigmoid函數(shù)規(guī)整到0~1之間.機(jī)密信息d計(jì)算損失值用的是函數(shù)MSE,即Q輸出的機(jī)密數(shù)據(jù)d和輸入G的0/1比特流值間的均方根,并在損失值前乘以系數(shù)λ.根據(jù)實(shí)驗(yàn)經(jīng)驗(yàn),在迭代輪數(shù)epoch<20時(shí),設(shè)置λ=10×1.15epoch,否則λ=165.將λ進(jìn)行指數(shù)增長,逐步增大機(jī)密信息d損失,有利于穩(wěn)定訓(xùn)練和提高機(jī)密信息d輸出的準(zhǔn)確率.但是λ過大會影響圖像生成質(zhì)量,所以設(shè)置λ的上限值為165.同時(shí),需要計(jì)算機(jī)密數(shù)據(jù)d提取的準(zhǔn)確率.方法是將Q輸出的機(jī)密信息d進(jìn)行四舍五入規(guī)整到0和1,然后在每個(gè)批次內(nèi)計(jì)算和輸入0/1 比特流之間相等位數(shù)的平均值.所有優(yōu)化器均采用Adam,學(xué)習(xí)率lr=0.000 2,β參數(shù)betas=(0.5,0.999).
實(shí)驗(yàn)在pytorch框架上完成,使用的系統(tǒng)是Ubuntu 16.04,計(jì)算設(shè)備為Nvidia GTX 1080Ti,在mnist,cifar-10,lsun的子集bedroom數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn).
mnist數(shù)據(jù)集為一個(gè)手寫0~9數(shù)字圖片數(shù)據(jù)集,訓(xùn)練集包含6萬張灰度圖像和6萬個(gè)0~9的數(shù)字便簽,測試集包含1萬張圖像和標(biāo)簽.每張圖像大小為28×28(長像素×寬像素).cifar-10是一個(gè)包含6萬張圖片的數(shù)據(jù)集,其中5萬張用于訓(xùn)練,1萬張用于測試.每張照片為32×32像素的RGB彩色圖像.所有照片分屬10個(gè)不同的類別,分別是“airplane”“automobile”等.標(biāo)簽值為0~9,分別代表每個(gè)不同的類別.lsun數(shù)據(jù)集子集bedroom包含約300萬張彩色jpg圖像,以lmdb格式提供.并以質(zhì)量系數(shù)75進(jìn)行壓縮,短邊尺寸為256像素.對于不同的數(shù)據(jù)集,進(jìn)行構(gòu)造式隱寫實(shí)驗(yàn)時(shí)設(shè)置不同的圖像尺寸:mnist數(shù)據(jù)集為28×28,cifar-10為32×32,lsun-bedroom為32×32以及64×64這2種.之所以沒有采用更大尺寸圖像,是實(shí)驗(yàn)設(shè)計(jì)的網(wǎng)絡(luò)在生成高分辨率圖像時(shí)視覺上比較模糊,達(dá)不到圖像質(zhì)量要求.
實(shí)驗(yàn)中分別采用mnist,cifar-10,lsun-bedroom數(shù)據(jù)集進(jìn)行對照實(shí)驗(yàn):第1次不嵌入任何數(shù)字水印,只攜帶標(biāo)簽:第2次嵌入64 b的信息.結(jié)果如圖2所示:第1行分別是未加機(jī)密信息時(shí)用mnist,cifar-10,lsun-bedroom數(shù)據(jù)集合成的圖像.第2行分別是加64 b隨機(jī)0/1數(shù)字的機(jī)密信息時(shí)所合成的圖像.
圖2 隱寫前后的圖像質(zhì)量對比
從圖2可以看出,mnist和cifar-10圖像在加入機(jī)密信息后,mnist數(shù)字圖像變得非常怪異,cifar-10圖像變得模糊不清.原因可能是加入其中潛變量c影響到生成圖像的內(nèi)容,當(dāng)加入的是離散的0/1比特流時(shí),就會導(dǎo)致生成的圖像連續(xù)性比較差.而基于lsun-bedroom數(shù)據(jù)集生成的圖像在進(jìn)行構(gòu)造式隱寫前后圖像質(zhì)量幾乎沒有變化,圖像質(zhì)量非常好.說明當(dāng)圖像集很大、很復(fù)雜時(shí),可以在較大程度上抵消構(gòu)造式隱寫對圖像造成的影響.對于隱寫來說,生成的圖像質(zhì)量越好、越自然,安全性就越高.所以,選擇lsun-bedroom數(shù)據(jù)集進(jìn)行構(gòu)造式隱寫實(shí)驗(yàn),實(shí)際效果如圖3所示:
圖3 lsun-bedroom數(shù)據(jù)集進(jìn)行隱寫后生成的圖像
圖3中從左到右分別是不同尺寸圖像隱藏不同比特?cái)?shù)后的效果:32×32-256 b,32×32-512 b,32×32-1024 b,64×64-1024 b(長像素×寬像素-比特?cái)?shù)).從圖3可以看出,當(dāng)隱寫比特?cái)?shù)增加時(shí),對圖像質(zhì)量幾乎沒有影響.每張32×32像素大小的圖像可以成功隱藏多達(dá)1 024 b的信息,而且肉眼完全無法察覺.
與此同時(shí),還需要測試嵌入其中的數(shù)字水印提取的準(zhǔn)確率,保證準(zhǔn)確性.從表1可以看出,當(dāng)隱寫的比特?cái)?shù)增加時(shí),信息提取的準(zhǔn)確率也在下降,并且要達(dá)到較高準(zhǔn)確率,網(wǎng)絡(luò)訓(xùn)練所需時(shí)間越來越長.說明當(dāng)信息隱藏量增加時(shí),給信息的提取造成一定的困難.信息嵌入量和圖像質(zhì)量以及信息提取準(zhǔn)確率的關(guān)系就像天平的2端,存在此消彼長的關(guān)系.雖然信息不能保證100%準(zhǔn)確提取,但是可以采用其他方式來保證準(zhǔn)確性,比如采用糾錯(cuò)碼.
在安全性方面,分別采用1萬張32×32大小的imagenet 圖像和1億張32×32由lsun-bedroom數(shù)據(jù)集合成的含有256 b數(shù)字水印的合成圖像.采用經(jīng)典隱寫分析工具stegExpose檢測發(fā)現(xiàn),自然圖像與合成圖像的檢出率相當(dāng),均為0.81.但當(dāng)合成圖像尺寸增加時(shí),檢出率顯著下降,圖像尺寸為64×64時(shí),檢出率下降到56%.繼續(xù)增加尺寸,檢出率可以下降到10%以下,與不含數(shù)字水印的自然圖像集檢測率大體相等.同時(shí)采用彩色富模型SCRMQ1進(jìn)行分析,選用1萬張由用DCGAN合成的不含秘密臥室圖像作為載體圖像集,1萬張由本網(wǎng)絡(luò)合成的含256 b的機(jī)密信息的臥室圖像作為含密圖像集.經(jīng)SCRMQ1提取特征后,送入Ensemble Classifier集成分類器進(jìn)行分析,檢測錯(cuò)誤率為 48.5%.說明本文方案的合成圖像具有良好的抗隱寫分析的能力.
本文設(shè)計(jì)一種構(gòu)造式的隱寫方案,直接由數(shù)字水印合成自然圖像,并且準(zhǔn)確地提取出隱藏的信息.嵌入容量可以達(dá)到 1bpp,準(zhǔn)確性最高可達(dá)99.5%,并且隱寫分析工具無法檢測出來.在容量、準(zhǔn)確性方面可以媲美傳統(tǒng)隱寫方式,并在安全性上遠(yuǎn)遠(yuǎn)超過它.
構(gòu)造式隱寫是下一代的隱寫技術(shù),能夠直接合成含有數(shù)字水印的圖像.合成的圖像視覺效果與真實(shí)圖像完全一致,真假難辨.同時(shí),該方法不進(jìn)行載體修改,也很難被當(dāng)前的隱寫分析技術(shù)發(fā)現(xiàn),從而保證信息的安全性.這是一種安全、準(zhǔn)確、大容量的隱寫方法,具有重大的研究價(jià)值.但是目前本文研究還有待深入,需要解決很多技術(shù)難關(guān).下一步需要做的就是合成高清圖像,隱藏更多的信息.