劉 靜, 沙吾提江·亞森
(喀什大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 新疆 喀什 844006)
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,數(shù)字作品通過網(wǎng)絡(luò)傳播變得非常便捷,由此也導(dǎo)致了大量的數(shù)字作品在互聯(lián)網(wǎng)上近乎可以被零成本復(fù)制傳播,盜版問題日益嚴(yán)峻,數(shù)字作品的創(chuàng)作者和所有者的知識(shí)產(chǎn)權(quán)被嚴(yán)重?fù)p害,數(shù)字作品的知識(shí)產(chǎn)權(quán)保護(hù)、信息安全、認(rèn)證等問題亟待解決。
數(shù)字水印技術(shù)利用人類感覺器官的HVS(Human Visual System,人類視覺系統(tǒng))和HAS(Human Audio System,人類聽覺系統(tǒng))的不敏感特性,以及數(shù)字作品本身中存在的冗余,通過一定的算法將水印信息隱藏到數(shù)字作品中,達(dá)到保護(hù)作品版權(quán)、所有權(quán)或驗(yàn)證作品真實(shí)性等目的,是維護(hù)信息安全、保護(hù)數(shù)字作品知識(shí)產(chǎn)權(quán)的一種有效手段,成為信息領(lǐng)域研究的一個(gè)熱點(diǎn)[1]。由于圖像和視頻文件有較多的冗余信息,基于圖像和視頻的水印嵌入技術(shù)均比較成熟,但針對(duì)文本的數(shù)字水印技術(shù)的研究就相對(duì)滯后[2]。
維吾爾語(yǔ)是維吾爾族的主要用語(yǔ),在新疆有著極其廣泛的應(yīng)用,維吾爾文的數(shù)字作品通過互聯(lián)網(wǎng)傳播,同樣面臨著維吾爾文數(shù)字作品的信息安全、版權(quán)保護(hù)等問題[3],對(duì)維吾爾文文本作品的版權(quán)和內(nèi)容的真實(shí)性、完整性進(jìn)行保護(hù),已成為一個(gè)迫在眉睫的問題。目前,在國(guó)內(nèi)大多數(shù)文本水印算法的嵌入載體是漢字和英文,針對(duì)維吾爾文文本數(shù)字水印技術(shù)的研究相對(duì)較少。在此背景下,本文在已有的關(guān)于文本水印算法的基礎(chǔ)上,利用維吾爾文左向連寫、書寫落于基線等特征,在維吾爾文文檔的豎直方向上利用行移編碼嵌入水印,有助于實(shí)現(xiàn)對(duì)維吾爾文文本的版權(quán)保護(hù),提高維吾爾文文本在互聯(lián)網(wǎng)上傳輸?shù)陌踩浴?/p>
依據(jù)文檔格式的不同,文本水印算法通常分為兩類[4]:格式化文本,如DOC、PDF、RTF、PostScript等高級(jí)形式的文檔;非格式化文本,如ASCⅡ文本文件和計(jì)算機(jī)源碼文件。針對(duì)不同類型的文檔,典型的文本水印算法分為三類:不可見編碼算法、基于自然語(yǔ)言處理的水印算法和基于文檔結(jié)構(gòu)的水印算法[5]。針對(duì)格式化的文本文檔,可以利用文檔的版面布局信息嵌入數(shù)字水印信息,或者在格式化編排中嵌入數(shù)字水印信息。Maxemuchuk N F等[6-7]提出了行間距編碼水印算法、字符間距編碼水印算法和特征編碼水印算法等基于格式化文檔的文本水印算法。
圖1 文檔結(jié)構(gòu)水印算法
評(píng)價(jià)數(shù)字水印算法是否合理可以通過3個(gè)方面來實(shí)現(xiàn):水印嵌入容量、不可感知性和魯棒性,從本質(zhì)上看三者之間存在相互制約的關(guān)系。在水印算法中要篩選出高容量、高不可感知性和高魯棒性的算法是不可能的。
目前流行的文檔結(jié)構(gòu)水印算法,主要是利用文檔的行間距、字間距和文字特征編碼方式的嵌入水印,如圖1所示。
依據(jù)基于文檔結(jié)構(gòu)的水印算法的不同特征,得出各算法的性能比較結(jié)果,如表1所示。
表1 基于文檔結(jié)構(gòu)的數(shù)字水印算法性能比較
通過分析比較文檔結(jié)構(gòu)的水印算法的特點(diǎn)和不足,可以看出,行間距編碼算法的容量雖低,但不可感知性高,魯棒性相對(duì)最好,是文本水印中的經(jīng)典算法。因此,本文設(shè)計(jì)基于行移編碼的維吾爾文文本水印算法,可以有效抵御截屏攻擊和硬拷貝攻擊。
多數(shù)文檔的格式具有行間距均勻的特點(diǎn),根據(jù)經(jīng)驗(yàn),人眼無法辨認(rèn)等于或小于1/300英寸的垂直位移量。行間距編碼利用人的視覺系統(tǒng)對(duì)微調(diào)的不敏感性,通過調(diào)整文本的行間距嵌入水印信息。維吾爾文文本與中、英、日、拉丁文本相比,有其自身的特點(diǎn)。圖2通過一段維吾爾文文字標(biāo)注出維吾爾文文字的部分特征。
圖2 維吾爾文文字的特點(diǎn)
維吾爾文文字的閱讀、書寫方向?yàn)閺挠彝?,維吾爾文行序?yàn)閺纳系较隆>S吾爾文支持字符的連接,只要能夠連接的字符,無論是手寫或者印刷時(shí)總是將字符連接在一起。字符連接的位置叫做基線[8]。大部分維吾爾文文檔的格式都具有行間距均勻的特征,基于行移結(jié)構(gòu)的維吾爾文文本水印算法的基本思想是利用上移或者下移基線,在文本中嵌入水印信息“0”或者“1”,如圖3所示。通過判斷基線間距的變化進(jìn)行水印信息的提取。
移動(dòng)行與基線之間的距離用ΔB-表示,移動(dòng)行與下一個(gè)不移動(dòng)行基線間的距離用ΔB+表示。用ΔT-和ΔT+表示原文檔中未作修改的基線間的距離。如果
說明該行與上一行的間距增大,即該行被下移。同樣,如果
說明該行與上一行的間距縮小,即該行被上移。隨著行間距的改變,將水印信息通過數(shù)據(jù)流嵌入維吾爾文文本中。
圖3 基于行移結(jié)構(gòu)變化的維吾爾文文本水印算法
基于行移結(jié)構(gòu)的維吾爾文文本水印嵌入模型如圖4所示。維吾爾文文本水印嵌入階段主要解決兩個(gè)問題:一是依據(jù)維吾爾文文檔結(jié)構(gòu)的特征生成數(shù)字水印信息;二是利用行移編碼在維吾爾文文檔中嵌入水印信息。
圖4 行移結(jié)構(gòu)的維吾爾文文本水印嵌入模型
為提取準(zhǔn)確,通常頁(yè)面上第一行、最后一行以及較短的行都不作編碼。取維吾爾文文本奇數(shù)行為基準(zhǔn),通過偶數(shù)行偏移(向上或向下)實(shí)現(xiàn)對(duì)文本控制方式的編碼。
input:原始維吾爾文文本文檔T,水印信息W,密鑰K;
output:已嵌入水印信息的維吾爾文文本文檔T′;
step1:由密鑰K得到水印嵌入的初始位置s;
step2:將水印信息W轉(zhuǎn)為Unicode編碼的二進(jìn)制序列W′,實(shí)現(xiàn)編碼轉(zhuǎn)化。假如待嵌入的水印信息為“KSU2018”,對(duì)應(yīng)的Unicode編碼的二進(jìn)制序列為
“01001011010100110101010100110010001100000011000100111000”;
step3:讀取待嵌入水印信息的維吾爾文文本文檔T,獲取維吾爾文文檔的總頁(yè)數(shù)和總行數(shù);
step4:分析維吾爾文文檔的內(nèi)容,選擇奇數(shù)行為控制行,保持原位置不變;偶數(shù)行為移動(dòng)行,用于嵌入水印信息。偶數(shù)行下移,嵌入水印信息“0”;偶數(shù)行上移,嵌入水印信息“1”;
step5:根據(jù)水印信息的Unicode編碼的二進(jìn)制序列W′,依次調(diào)整文本中的偶數(shù)行,得到T′。依據(jù)下面的邏輯,判定偶數(shù)行的偏移:
if(ucbit==1){
//該偶數(shù)行上移
}elseif(ucbit==0){
//該偶數(shù)行下移
}
step6:輸出T′
提取水印的方法是添加水印的逆操作。提取水印沒有嵌入水印時(shí)那么高的條件,具體步驟如下:
step1:讀取T′,獲得維吾爾文文檔的總行數(shù)和總頁(yè)數(shù);
step2:由密鑰K得到水印提取的初始位置s;
step3:讀取T′中的水印信息W′,提取偶數(shù)行的信息,依照下列公式進(jìn)行計(jì)算:
if(偶數(shù)行滿足關(guān)系X){
//表明偶數(shù)行存儲(chǔ)的水印信息為“0”
}elseif(偶數(shù)行滿足關(guān)系Y){
//表明偶數(shù)行存儲(chǔ)的水印信息為“1”
}
step4:將獲得的水印信息匯總成二進(jìn)制數(shù)
“01001011010100110101010100110010001100000011000100111000”,
并將其轉(zhuǎn)化成Unicode對(duì)應(yīng)的字符串“KSU2018”。
本文試驗(yàn)是一些由維吾爾文行、段落、標(biāo)點(diǎn)組成的文本頁(yè)面,大小為1366×768,共105行,5頁(yè)文本,文本采用維吾爾文14號(hào)ALKATIP字體。對(duì)維吾爾文文本進(jìn)行水印嵌入實(shí)驗(yàn),嵌入水印前后的部分文本如圖5、圖6所示。
圖5 原始維吾爾文文本
圖6 嵌入水印后的維吾爾文文本
通過對(duì)比圖5、圖6可以看到,通過行移可以有效地在維吾爾文文檔中嵌入水印。即使在高分辨率的顯示器下,嵌入水印后的維吾爾文文檔和原始維吾爾文文檔在視覺上也沒有差別,水印信息具有很好的不可感知性,由于只微調(diào)了文檔的結(jié)構(gòu),并未修改文字內(nèi)容,嵌入水印后完全不影響對(duì)文檔的閱讀。利用水印提取算法對(duì)待檢測(cè)的維吾爾文文檔進(jìn)行水印提取,分析解碼水印信息,如圖7所示,將提取的水印信息與數(shù)據(jù)庫(kù)記錄的水印信息進(jìn)行比對(duì),判斷維吾爾文文檔版權(quán)的受損情況。
圖7 水印提取結(jié)果
基于行移結(jié)構(gòu)的維吾爾文文本水印算法以維吾爾文文檔中的基線為參照,通過信息編碼生成水印信息,運(yùn)用特定的算法調(diào)整行間距,實(shí)現(xiàn)在維吾爾文文本中嵌入水印信息,具有良好的不可感知性和低復(fù)雜性。
水印嵌入前后圖5與圖6的視覺對(duì)比并不明顯,采用本文所述算法,在保證嵌入水印圖像的良好視覺效果的同時(shí),盡可能減少對(duì)原始文檔的改變,人眼很難察覺到文檔被修改的痕跡。實(shí)驗(yàn)結(jié)果表明,行移結(jié)構(gòu)的水印算法具有較強(qiáng)的魯棒性,可以有效地應(yīng)對(duì)拷貝攻擊,即使進(jìn)行多次拷貝,嵌入的水印信息也能檢測(cè)出來。由于受到文本行數(shù)的限制,其水印容量很小,適合于維吾爾文文檔的版權(quán)保護(hù)。
數(shù)字水印技術(shù)為數(shù)字作品的產(chǎn)權(quán)保護(hù)提供了一種有效的解決手段。為了進(jìn)一步保障維吾爾文數(shù)字作品在網(wǎng)絡(luò)中的安全傳輸,本文在分析文本數(shù)字水印技術(shù)一般算法的基礎(chǔ)上,重點(diǎn)分析了文檔結(jié)構(gòu)的水印算法。針對(duì)維吾爾文左向連寫、書寫落于基線等特征,以維吾爾文文本奇數(shù)行為基準(zhǔn),依據(jù)偶數(shù)行相對(duì)于基線的偏移進(jìn)行編碼,實(shí)現(xiàn)水印信息的嵌入,再利用水印提取算法提取水印信息,以此作為維吾爾文作品侵權(quán)檢測(cè)的依據(jù),該算法在簡(jiǎn)單可行的前提下確保了算法的強(qiáng)韌性。實(shí)驗(yàn)結(jié)果表明,該算法的視覺不可見性和安全性較好。