張飛
(黃淮學(xué)院 計(jì) 算機(jī)科學(xué)系, 河南 駐 馬店 4 63000)
云模型[1-3]是李德毅院士在傳統(tǒng)模糊數(shù)學(xué)和概率統(tǒng)計(jì)的基礎(chǔ)上提出的定性定量互換模型。在云模型中,表征定性概念的云滴數(shù)目可以是不定的,而需要版權(quán)保護(hù)的文本字符數(shù)目往往也是不定的。根據(jù)這個特點(diǎn),本文通過在文本中嵌入水印云滴的方式進(jìn)行文本的版權(quán)保護(hù),嵌入的云滴代表云的某種定性概念。文本包含的字符數(shù)越多,則文本中可以嵌入的云滴數(shù)就越多。當(dāng)部分云滴被惡意攻擊后,只要是在一個閾值之內(nèi),并不能破壞代表整個云表征的定性概念。
根據(jù)云模型理論,正態(tài)云模型云滴是滿足正態(tài)分布的隨機(jī)數(shù),參數(shù)Ex、En和He的變化分別影響云模型的水平位置、陡峭程度和正態(tài)云的實(shí)心化程度,云從整體上分布在x=Ex的兩旁。但通常云模型的云滴并不是以x=Ex軸對稱的,這里的不對稱是指滿足以下任意條件:1)以x=Ex軸為分界線,左右兩部分的云滴數(shù)不相等;2)存在云滴x,找不到以x=Ex軸對稱的云滴x′。表1是以Ex=0、En=1、He=0.3、N=1 000為例,一維正向云發(fā)生器10次生成云的左右兩部分云滴數(shù)目對比。
從表1可以看出,通常生成的云左右兩部分的云滴數(shù)目是不相等的,即這些實(shí)驗(yàn)生成的云通常不是對稱的。
定義一維對稱云是指滿足下列條件的云模型:1)以x=Ex軸為分界線,左右兩部分的云滴數(shù)相等;2)存在云滴x,找到以x=Ex軸對稱的云滴x′。
一維對稱云生成算法:輸入為云A;輸出為對稱云C。算法步驟如下:1)將云A以x=Ex為軸旋轉(zhuǎn)180°,得到云B,即將云A的云滴變換x′=2Ex-x,y′=y;2)將A、B兩個云以x=Ex軸疊加,生成云C;3)對稱云C是具有與云A相同Ex、En和He的云。
表1 一維正向云左右部分云滴數(shù)對比實(shí)驗(yàn)
該算法可以方便地生成特定數(shù)目云滴的對稱云。由于對稱云的左右對稱性,在后面的云水印算法中,只需將云的左半部分或右半部分嵌入文本,從而節(jié)省水印空間。
算法1:加密算法
云水印的生成,首先是采用加密算法(如AES算法)對版權(quán)圖像的像素?cái)?shù)據(jù)作加密處理,形成加密后的版權(quán)圖像,接著對版權(quán)圖像進(jìn)行灰度歸一化處理,用歸一化處理后的數(shù)據(jù)生成云數(shù)字特征;根據(jù)云數(shù)字特征,通過正向云發(fā)生器生成水印云滴,這些水印云滴就是一個個水印標(biāo)記,所有標(biāo)記的組合就是云水印信息。由于引入加密算法,在不知密鑰的前提下,非授權(quán)人不能生成特定的可認(rèn)證的云水印信息;對于水印攻擊者,即使得到了嵌入的可認(rèn)證的云水印信息及其云數(shù)字特征,由于加密函數(shù)逆向計(jì)算的復(fù)雜性,也不能得到密鑰和版權(quán)圖像。云滴的數(shù)量由需要版權(quán)保護(hù)的文本大小和嵌入文本比例決定。以代表著作權(quán)人版權(quán)的版權(quán)圖像為例,云水印生成框圖見圖1。
圖1 云水印生成
算法2:云水印生成算法
輸入:版權(quán)圖像B,密鑰KEY,云滴數(shù)N;輸出:含N個云滴的云水印信息W。具體步驟如下:1)讀取版權(quán)圖像信息,得到圖像的像素?cái)?shù)據(jù)塊DIBBits[3×m×n],m和n代表版權(quán)圖像的長和寬;2)對像素?cái)?shù)據(jù)塊加密EnDIBBits[3×m×n]=AES(DIBBits[3×m×n],KEY);3)對加密的數(shù)據(jù)EnDIBBits[3×m×n]進(jìn)行歸一化處理,得到歸一化后的數(shù)據(jù),記為NormalValue[3×m×n];4)計(jì)算NormalValue[3×m×n]的期望值,記為Ex;5)計(jì)算NormalValue[3×m×n]的方差值,記為En;6)計(jì)算|Normal-Value[3×m×n]-Ex|的方差值,記為He;7)以En為期望,以He為標(biāo)準(zhǔn)差,生成一個正態(tài)隨機(jī)數(shù)En′;8)以Ex為期望,以En′為標(biāo)準(zhǔn)差,生成一個正態(tài)隨機(jī)數(shù)x,若滿足x∈[Ex-3En,Ex+3En],即x為一個水印云滴,否則回到步驟7);9)重復(fù)步驟7)、步驟8),直到產(chǎn)生N/2個云滴,構(gòu)成云Cloud;10)Cloud′=CreateSymmetricalCloud(Cloud);生成對稱云Cloud′,云滴數(shù)為N,對稱云Cloud′構(gòu)成水印信息W。
通過云水印生成算法,水印云滴是由正向云發(fā)生器產(chǎn)生的,產(chǎn)生的單個水印云滴并沒有實(shí)際意義,但所有水印云滴的組合就可以表征特定的水印信息。根據(jù)基于字體顏色的水印嵌入方法的特點(diǎn)[4],在生成滿足一定條件的云滴后,需對每個云滴值擴(kuò)展255倍后作取整處理,才能嵌入水印位。每個擴(kuò)展后的云滴值可以嵌入到一個水印位,這里的水印位可以是漢字、英文字母、數(shù)字或其他特殊符號在文本中的定位。根據(jù)用戶輸入的密鑰、嵌入系數(shù)和文本字符,可以確定水印云滴的水印位。由于引入密碼學(xué)中的單向哈希函數(shù),并且嵌入前需要用戶輸入密碼,水印位具有一定的隱蔽性,水印云滴將會散落在文本的不同字符中[5]。水印位還與文本的字符相關(guān),更提高了水印的安全性。為了盡量少地修改文本,使嵌入的水印云滴更隱蔽,可以允許用戶輸入嵌入系數(shù),方便地控制嵌入比例,嵌入系數(shù)與嵌入比例成反比關(guān)系,即嵌入系數(shù)越大,嵌入比例越小。嵌入系數(shù)的取值與文本長度和水印信息大小有關(guān),對于長文本,水印嵌入的比例較小就能嵌入一定數(shù)目的云滴,相應(yīng)的嵌入系數(shù)就較大。云水印嵌入的框圖見圖2。
圖2 云水印嵌入
算法3:文本云水印嵌入算法
輸入:文本T,版權(quán)圖像B,嵌入系數(shù)u,密鑰KEY;輸出:水印文本T′。具體算法如下:
然后,對非水印位進(jìn)行噪聲處理。
云水印的提取過程是先根據(jù)密鑰和嵌入系數(shù)搜索文本全部的水印位。提取水印位的數(shù)據(jù),然后分離出云水印數(shù)據(jù)部分Cloud′和k重水印序列號編碼kS′部分。首先對kS′采用多數(shù)選舉產(chǎn)生S′,多數(shù)選舉過程會對編碼進(jìn)行第1次糾錯;然后,對S′進(jìn)行糾錯碼糾錯,即二次糾錯,并得到S。經(jīng)二次糾錯后的編碼S即為水印序列號。使用水印序列號S提供的參數(shù)對提取的水印數(shù)據(jù)部分Cloud′進(jìn)行篩選得到Cloud。云水印提取的框圖見圖3。
圖3 云水印提取
算法4:文本云水印提取算法
輸入:文本T,嵌入系數(shù)u,密鑰KEY;輸出:水印W。具體如下:
根據(jù)云本身的特殊性,云之間的相似性,以及基于字體顏色的文本水印方法的特點(diǎn),可以通過其產(chǎn)生一定數(shù)量(一個很大的數(shù))的云滴,根據(jù)相近云滴的閾值來認(rèn)證云水印。
算法5:云水印認(rèn)證算法
1)d=Drop(Ex,En,He);2)進(jìn)行云滴篩選,若d∈[Ex-3En,Ex+3En],將d放入云滴集合A,并生成確定度;否則,回到步驟1);3)重復(fù)步驟1)和步驟2),直到產(chǎn)生包含N/2個云滴的集合A,A構(gòu) 成 一 個 云Cloud′;4)Cloud″=CreateSymmetrical-Cloud(Cloud′);5)令:云Cloud″的云滴集合為Drop1,需認(rèn)證的對 稱 云Cloud的 云 滴 值 集 合 為Drop2;6)Drop1=Sort(Drop1);7)Drop2=Sort(Drop2);8)IF α<δ THEN通過認(rèn)證,ELSE未通過認(rèn)證。云水印認(rèn)證框圖如圖4所示。
圖4 云水印認(rèn)證
實(shí)驗(yàn)測試的平臺為WindowsXP操作系統(tǒng)和Word2003。實(shí)驗(yàn)工具為VC6所編寫的水印程序,以及在Matlab 6.5下編寫的實(shí)驗(yàn)程序。
閾值δ的取值與云滴的數(shù)目相關(guān)。一般來說,云滴數(shù)越多閾值δ的取值越小。由于云滴是隨機(jī)的,每次對閾值δ的測定是有微小差別的,所以應(yīng)通過大量的實(shí)驗(yàn)來測定。通過大量實(shí)驗(yàn)得到圖5所示的閾值δ分布圖,每一個閾值的測定至少是1 000次實(shí)驗(yàn)的平均值。
圖5 閾值δ分布圖
下面運(yùn)用實(shí)驗(yàn)分析驗(yàn)證上述提出的云水印認(rèn)證算法。當(dāng)N=1 000時(shí),δ=0.009 665 3。云的數(shù)字參數(shù)為Ex=0,En=1.5,He=0.2,生成含云滴數(shù)為1 000的云Cloud′,圖6中用圓點(diǎn)表示云Cloud′的云滴。待認(rèn)證的云Cloud是從水印文本中提取出來的,云滴用圖6中的加號表示。從圖6中可以看出2個云之間的偏差很小,大部分是重合的,計(jì)算得到的系數(shù)(α=0.007 459 1),小于閾值(δ=0.009 665 3),說明通過認(rèn)證,與實(shí)際顯示的結(jié)果一致[6]。
圖6 通過認(rèn)證的云對比
當(dāng)N=1 000時(shí),δ=0.009 665 3。云的數(shù)字參數(shù)為Ex=0,En=1.5,He=0.2,生成含云滴數(shù)為1 000的云Cloud′,圖7中用圓點(diǎn)表示云Cloud′的云滴。待認(rèn)證的云Cloud是從水印文本中提取出來的,云滴用圖7中的加號表示。從圖7中可以看出2個云之間的偏差很大,很大部分是不能重合的,計(jì)算得到的系數(shù)(α=0.015 863 27)大于閾值(δ=0.009 665 3),說明不能通過認(rèn)證,也與實(shí)際顯示的結(jié)果一致。實(shí)驗(yàn)表明使用該算法對云水印進(jìn)行認(rèn)證是正確可行的。
圖7 未通過認(rèn)證的云對比
取一個未加載水印信息的Word文檔作為加載水印的載體,然后將代表版權(quán)信息的圖片信息作為水印信息;成功地將水印信息嵌入到載體文檔中,比較嵌入前后的載體文檔,人眼很難區(qū)分兩者之間的差別,在未受攻擊時(shí)可準(zhǔn)確地提取所加載的水印信息,證明該算法具有較好的隱蔽性。
嵌入系數(shù)u不等于1時(shí),對非嵌入位嵌入噪音。攻擊者在使用錯誤密鑰時(shí),不能準(zhǔn)確對水印位定位,提取的數(shù)據(jù)不是嵌入的云滴,而是噪音和部分云滴的混合。嵌入系數(shù)u越大,嵌入率越低,可以嵌入的噪音越多,對于攻擊者來說,正確提取水印越困難。
表2是攻擊者在不知密鑰前提下提取的實(shí)驗(yàn)結(jié)果。取N=10 000的Word文本,依次使用不同嵌入系數(shù)嵌入水印。攻擊者由于不知道密鑰,只能使用錯誤密碼提取。從實(shí)驗(yàn)結(jié)果看,未知密鑰時(shí),不能通過認(rèn)證。
表2 未知密鑰時(shí)的認(rèn)證實(shí)驗(yàn)
在該實(shí)驗(yàn)中,基于云模型的文本水印技術(shù)的實(shí)驗(yàn)結(jié)果表明,使用最常見的攻擊格式化文本水印的方法對加載水印后的文檔進(jìn)行攻擊,將加載水印后的文檔全文設(shè)為相同的行間距和字間距,文檔的水印仍可以完好的讀取,認(rèn)證通過。
剪切、刪除、復(fù)制、添加文本內(nèi)容的攻擊,造成文本語義的破壞,通過剪切粘貼一大段帶有水印信息的文本、刪除一大段任意文本、復(fù)制粘貼一大段帶水印的文本和添加一大段任意文本,造成部分嵌入的云滴次序的破壞或增加減少了云滴,但水印提取算法仍能正確提取出水印云滴,認(rèn)證通過。如果剪切后粘貼的攻擊,云滴只是挪動位置,但不會破壞云滴,因而不會影響認(rèn)證。刪除攻擊等同于修改攻擊。
剪切、粘貼、刪除、復(fù)制、添加、修改攻擊對于水印的破壞程度與嵌入率有關(guān)。一般來說,嵌入率越低,嵌入的水印越分散,對于使用相同部分修改攻擊的抗破壞能力越強(qiáng)。表3為使用嵌入系數(shù)為1,即嵌入率為100%時(shí),修改攻擊后的水印認(rèn)證。
表3 修改攻擊云認(rèn)證實(shí)驗(yàn)
依據(jù)云理論,提出了基于云模型的文本水印技術(shù)。代表版權(quán)信息的媒體可以是圖像,也可以是文字信息等。加密后的版權(quán)信息,經(jīng)過云發(fā)生器生成的云被嵌入到Word文檔中,生成的云滴數(shù)目可以很多也可以很少,所以該方法對于不同大小的Word文檔都適用;由于版權(quán)信息的加密過程需要密碼,在不知密碼的前提下不能生成特定的云。為了增加系統(tǒng)的魯棒性,在云水印的嵌入和提取時(shí),都需要提供密鑰和嵌入系數(shù);在不知密鑰的前提下,攻擊者不能正確定位水印位,提取的云不是嵌入的云,因而是不能正確通過認(rèn)證的。對于非水印位,為了進(jìn)一步隱蔽水印位,采取在非水印位嵌入噪音的策略。實(shí)驗(yàn)表明該方法可以實(shí)現(xiàn)對文本版權(quán)的認(rèn)證。
[1]李德毅,史雪梅,孟海.隸屬云和隸屬云發(fā)生器[J].計(jì)算機(jī)研究與發(fā)展,1995,32(6):15-20.
[2]李德毅,劉常昱.論正態(tài)云模型的普適性[J].中國工程科學(xué),2004,6(8):28-34.
[3]李德毅,劉常昱,杜鹢,等.不確定性人工智能[J].軟件學(xué)報(bào),2004,15(9):1-13.
[4]陳萍,郭水旺,陳華麗.基于字體顏色的文本信息隱藏算法[J].科學(xué)技術(shù)與工程,2007,7(14):210-212.
[5]戈英民,鄭崗.一種利用字符特征變化的文本數(shù)字水印方法[J].微型電腦應(yīng)用,2005,21(3):36-39.
[6]劉常昱,李德毅,杜鹢,等.正態(tài)云模型的統(tǒng)計(jì)分析[J].信息與控制,2005,34(2):236-240.