梅佳蒙,任延珍,王麗娜
(1. 空天信息安全與可信計(jì)算教育部重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430072;2. 武漢大學(xué)國(guó)家網(wǎng)絡(luò)安全學(xué)院,湖北 武漢 430072)
文本是人類使用最早、使用頻率最高的通信方式,在長(zhǎng)期的歷史發(fā)展中,形成了復(fù)雜的語(yǔ)義語(yǔ)法規(guī)則,保證了信息傳遞的準(zhǔn)確性和有效性。文本內(nèi)容的語(yǔ)義歧義和信息冗余較少,一個(gè)字的差別就會(huì)導(dǎo)致截然不同的語(yǔ)義。盡管與其他的多媒體載體相比,以文本為載體的隱蔽信道隱寫容量較小,但文本作為最基本的信息交流手段,使用頻率高,具有在隱蔽通信中信息無(wú)損傳輸?shù)膬?yōu)勢(shì),已成為信息隱藏技術(shù)新的優(yōu)質(zhì)載體。
傳統(tǒng)的文本隱寫技術(shù)[1-4]通常是基于文本內(nèi)容或文本表現(xiàn)形式等信息的編輯修改方法,在嵌入容量和安全性上有明顯不足。生成式文本隱寫算法利用輸出的概率分布來(lái)建立生成詞與待嵌入秘密信息之間的映射關(guān)系,完成秘密信息的嵌入,具有文本語(yǔ)言模型保持一致的特性,得到了廣泛研究?;谏赡P偷奈谋倦[寫方法包含兩大類:基于統(tǒng)計(jì)模型的文本隱寫和基于深度神經(jīng)網(wǎng)絡(luò)的文本隱寫。
早期的生成式文本隱寫算法利用統(tǒng)計(jì)模型,如馬爾可夫鏈,對(duì)特定語(yǔ)料庫(kù)進(jìn)行建模。文獻(xiàn)[5-7]利用馬爾可夫鏈的無(wú)記憶性和時(shí)不變性對(duì)隨機(jī)過(guò)程進(jìn)行建模,并提出不同的轉(zhuǎn)移狀態(tài)映射了不同的秘密信息。Yang等[8]提出在語(yǔ)言模型輸出的概率分布和秘密信息之間使用哈夫曼編碼的映射方式,提升了生成文本的安全性。
基于深度神經(jīng)網(wǎng)絡(luò)的生成式文本隱寫算法常用的語(yǔ)言模型有基于循環(huán)神經(jīng)網(wǎng)絡(luò)[9](RNN,recurrent neural network)的生成模型、基于變分自編碼器[10](VAE,variational auto-encoder)的生成模型、基于Transformer[11-13]的生成模型、基于生成對(duì)抗網(wǎng)絡(luò)[14](GAN,generative adversarial network)的生成模型等。此類隱寫模型的基本原理如圖1所示,包含文本生成模型、候選池概率分布截?cái)嗪陀成淝度胨惴?個(gè)關(guān)鍵部分。在生成一段文本的過(guò)程中,需要將秘密信息映射嵌入每個(gè)生成詞中。這些模型生成的隱寫文本在隱蔽性和統(tǒng)計(jì)安全性的各項(xiàng)指標(biāo)(如KL散度、困惑度)上明顯優(yōu)于傳統(tǒng)的語(yǔ)言模型。Fang等[15]使用了塊狀編碼,對(duì)候選池預(yù)先分塊(block-based)建立生成詞與秘密信息之間的映射關(guān)系,語(yǔ)言模型上采用長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM,long short-term memory)。Yang等[16]基于雙層LSTM語(yǔ)言模型建立了一個(gè)生成式文本隱寫對(duì)話系統(tǒng)。Yang等[17]使用LSTM語(yǔ)言模型,利用哈夫曼編碼[18]在隱寫容量得到保證的情況下大幅降低了生成文本的困惑度 (perplexity),使用哈夫曼編碼時(shí)需要對(duì)候選池中的單詞進(jìn)行降序排列,選擇前k個(gè)單詞作為新的候選池,建立與秘密信息的映射關(guān)系。Dai等[19]在Yang等[17]的基礎(chǔ)上,使用GPT-2-117M預(yù)訓(xùn)練語(yǔ)言模型[12-13,20],提出了patient-Huffman的映射嵌入算法,犧牲隱寫容量換取了部分統(tǒng)計(jì)安全性。Ziegler等[21]和Shen等[22]在映射嵌入算法上選擇了算術(shù)編碼[23],大幅提升了生成文本的安全性。
生成式文本隱寫算法中的候選池截?cái)嗖呗詫?duì)生成文本的隱蔽性、容量和統(tǒng)計(jì)安全性有顯著的影響?,F(xiàn)有方法的候選池截?cái)嗖呗酝ǔ2捎胻op-k[24-25]或top-p[26]截?cái)唷9潭〝?shù)量的top-k或固定概率的top-p在待生成詞候選池的概率分布過(guò)于集中(over-concentrated)或者過(guò)于平坦(over-flat)時(shí),會(huì)導(dǎo)致生成詞的隱蔽性或者統(tǒng)計(jì)安全性產(chǎn)生異常。當(dāng)候選池詞概率分布過(guò)于集中時(shí),映射嵌入算法強(qiáng)制選擇概率較低的詞,使困惑度增加;而過(guò)于平坦時(shí),有些概率并不低的詞不在新的候選池內(nèi),使前后兩個(gè)候選池的概率分布差異過(guò)大,導(dǎo)致KL散度增加。
本文針對(duì)以上問(wèn)題,考慮到不同生成詞時(shí)刻神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型輸出概率分布之間的差異,提出安全性可控的生成式文本隱寫算法,該算法基于困惑度和KL散度的參數(shù)約束,生成過(guò)程直接受控于評(píng)價(jià)指標(biāo)(困惑度和KL散度),自適應(yīng)地選擇合適的k值,使生成文本安全性可控。并且,本文算法能夠兼顧困惑度和KL散度兩個(gè)指標(biāo),使生成文本擁有更好的隱蔽性和統(tǒng)計(jì)安全性。
文本隱寫算法的安全性是指生成的文本不被檢測(cè)出存在隱寫信息的性能,包括統(tǒng)計(jì)安全性和隱蔽性,統(tǒng)計(jì)安全性使用KL散度(KL-divergence)衡量,隱蔽性使用困惑度衡量。KL散度表示兩個(gè)不同分布之間的差異,在衡量生成文本質(zhì)量時(shí)表示原有語(yǔ)言模型生成文本(cover)的概率分布P(cover)和具有嵌入秘密信息語(yǔ)言模型生成的文本(stego)的概率分布P(stego)之間的差異。KL散度定義如式(1)所示。
P(x)是輸入單詞的聯(lián)合概率分布,待輸出單詞的條件概率分布是P(xi+1|x1,x2,…,xi)。第i+1個(gè)單詞是取決于前i個(gè)詞的結(jié)果。當(dāng)D(Pcover||Pstego)<ε時(shí),表示該隱寫算法是ε不可感知的;當(dāng)D(Pcover||Pstego)=0時(shí),表示該文本隱寫算法是絕對(duì)不可感知的。
困惑度是NLP領(lǐng)域中評(píng)價(jià)生成文本隱蔽性的指標(biāo),其定義為每個(gè)單詞在數(shù)據(jù)集上的平均log概率,如式(2)所示,反映了語(yǔ)言模型生成文本的概率分布和訓(xùn)練文本概率分布之間的統(tǒng)計(jì)性差異。低困惑度意味著語(yǔ)言模型生成的文本與訓(xùn)練文本差距小,生成的文本更接近于自然文本。
根據(jù)Yang等[10,17]的研究發(fā)現(xiàn),語(yǔ)言模型在條件概率編碼的框架下,隨著嵌入容量的增加,生成文本的困惑度會(huì)增加;隱寫文本的隱蔽性指標(biāo)困惑度和統(tǒng)計(jì)安全性指標(biāo)KL散度相互矛盾,兩個(gè)指標(biāo)不可能同時(shí)達(dá)到很好的效果。
主流生成式文本隱寫技術(shù)需要對(duì)各種語(yǔ)言模型的輸出結(jié)果進(jìn)行歸一化,得到待生成詞候選池的概率分布,常見的候選池概率分布如圖2所示,圖中單個(gè)單詞的生成概率逐漸降低。文本生成模型輸出的候選池概率分布中,包含數(shù)千甚至上萬(wàn)個(gè)候選詞,根據(jù)長(zhǎng)尾效應(yīng),大部分的單詞概率偏低,若映射嵌入時(shí)選擇了這些詞,將會(huì)嚴(yán)重影響生成文本困惑度,因此需要根據(jù)一定的規(guī)則對(duì)候選池概率分布做截?cái)?,去除分布中概率非常低的詞。如何做截?cái)噙m當(dāng)去除這些詞是生成式文本隱寫算法中的重要問(wèn)題,現(xiàn)有方法均采用候選池截?cái)喾椒ǎ饕╰op-k[24-25]和top-p[26]兩大類。
圖2 常見的候選池概率分布Figure 2 The probability distribution of original candidate-pool
1.2.1 top-k截?cái)?/p>
top-k截?cái)嘀该看紊蓡卧~的時(shí)候,根據(jù)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型輸出的概率分布,選取排序后的前k個(gè)單詞作為新的候選池。Ziegler等[21]在不同生成時(shí)刻使用相同的k值進(jìn)行截?cái)?,生成新的待生成詞候選池,在進(jìn)行生成式文本隱寫時(shí),采用固定的k值,在k=300, 600, 900的情況下完成實(shí)驗(yàn)。但這樣忽視了候選池概率分布的差異性,雖然相比無(wú)截?cái)?,top-k截?cái)嗌傻膯卧~性能在困惑度和KL散度上有不少提升,但由于k值固定,導(dǎo)致生成文本的困惑度和KL散度性能較弱。
top-k截?cái)嗟年P(guān)鍵在于對(duì)k值的選擇,但是上下文不同時(shí),神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型輸出的候選池概率分布不會(huì)相同,相同的k值會(huì)忽視概率分布的差異。當(dāng)k很大時(shí),某些情況下會(huì)生成概率過(guò)低的詞;當(dāng)k很小時(shí),某些情況下會(huì)忽略概率不低的詞,使生成文本的困惑度和KL散度受到影響。
1.2.2 top-p截?cái)?/p>
top-p截?cái)嘤置瞬蓸樱╪ucleus sampling),其關(guān)鍵是選取神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型輸出的概率分布中前k個(gè)單詞作為新的候選池,k是單詞概率之和大于目標(biāo)值p的最小值。給定輸出的概率分布P(x|x1:i?1),單詞集為V,top-p截?cái)嗟暮蜻x池為V(top?p)?V的滿足條件的最小子集,如式(3)所示。
Shen等[22]在Ziegler等[21]工作的基礎(chǔ)上,提出了動(dòng)態(tài)自適應(yīng)的top-k截?cái)喾桨?,以top-p的算法控制候選池前k個(gè)詞概率分布之和,參數(shù)k由參數(shù)δ決定,如式(4)所示,隨著候選池概率分布的變化,top-k的k值動(dòng)態(tài)調(diào)整,有效去除候選池中的低概率單詞,提高嵌入容量和統(tǒng)計(jì)安全性。
在其他條件相同的情況下,隨著k增加,KL散度的值會(huì)減小,統(tǒng)計(jì)安全性更好,同時(shí)困惑度的值會(huì)增大,隱蔽性也就更差。具體結(jié)果如圖3、圖4所示。
圖3 基于算術(shù)編碼的隱寫文本在不同k值情況下的困惑度Figure 3 Comparison of Arithmetic coding and Huffman coding on the perplexity when the k value is the same
圖4 基于算術(shù)編碼的隱寫文本在不同k值情況下的KL散度Figure 4 Comparison of Arithmetic coding and Huffman coding on the KL-divergence when the k value is different
top-p截?cái)嗪蟮暮蜻x池只包含原分布中很小一部分的單詞,但這部分單詞所占的概率和是原分布的90%以上,該方法較好地解決了top-k截?cái)嗟膯?wèn)題,大多數(shù)情況下能夠忽略概率較低的單詞,降低生成文本的困惑度,同時(shí)不會(huì)過(guò)于影響KL散度。但在一些極端情況,如待生成詞候選池概率分布過(guò)于集中或者過(guò)于平坦時(shí),top-p截?cái)嗳菀咨筛怕瘦^低的詞或忽略概率不低的詞,導(dǎo)致生成文本的困惑度或KL散度出現(xiàn)異常。式(4)中k值是候選池中,概率之和大于目標(biāo)值p的最小k值,此目標(biāo)值與不可感知性,包括隱蔽性——困惑度,統(tǒng)計(jì)安全性——KL散度沒(méi)有直接的關(guān)系,因此采用固定p值不能很好地控制生成隱寫文本的安全性。
圖5和表1是候選池概率分布較為平坦的一個(gè)實(shí)例,圖5是表1候選池單詞概率的柱狀圖,表1則按照概率大小的順序,列出了部分單詞的概率、困惑度和KL散度。上文輸入為“Washington received his initial military training ……and the regiment lost its”。該候選池中單詞的最大概率為0.036,后續(xù)單詞概率分布平坦。按照現(xiàn)有算法stego-SAAC[22]處理,k在δ=0.1時(shí)為144,考慮到原候選池概率分布尾部的單詞概率差距很小,還有一部分單詞應(yīng)被劃分到候選池中,否則會(huì)降低生成文本的KL散度。
表1 候選池概率分布過(guò)于平坦時(shí)各個(gè)單詞的KL散度和困惑度Table 1 KL divergence and perplexity of each word when the probability distribution of the candidate pool is too flat
圖5 候選池概率分布過(guò)于平坦的實(shí)例Figure 5 The example of probability distribution of the candidate pool is too flat
圖6和表2是在候選池概率分布過(guò)于集中時(shí)候選池概率分布較為集中的一個(gè)實(shí)例,圖6是表2的候選池概率的柱狀圖,表2是候選池中部分單詞對(duì)應(yīng)的困惑度和KL散度,上文輸入為“Washington received his initial military training ……Eventually, Washington included his memoir”。此候選池中,第一個(gè)單詞的概率為0.746,占比突出,前4個(gè)單詞的概率占比超過(guò)了94%。針對(duì)這種概率分布的情況,按照現(xiàn)有算法stego-SAAC[22]處理,在其控制的變量δ=0.05, 0.1, 0.15時(shí),候選池截?cái)嗟膋值分別為4, 7, 20,截?cái)嗪蠛蜻x池存在較多困惑度超過(guò)300的單詞,但其KL散度并無(wú)明顯提升,若在嵌入編碼時(shí)選擇了這些單詞,則會(huì)導(dǎo)致生成文本的困惑度增加。
表2 候選池概率分布過(guò)于集中時(shí)各個(gè)單詞的 KL散度和困惑度Table 2 KL divergence and perplexity of each word when the probability distribution of the candidate pool is too flat
圖6 候選池概率分布過(guò)于集中的實(shí)例Figure 6 The example of probability distribution of the candidate pool is too concentrated
針對(duì)待生成詞候選池過(guò)于平坦或集中所導(dǎo)致生成詞指標(biāo)異常的問(wèn)題,本文提出安全性可控的生成式文本隱寫算法,以文本隱寫的安全性評(píng)價(jià)指標(biāo)KL散度和困惑度作為候選池截?cái)嗟囊罁?jù),提出top-controllablek(top-ck)截?cái)嗖呗裕嵘晌谋镜陌踩浴?/p>
安全性可控的生成式文本隱寫算法基于Transformer的文本生成模型,根據(jù)上文輸入生成下文候選池概率分布,使用top-controllablek(top-ck)截?cái)喾桨福⒏鶕?jù)困惑度可控或KL散度可控的參數(shù)閾值,動(dòng)態(tài)進(jìn)行候選池截?cái)啵缓蟛捎没谒阈g(shù)編碼的映射嵌入算法,生成特定的單詞以嵌入秘密信息。接下來(lái),2.2節(jié)詳細(xì)介紹本算法中的top-ck截?cái)喾桨福?.3節(jié)介紹映射嵌入算法的嵌入和提取過(guò)程。
2.2.1 困惑度可控的截?cái)嗖呗裕╰op-ckppl)
設(shè)定困惑度閾值上界pplthr,在候選池的概率分布中,計(jì)算在不同k值截?cái)嗟那闆r下,候選池中概率最小單詞的困惑度,使用二分搜索法,根據(jù)閾值pplthr找到滿足條件的最大值kt,如式(5)所示。新生成的候選池中,限定每個(gè)單詞的困惑度小于閾值pplthr。
其中,perplexity(vk|yt)表示在已生成文本序列yt?1的條件下,t時(shí)刻根據(jù)選擇候選池中第k個(gè)詞vk時(shí)的困惑度;pplthr表示設(shè)定的困惑度閾值;表示候選池中單詞的數(shù)量。 在獲取到截?cái)嗪蟮暮蜻x池概率分布后,根據(jù)待嵌入的秘密信息,使用基于算術(shù)編碼的映射嵌入算法生成對(duì)應(yīng)的單詞。
2.2.2 KL散度可控的截?cái)嗖呗裕╰op-ckkl)
在生成式文本隱寫算法中,統(tǒng)計(jì)安全性使用KL散度表示,最理想的情況下,隱寫生成文本的分布與自然文本分布之間的KL散度為0,沒(méi)有差異。從信息論的角度出發(fā),通常會(huì)計(jì)算生成的隱寫文本Pstego和語(yǔ)言模型正常生成的文本Pcover之間的KL散度,表示隱寫算法的統(tǒng)計(jì)安全性。
根據(jù)上文結(jié)論可知,生成式文本隱寫算法中的k值越大,隱寫文本分布與原始語(yǔ)言模型分布間的差異越小,KL散度越小,統(tǒng)計(jì)安全性越高。由于KL散度這種遞減的趨勢(shì),首先設(shè)置KL散度閾值上界KLthr,之后在候選池的概率分布中,計(jì)算在不同k值情況下候選池概率分布與原始概率分布之間的KL散度,然后使用二分搜索找到滿足條件式(6)的最小k值kt。
其中,Pstego(topk)表示經(jīng)過(guò)top-k截?cái)嗪蟮母怕史植?,PLM表示原始的概率分布,兩者之間的KL散度需要小于設(shè)定的閾值KLthr,選擇滿足此條件的最小的k值。并且,困惑度可控和KL散度可控的截?cái)嗖呗钥梢酝瑫r(shí)使用,在閾值合理設(shè)置的情況下,能夠同時(shí)兼顧兩個(gè)安全性指標(biāo)。
2.3.1 嵌入
本文生成式文本隱寫算法嵌入過(guò)程如圖7所示,其簡(jiǎn)要示例如圖8所示,輸入秘密信息比特序列,經(jīng)GPT-2文本生成模型處理后產(chǎn)生概率分布,然后使用top-ckkl或top-ckppl截?cái)嗖呗?,并使用算術(shù)編碼嵌入秘密信息,輸出隱寫后文本。首先定義算術(shù)編碼精度,該值決定了算術(shù)編碼計(jì)算過(guò)程中的最小區(qū)間,假設(shè)算術(shù)編碼精度為r(通常r=16),即算術(shù)編碼最小區(qū)間為,t時(shí)刻的區(qū)間范圍為[Lt,Ht),當(dāng)t=1時(shí),概率區(qū)間為[0,216),當(dāng)時(shí)刻為t時(shí),語(yǔ)言模型輸出的單詞序列,根據(jù)設(shè)定的困惑度或者KL散度的閾值,在經(jīng)過(guò)動(dòng)態(tài)top-k截?cái)嗪?,按概率降序排列為{y1,y2,…,yk},對(duì)應(yīng)的概率排序?yàn)閧P(y1),P(y2),…,P(yk)}。
圖7 生成式文本隱寫算法嵌入過(guò)程Figure 7 The embedding process of generative text steganography algorithm
圖8 生成式文本隱寫算法嵌入過(guò)程示例Figure 8 The example of the embedding process of generative text steganography algorithm
假設(shè)待嵌入的秘密信息比特序列為m,嵌入步驟如下。
1) 語(yǔ)言模型根據(jù)上下文的信息得到當(dāng)前時(shí)刻輸出的概率分布,此概率分布在做top-ckkl或top-ckppl截?cái)嗪笊尚碌母怕史植疾⒌玫疆?dāng)前的[Lt,Ht),然后根據(jù)式(7)得到每一個(gè)單詞符號(hào)yj的概率區(qū)間范圍。
2) 根據(jù)待嵌入的秘密信息m的序列,讀取r比特信息(通常為16 bit)m1m2…mn,轉(zhuǎn)換為十進(jìn)制小數(shù)M,M∈[0,1)。
3) 尋找對(duì)應(yīng)的單詞符號(hào)yj,使M滿足,則當(dāng)前生成的單詞符號(hào)為jy,并將區(qū)間范圍[Lt,Ht)更新為[lt,ht),進(jìn)行下一步操作。
4) 如果tL和tH的二進(jìn)制數(shù)前n位相同,則表示當(dāng)前的生成詞已經(jīng)嵌入n位信息m1m2…mn,更新tL,秘密信息左移n位,右側(cè)補(bǔ)0,更新tH,秘密信息左移n位,右側(cè)補(bǔ)1。如果tL和tH前n位沒(méi)有對(duì)應(yīng)相同的,則左移n位再次匹配,如果仍然沒(méi)有相同的,則需要跳過(guò)進(jìn)行下次操作,本次操作并不嵌入秘密信息。
5) 重復(fù)步驟1)~步驟4),直到完成秘密信息的嵌入。
2.3.2 提取
提取是嵌入的逆向操作,輸入的是隱寫生成文本序列y1y2y3…yn,輸出秘密消息。本文生成式文本隱寫算法提取過(guò)程如圖9所示。
圖9 本文生成式文本隱寫算法提取過(guò)程Figure 9 The extraction process of generative text steganography algorithm in this paper
本文生成文本隱寫算法提取步驟如下。
1) 在有語(yǔ)言模型和上文信息的前提下,獲取當(dāng)前時(shí)間t的語(yǔ)言模型輸出的概率分布,之后根據(jù)設(shè)定的指標(biāo)閾值獲取動(dòng)態(tài)top-ckkl或top-ckppl截?cái)嗪蟮母怕史植肌?/p>
2) 根據(jù)動(dòng)態(tài)top-ck截?cái)嗪蟮母怕史植?。獲取當(dāng)前狀態(tài)下的[Lt,Ht),在此基礎(chǔ)上根據(jù)式(7)計(jì)算得出每一個(gè)單詞jy映射的概率區(qū)間。
3) 在時(shí)間t輸入的單詞為ty,那么對(duì)應(yīng)的區(qū)間范圍為[Lt,Ht),并將區(qū)間范圍更新為[lt,ht),對(duì)應(yīng)的概率區(qū)間為。
4) 如果tL和tH的二進(jìn)制數(shù)前n位相同,則可以對(duì)應(yīng)概率區(qū)間的二進(jìn)制比特?cái)?shù)據(jù),提取出前n位比特流,作為提取出的秘密信息。更新tL,秘密信息左移n位,右側(cè)補(bǔ)0,更新tH,秘密信息左移n位,右側(cè)補(bǔ)1。如果tL和tH的二進(jìn)制數(shù)前n位沒(méi)有對(duì)應(yīng)相同的,則跳過(guò)此單詞,對(duì)下一個(gè)單詞進(jìn)行處理。
5) 重復(fù)步驟1)~步驟4),直到完成秘密信息的提取。
本節(jié)對(duì)所提算法的性能進(jìn)行評(píng)估實(shí)驗(yàn),并與現(xiàn)有主流生成式文本隱寫算法進(jìn)行整體性能和抗隱寫分析性能的對(duì)比實(shí)驗(yàn)。
本文實(shí)驗(yàn)所有生成文本都是用參數(shù)量為124 MB的GPT-2預(yù)訓(xùn)練語(yǔ)言模型生成,采用上文輸入的生成方式,上文信息選自CNN/Daily Mail[27,28]數(shù)據(jù)集。數(shù)據(jù)集中的生成文本嵌入200 bit長(zhǎng)度隨機(jī)秘密消息。本文實(shí)驗(yàn)所使用的生成式隱寫數(shù)據(jù)集的構(gòu)成如表3所示。
表3 生成式隱寫數(shù)據(jù)集的構(gòu)成Table 3 The composition of the generative ste ganographic text library
Cover:無(wú)任何秘密信息嵌入,使用124 MB參數(shù)規(guī)模的GPT-2文本生成模型按照top-k(k=50)的采樣方式生成文本長(zhǎng)度為50的2 000條樣本,作為Cover文本庫(kù),是本文實(shí)驗(yàn)的對(duì)照組。
Stego-block:基于定長(zhǎng)編碼的生成式文本隱寫算法[15]生成文本。在此算法中,需要將生成式文本模型的候選池劃分為2block塊,同一塊內(nèi)的生成詞嵌入的秘密信息相同,參數(shù)block包含3,4,5,共2000×3=6000條文本。
Stego-Huffman:基于哈夫曼編碼的生成式文本隱寫算法[17]生成文本。使用變長(zhǎng)編碼的方式,參數(shù)為候選池大小m,m包含8,16,32 (23,24,25),共2000×3=6000條文本。
Stego-Arithmetic:基于算術(shù)編碼的生成式文本隱寫算法[21]生成文本,參數(shù)為top-k的k值,k包含300,600,900,共2 000×3=6 000條文本。
Stego-SAAC:基于算術(shù)編碼的自適應(yīng)生成式文本隱寫算法[22]生成文本。此算法的候選池截?cái)嗖呗詾椋焊鶕?jù)語(yǔ)言模型輸出的候選池概率分布,以候選池單詞排序后累計(jì)概率值大于2δ?選擇相應(yīng)top-k的k值,δ包含0.05, 0.1, 0.15共3組,共2 000×3=6 000條。
Stego-ppl:由本文所提出的基于困惑度可控截?cái)喈a(chǎn)生的k值選擇方案和算術(shù)隱寫編碼生成的文本,困惑度閾值包含30, 60, 90共3組,共2 000×3=6 000條。
Stego-KL:由本文所提出的基于KL散度閾值的k值選擇方案和算術(shù)隱寫編碼生成的文本,KL散度閾值包含0.1, 0.2, 0.3共3組,共2 000×3= 6 000條。
Stego-Arithmetic和stego-SAAC是目前性能優(yōu)異的生成式文本隱寫算法,且它們的嵌入提取算法與本文stego-ppl和stego-KL相同,主要區(qū)別在于候選池截?cái)嗖呗圆煌虼俗鳛楸疚牡膶?duì)照組。
本文使用目前主流的文本隱寫分析算法對(duì)正常生成文本和隱寫生成文本進(jìn)行訓(xùn)練檢測(cè)來(lái)分析隱寫算法的抗隱寫分析能力。本實(shí)驗(yàn)采用的文本隱寫分析方法包括FastText[29]、TS-CNN[30]、TS-RNN[31]這3種方案。
FastText[29]是一個(gè)經(jīng)典的文本分類算法,是Facebook在2016年開源的一個(gè)詞向量計(jì)算和文本分類工具,F(xiàn)astText的輸入是多個(gè)單詞及其額外的n-gram特征[32],隱含層是對(duì)多個(gè)詞向量的疊加平均,輸出時(shí)采用分層Softmax。
TS-CNN[30]是一種基于語(yǔ)義分析的文本隱寫分析方法,使用CNN提取文本的高層語(yǔ)義特征,利用秘密信息嵌入前后語(yǔ)義空間的細(xì)微分布差異。TS-CNN[31]卷積核的數(shù)量為256,在卷積層后,需要使用最大池化的方式,同時(shí)需要Adam算法[33]訓(xùn)練100個(gè)epoch,并且使用early stopping[34]避免過(guò)擬合,檢測(cè)閾值為0.5。
TS-RNN[31]觀察到隱寫文本中每個(gè)單詞的條件概率分布在嵌入秘密信息后會(huì)被扭曲,采用RNN提取這些特征分布差異,進(jìn)行分析分類,同時(shí)利用這些細(xì)微差異來(lái)估計(jì)秘密信息數(shù)量。TS-RNN使用雙向GRU[35]結(jié)構(gòu),利用Adam算法優(yōu)化。使用tanh函數(shù)作為非線性激活函數(shù)。
本文實(shí)驗(yàn)所采用的訓(xùn)練和檢測(cè)方法如下:首先對(duì)數(shù)據(jù)集進(jìn)行篩選,去掉長(zhǎng)度太短的句子,避免文本長(zhǎng)度差距太大影響實(shí)驗(yàn)結(jié)果的準(zhǔn)確性。篩選后的樣本庫(kù)需要根據(jù)8:1:1的比例劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集,并且截取每一句文本的前30詞作為輸入,詞向量(word embedding)維度為300。
文本隱寫算法的整體性能評(píng)價(jià)指標(biāo)主要包括隱蔽性、統(tǒng)計(jì)安全性和嵌入容量。文本的隱蔽性通常使用困惑度進(jìn)行衡量,困惑度越低,表明生成文本越自然,質(zhì)量越好。統(tǒng)計(jì)安全性從KL散度和抗隱寫分析能力兩方面評(píng)價(jià)。KL散度越低,說(shuō)明文本隱寫引入的特征差異越小,統(tǒng)計(jì)安全性越好;嵌入容量是生成文本中單詞平均嵌入秘密信息的比特?cái)?shù)。
抗隱寫分析能力通過(guò)不同隱寫分析方法檢測(cè)數(shù)據(jù)集的準(zhǔn)確率(Accuracy)、精確率(Precision)和召回率(Recall)來(lái)表示,具體計(jì)算如式(8)~式(10)所示。
其中,TP(true positive)是實(shí)際為隱寫生成文本stego,檢測(cè)分類也為stego的文本數(shù)量;TN(true negative)是實(shí)際為正常生成文本cover,檢測(cè)分類也為cover 的文本數(shù)量;FP(false positive)是實(shí)際為cover,被檢測(cè)分類為stego 的文本數(shù)量;FN(false negative)是實(shí)際為stego,被檢測(cè)分類為cover 的文本數(shù)量。由于精確率和召回率通常呈現(xiàn)相反的趨勢(shì),它們共同性能可以用F1表示,如式(11)所示。
準(zhǔn)確率Acc越小,則表示生成隱寫文本的抗隱寫分析能力越強(qiáng)。
3.4.1 生成式文本隱寫算法整體性能
本文算法stego-ppl、stego-KL和對(duì)比算法生成文本的困惑度、KL散度、嵌入容量這3個(gè)方面的實(shí)驗(yàn)結(jié)果如表4所示。從表4中可以看出,基于塊狀編碼的生成式文本隱寫算法[15](stego-block)和基于哈夫曼編碼的生成式文本隱寫算法[17](stego-Huffman)的生成樣本在KL散度和嵌入容量上都不理想;stego-Arithmetic[21]和stego-SAAC[22]的3個(gè)指標(biāo)相較于前兩種算法有了很大提升,在困惑度相近的情況下,stego-SAAC在KL-散度和嵌入容量稍微優(yōu)于stego-Arithmetic,幅度大約為3%,但在文獻(xiàn)[22]的實(shí)驗(yàn)過(guò)程中僅僅比較了KL散度和嵌入容量?jī)煞矫娴膬?nèi)容,根據(jù)本文實(shí)驗(yàn)的結(jié)果可以看出,隨著δ的減小,KL散度與嵌入容量在性能上是同步提升的,即KL散度減小,嵌入容量增加,因此,stego-SAAC顯示的性能會(huì)有較大幅度的提升。
表4 各生成式文本隱寫算法的整體性能分析Table 4 The overall performance analysis of the above generation-based linguistic steganography
但是,從表4可以看出,這種性能上的提升是以困惑度這個(gè)指標(biāo)為代價(jià)的,當(dāng)KL散度和嵌入容量都很優(yōu)異時(shí),困惑度這個(gè)指標(biāo)會(huì)不理想。當(dāng)評(píng)價(jià)的指標(biāo)變?yōu)?個(gè)(困惑度、嵌入容量、KL散度)時(shí),本文提出的安全性可控的生成式文本隱寫算法stego-ppl、stego-KL在KL散度和嵌入容量上表現(xiàn)最好,與現(xiàn)有最新的stego-SAAC算法相比,在KL散度相同時(shí),困惑度能下降20%~30%,同時(shí)嵌入容量不會(huì)受到影響。并且,本文算法可以隨時(shí)根據(jù)相關(guān)指標(biāo)的閾值調(diào)整生成的文本,使每個(gè)生成詞的指標(biāo)都能夠滿足閾值的要求,相比其他方案更加直觀和靈活。
表5是使用stego-ppl在pplthr=60的條件下的生成示例,表中說(shuō)明了生成每一個(gè)詞時(shí)KL散度、困惑度、候選池截?cái)嗟膋值和嵌入比特?cái)?shù)??梢钥闯?,雖然困惑度閾值為60,但是生成詞的困惑度遠(yuǎn)遠(yuǎn)低于60,因此在設(shè)置閾值時(shí)可以偏大一點(diǎn)。
表5 本文困惑度可控的生成式文本隱寫算法示例(pplthr=60)Table 5 An example of generation-based linguistic steganography with controllable perplexity in this article (pplthr=60)
在同時(shí)使用兩種截?cái)嗖呗詴r(shí),需要設(shè)置合理的閾值,使pplthr計(jì)算得到的k值大于 KLthr計(jì)算得到的k值,并將 pplthr計(jì)算得到的k值作為最終確定的k值,因此適當(dāng)偏大設(shè)置pplthr能夠有更多的情況同時(shí)使用兩種截?cái)嗖呗浴?/p>
3.4.2 抗隱寫分析能力
表6是本文算法stego-ppl、stego-KL和現(xiàn)有算法在不同文本隱寫分析算法檢測(cè)情況下的檢測(cè)正確率Acc和F1,體現(xiàn)了文本隱寫算法的抗隱寫分析能力。Acc 和F1值越小,表示越不容易被檢測(cè),因此具有更好的統(tǒng)計(jì)安全性。從表6可以看出,stego-block[15]的抗隱寫分析能力最弱,不同參數(shù)下的檢出率能夠達(dá)到80%~90%。其余算法具有良好的抗隱寫分析性能,但是從檢測(cè)準(zhǔn)確率上來(lái)看,本文算法stego-ppl、stego-KL比stego-Arithmetic低6%,比stego-SAAC低3%,因此有著更優(yōu)異的抗隱寫分析能力。
表6 各生成式文本隱寫算法的抗隱寫分析能力分析Table 6 Analysis of the anti-steganalysis capability of the above generation-based linguistic steganography
Stego-Arithmetic[21]和stego-SAAC[22]的生成樣本在3種隱寫分析算法檢測(cè)下的F1值優(yōu)于stego-Huffman[17]生成樣本。本文算法stego-ppl、stego-KL的生成文本在3種隱寫分析算法檢測(cè)下,F(xiàn)1值比stego-SAAC[22]和stego- Arithmetic[21]的生成文本平均值下降0.050.1,部分情況下的F1值都在0.5以下,具有更好的統(tǒng)計(jì)安全性。
針對(duì)現(xiàn)有生成式文本隱寫算法在候選池的概率分布過(guò)于平坦或過(guò)于集中時(shí),生成的隱寫文本在困惑度和KL散度方面存在不足的問(wèn)題,本文提出的安全性可控的生成式文本隱寫算法,基于Transformer的GPT-2文本生成模型和算術(shù)數(shù)編碼的映射嵌入算法,以困惑度和KL散度為參數(shù)限制,生成隱寫文本時(shí)設(shè)置困惑度或者KL散度的閾值,使每個(gè)生成詞都滿足設(shè)定的指標(biāo)閾值,提高了生成文本的統(tǒng)計(jì)安全性。對(duì)比實(shí)驗(yàn)結(jié)果表明,本文算法stego-ppl、stego-KL生成的隱寫文本在困惑度、KL散度和抗隱寫分析性能上較現(xiàn)有算法有明顯提升,且生成文本的困惑度和KL散度可控。
在相同KL散度,嵌入容量不受影響的情況下,本文算法stego-ppl、stego-KL生成文本的困惑度較現(xiàn)有算法stego-SAAC[22]和stego-Arithmetic[21]下降最高達(dá)20%~30%,生成文本在抗隱寫分析性能上有部分提升,3種文本隱寫分析方法檢測(cè)的準(zhǔn)確率均降低至50%左右,具有更好的抗隱寫分析能力。