楊玉軍, 楊夷梅
(懷化學院計算機科學與技術系,湖南 懷化 418008)
計算機和網(wǎng)絡技術的迅速發(fā)展使得數(shù)字多媒體信息被大量使用且能方便快捷地進行傳輸。然而數(shù)字媒體的版權問題日益成為人們關注的熱點問題。因此,數(shù)字水印技術和信息隱藏技術[1]得到了迅速的發(fā)展,并廣泛應用于圖像、視頻和音頻等方面,但對于工程圖的應用研究相對較少。工程圖廣泛應用于服裝和建筑等行業(yè),它是設計師們的智慧結晶和勞動成果,也是企業(yè)的重要資產(chǎn),其版權應該得到有效的保護。目前,已經(jīng)有一些與保護工程圖相關的研究[2-5],但還處于起步階段。文獻[3]提出了一種通過修改工程圖中各實體頂點間的距離比例來隱藏信息的算法;在文獻[3]的基礎上,文獻[4]提出了一種改進的信息隱藏算法。雖然這些方法能夠有效的抵抗平移、旋轉、縮放和修改等攻擊,但是由于修改了工程圖中的頂點間的距離,因此在實際應用中可能會影響產(chǎn)品的加工與制造。文獻[5]提出了一種基于實體調色板的信息隱藏算法,但不能抵抗編輯、修改甚至刪除攻擊,而且嵌入的信息量不高。在此,本文提出一種基于字符點陣式編碼的工程圖信息隱藏算法,該算法先對要隱藏的信息進行點陣式編碼處理,使字符具有圖像的特性,然后根據(jù)使用Logistic混沌系統(tǒng)產(chǎn)生的二值化混沌序列選擇其中部分線段實體,結合 HVS和隱藏信息對工程圖的線寬進行微小修改,從而實現(xiàn)隱藏信息的目的和自校驗。實驗結果顯示該算法對平移、旋轉和編輯等攻擊具有較好的魯棒性和較高的嵌入量, 是一種較好的能解決數(shù)字工程圖的版權保護問題的方法。
點陣式字符編碼是以字符的點陣字庫為基礎的字符編碼技術,點陣字庫是一個保存了所有文字和字符的點陣數(shù)組的數(shù)據(jù)文件。廣泛應用于液晶顯示技術中。以UCDOS中文宋體字庫為例,根據(jù)國標漢字庫中的每一個文字和字符均由256點陣來表示的標準,每一個文字和字符由 16行16列的點陣組成,每一個點可以理解為一個像素,因此每一個文字和字符的字形可以理解為一幅圖像。事實上任何一個字符不僅可以顯示為字符,也可以顯示為256像素的圖像。
AutoCAD是美國Autodesk公司的產(chǎn)品,廣泛應用于電子電路、機械設計、服裝鞋帽、航空航天等諸多領域?,F(xiàn)已成為國際上廣為流行的繪圖工具。本文將以AutoCAD 2004為應用工具,討論工程圖的信息隱藏技術。
組成工程圖的實體元素主要有點、線段、圓和弧,其中以線段居多。線段是屬于某個工作層上的對象,在每個工作層上都可以進行圖形繪制和設置線段的線型和顏色。AutoCAD支持多種線型的選擇,選擇不同的線型可以使圖形更美觀和對比查看。在默認情況下,AutoCAD工作層上的線型為連續(xù)(即Continuous)類型,同時還可以選擇隨層(即 Bylayer)和隨塊(即ByblockM),這樣在某個工作層上的所有線段都是統(tǒng)一的。線段的另外一個重要屬性就是線寬,線寬的范圍從 0mm~2.11mm,也可以選擇隨層或隨塊,默認情況下線段的線寬為 0.25mm,AutoCAD提供的幾種線型的選擇方式如圖1所示。
圖1 AutoCAD線段屬性圖
由于工程圖主要由線段組成,因此可以將要隱藏的信息隱藏在這些線段中。然而衡量一個信息隱藏技術的好壞,一方面取決于其抗攻擊能力,另一方面取決于人的主觀視覺特性,若目標工程圖中含有某些人眼不敏感或者“不在乎”的信息,那么對觀察者而言,就意味著信息隱藏技術較好。因此,信息隱藏技術必須考慮人眼的視覺特性。
人眼視覺系統(tǒng)(Human Visual System, HVS)的掩蔽特性主要表現(xiàn)在3個方面:亮度特性、頻率特性和顏色感知特性。而本文主要考慮的是工程圖線段的線寬感知特性。從感知特性來說,Low和Maxemchuk等人在文獻[6]和文獻[7]中提出,在人的視覺條件下,如果字符間距的改變量不超過2%(約0.17mm),肉眼是感覺不到的。類似的,在工程圖中,如果兩條線段的線寬差距0.1mm之內(nèi)的話,從人體視覺感知特性來看是無法感知的。圖2為三條不同線寬的線段,其中,線段 A的線寬為 0.18mm,線段 B的線寬為0.20mm,線段C的線寬為0.25mm,通過肉眼很難區(qū)分這三條線段的線寬。
圖2 三條不同線寬的線段視圖
因此,從人體視覺感知特性來看[8],采取微小改變工程圖中線段線寬的方法來隱藏秘密信息將會具有較好的隱藏效果。當然,線段線寬的微小改變并不會改變工程圖的標注尺寸,同時也不會影響工程圖的正常閱讀和執(zhí)行。在AutoCAD 2004中,線段線寬的范圍從0.00mm~2.11mm,總共分24個等級,相鄰2個或3個等級的線寬相差不大,最小的差距為 0.02mm,最大為0.42mm,適合隱藏信息的條件,對24級的線段線寬分析發(fā)現(xiàn),大部分的線寬級差在 0.01mm~0.15mm之間,且線段線寬值較小的級差較小,比較適合于隱藏信息。具體可以通過以下方法來隱藏信息,當需要隱藏的信息為“1”時,將線段的線寬增大或減少一級,當需要隱藏的信息位為“0”時,保持該線段的線寬不變。
針對一幅工程圖,可以把組成工程圖的所有線段看作成一個集合,表示為 S ={ s1, s2,… ,si,… ,sn}。嵌入信息前的工程圖用 D表示,嵌入信息后的工程圖用D′表示。
信息的嵌入算法具體描述如下:
Step 1 輸入要隱藏的信息H和待處理的工程圖D;
Step 2 將要隱藏的信息H轉換成為點陣式字符編碼序列其中mi是要隱藏信息H中的某個字符的點陣式編碼;
Step 3 逐個將點陣式字符編碼序列mi轉換成二進制形式其中bi×j×k是要隱藏信息字符的點陣式編碼的一位二進制位,表示點陣式的j行k列的一位二進制位,r和c是點陣式的陣列的最大行數(shù)和列數(shù),最后形成所有點陣式字符編碼序列的二進制形式
Step 4 在密鑰K的作用下,由混沌系統(tǒng)L生成混沌序列,經(jīng)過二值化處理后,得到二值化的混沌序列 Q ={q1, q2, …,qi, … , qn},其 中qi∈{0,1}
Step 6 根據(jù)序列 Q的值來修改線段的線寬,當qi值為“1”時,則將對相應線段的線寬做微小修改;當qi值為“0”時,則不在該線段對象中隱藏信息,保持線段原來的線寬不變,微小修改線段的線寬具體方法如式(2)所示
Step 7 待所有信息嵌入后,即獲得含有秘密信息的工程圖D′。
隱藏后信息的檢測和提取算法基本與嵌入算法相似 ,具體描述如下:
Step 1 輸入含有隱藏信息的工程圖D′;
Step 3 在密鑰K的作用下,由混沌系統(tǒng)L生成混沌序列,經(jīng)過二值化處理后,得到二值化的 混沌 序 列 Q ={q1, q2, …,qi, … , qn},其 中qi∈{0,1};
Step 4 根據(jù)序列Q的值來檢測和提取線段的線寬,當qi值為“1”時,若對相應線段的線寬比原來線段的線寬減小k級,則提取信息值為k,并轉換成二進制值bi×j×k;當qi值為“0”時,則不需要進行檢測和提取;
Step 5 循環(huán)執(zhí)行Step 4,直到所有的信息都被檢測完成,得到二進制形式 Bi={ bi×1×1,… ,bi×j×k, … ,bi×r×c};
Step 6 將二進制形式Bi合并成二進制集合B={B1,…,Bi, …,Bn},對B進行點陣式字符處理,得到序列 M ={m1,m2, …,mi, … , mn};
要隱藏的信息 H轉換成為點陣式字符編碼序列 M ={m1, m2, …,mi, … , mn},其中mi是要隱藏信息H中的某個字符的點陣式編碼;逐個將點陣式字符編碼序列mi轉換成二進制形式Bi={bi×1×1,…,bi×j×k,…,bi×r×c},其中 bi×j×k是要隱藏信息字符的點陣式編碼的一位二進制位,表示點陣式的j行k列的一位二進制位,r和c是點陣式的陣列的最大行數(shù)和列數(shù),最后形成所有點陣式字符編碼序列的二進制
Step 7 對mi進行點陣式字符編碼校正和識別處理,即獲得隱藏的信息H。
算法測試在P4 2.6GHz×2,DDRAM 2048M,Windows XP Professional 5.1,AutoCAD 2004 以及VBA開發(fā)環(huán)境中進行,圖3和圖4分別是原始的部分工程圖和含有隱藏信息“懷化學院”的部分工程圖。對比圖3和圖4,隱藏信息在工程圖中是不可察覺的,同時經(jīng)過實驗測試,可以正確提取隱藏信息“懷化學院”。
由于該算法是通過修改線段的線寬來隱藏信息,且每一個線段實體可隱藏1-2bit的信息,且算法采用了混沌系統(tǒng)來產(chǎn)生二值化的偽隨機序列來選擇待隱藏信息的線段實體對象,根據(jù)混沌系統(tǒng)的特性,其“0”和“1”的分布是均勻的,因此“0”和“1”都接近0.5,因此對于一個包含N個線段實體對象的工程圖來說,其理論可嵌入信息容量C為N bit,即
而文獻[5]和文獻[9]提出的算法的嵌入量為 N/2 bit,因此本文提出的算法嵌入量是文獻[5]和文獻[9]中提出算法的嵌入量的2倍。
圖3 原始的部分工程圖
圖4 含有隱藏信息的部分工程圖
信息隱藏算法和信息檢測及提取算法都是按順序對工程圖的線段實體進行信息嵌入和提取,因此對于一個存在n個線段實體的二維工程圖,信息隱藏算法和檢測算法的時間復雜度均為O(n)。
在實際應用中,工程圖的實體對象可能被進行部分的修改或移動,甚至刪除等編輯操作,因此,需要分析該算法是否具有很好的抗編輯等攻擊能力??紤]工程圖的正常編輯,以及工程圖的蓄意破壞、篡改密寫信息等行為通常針對工程圖連續(xù)的若干實體對象,這樣對密寫信息連續(xù)嵌入的算法是不利的,而對于非連續(xù)的編輯和攻擊,算法具有很好的效果。
3.3.1 抗插入或移動攻擊能力分析
為了分析算法的抗插入或移動攻擊能力,首先在一個工程圖中隱藏信息“懷化學院”,然后將已隱藏信息的工程圖分別進行插入一些實體對象或移動一些實體對象后,再提取工程圖中的隱藏信息。表1為工程圖進行插入或移動部分線段實體對象后隱藏信息的提取實驗結果。
由表1可知,對已隱藏信息的工程圖分別進行插入部分線段實體對象并不影響隱藏信息的提取,從而表明了算法具有較好的抗插入攻擊能力,但移動操作對算法提取秘密信息的影響較大,理論情況與實驗情況基本符合,即便采用了自校驗技術對連續(xù)的多線段實體對象進行攻擊,算法還是具有很弱的抗擊能力。
表1 插入或移動部分對象后隱藏信息的提取實驗結果
3.3.2 抗編輯或刪除攻擊能力分析
為了分析算法的抗編輯或刪除攻擊能力,首先在一個工程圖中隱藏信息“懷化學院”,然后將已隱藏信息的工程圖分別進行隨機或連續(xù)的編輯或刪除部分實體對象后,再提取工程圖中的隱藏信息。表2為工程圖進行編輯或刪除部分實體對象后隱藏信息的提取實驗結果。
表2 編輯或刪除部分對象后隱藏信息的提取實驗結果
由表2可知,對已隱藏信息的工程圖分別進行編輯或刪除不連續(xù)的部分線段實體對象并不影響隱藏信息的提取,從而表明了算法具有較好的抗隨機編輯或刪除線段實體對象的攻擊能力,這完全符合大部分實際情況需要對工程圖進行輕度編輯的操作要求,因此算法具有較好的實際應用價值。但連續(xù)編輯或刪除實體對象操作會對算法提取隱藏信息具有較大的影響,理論情況與實驗情況基本符合,即便采用了自校驗技術也沒有辦法達到較高或完全提取的水平,這正是日后工作要努力解決的問題。
該算法采用了字符點陣式編碼技術,在隱藏信息時隱藏的是秘密信息字符的點陣式的一個點素,而不是字符的ASCII或其它編碼的一個二進制位。在提取信息時,算法提取的也是字符的點陣式的一個點素,即使字符的部分點陣式點素的丟失,也可以根據(jù)字符的點陣式識別技術進行糾正。而普通算法在提取信息時,丟失了任何一個編碼二進制位都是無法糾正的,變成另外一個字符而發(fā)生信息錯誤,這是因為機器的字符編碼是采用連續(xù)編碼的方式。圖5是實驗過程中提取隱藏信息“化”時的實驗結果圖。圖5A是完整提取信息“化”的實驗結果圖;圖5B和圖5C是在有部分實體對象進行編輯攻擊之后,有丟失點陣式點素情況下提取信息“化”的實驗結果圖,在這種情況下,算法可以正確識別出信息是“化”;圖5D是在較大范圍編輯攻擊下提取的信息“化”的實驗結果圖,在這種情況下,算法基本可以識別出信息是“化”,但實驗中也有幾次沒有正確識別出來,經(jīng)查看提取的實驗結果圖,那是連續(xù)局部大范圍攻擊的原因造成的;圖5E是在連續(xù)大范圍編輯攻擊下提取的信息“化”的實驗結果圖,在這種情況下,算法無法正確識別提取的信息是信息“化”。
圖5 提取隱藏信息“化”時的實驗圖
在實際情況下,工程圖一般需要進行一些圖形處理操作,如平移、旋轉和縮放等,因此,需要分析算法針對這些操作的抗攻擊能力。
3.5.1 抗平移攻擊能力分析
為了分析算法的抗平移攻擊能力,首先在工程圖中隱藏信息“懷化學院”,然后將已隱藏信息的工程圖分別進行隨機多次平移操作后,再分別提取工程圖中的隱藏的信息。測試結果顯示,在經(jīng)過多次平移后的工程圖中都能正確提取隱藏的信息,如表3所示,表明算法具有很好的抗平移攻擊能力。
表3 工程圖平移后的隱藏信息提取實驗結果
3.5.2 抗旋轉攻擊能力分析
為了分析算法的抗旋轉攻擊能力,同樣首先在工程圖中隱藏信息“懷化學院”,然后將已隱藏信息的工程圖分別進行隨機多次旋轉操作后,再分別提取工程圖中的隱藏的信息。測試結果顯示,在經(jīng)過多次旋轉后的工程圖中都能正確提取隱藏的信息,如表4所示,表明算法具有很好的抗旋轉攻擊能力。
表4 工程圖旋轉后的隱藏信息提取實驗結果
3.5.3 抗縮放攻擊能力分析
為了分析算法的抗縮放攻擊能力,同樣首先在工程圖中隱藏信息“懷化學院”,然后將已隱藏信息的工程圖分別進行隨機多次縮放操作后,再分別提取工程圖中的隱藏的信息。測試結果顯示,在經(jīng)過多次縮放后的工程圖中都能正確提取隱藏的信息,如表5所示,表明算法具有很好的抗縮放攻擊能力。
表5 工程圖縮放后的隱藏信息提取實驗結果
抗組合攻擊能力是指對隱藏信息后的工程圖進行任意多種以上的攻擊方法后,算法對攻擊后的工程圖能否正確提取隱藏信息的能力。為了分析算法的抗組合攻擊能力,同樣首先在工程圖中隱藏信息“懷化學院”,然后將已隱藏信息的工程圖隨機進行前面提到的修改、移動、修改、刪除、平移、旋轉和縮放七種操作中的多種操作任意組合操作后,再分別提取工程圖中隱藏的信息。測試結果顯示,在經(jīng)過多次組合操作處理后的工程圖中也能較好地提取隱藏的信息,如表6所示,表明算法具有較好的抗組合攻擊能力。
表6 工程圖組合攻擊后隱藏信息的提取實驗結果
由于算法對平移、旋轉、縮放、修改和插入攻擊具有很好的魯棒性,因此對這幾種操作的任意組合攻擊算法同樣具有很好的魯棒性。而對于移動和刪除攻擊算法具有不太好的魯棒性,因此算法對所有情況的組合攻擊中主要取決于算法的抗移動和抗刪除攻擊能力。
針對工程圖的版權保護問題和現(xiàn)有信息隱藏技術魯棒性和實用性不強的特點,本文提出了一種基于字符點陣式編碼的工程圖信息隱藏算法,該算法先對要隱藏的信息進行點陣式編碼處理,使字符具有圖像的特性,然后根據(jù)使用Logistic混沌系統(tǒng)產(chǎn)生的二值化混沌序列選擇其中部分線段實體,結合HVS和隱藏信息對工程圖的線寬進行微小修改,從而實現(xiàn)隱藏信息的目的和自校驗。實驗結果顯示該算法對平移、旋轉和編輯等攻擊具有較好的魯棒性和較高的嵌入量,較好地解決了數(shù)字工程圖的版權保護問題。即使在提取信息時出現(xiàn)輕度錯誤,算法也可以根據(jù)字符點陣式編碼圖像識別技術進行字符識別,這樣大大提高了算法的抗攻擊能力。實驗結果顯示該算法對工程圖的線段實體對象可能被進行部分的修改或移動,甚至刪除等編輯操作攻擊具有較好的魯棒性,同時對工程圖的平移、旋轉和縮放等一般圖形處理操作攻擊也具有很好的魯棒性。
與文獻[3]和文獻[4]中提出的算法相比,本文提出的算法沒有修改頂點間的比例和距離,因此不會改變工程圖的加工尺寸,同時也不會對產(chǎn)品的生產(chǎn)和加工制造產(chǎn)生影響。與文獻[5]相比,通過一個線段實體對象一次嵌入2bit的信息,提高了信息隱藏量,是文獻[5]中提出算法的2倍,其次是算法引入了字符點陣式編碼技術,允許30%以下的失敗提取信息也能通過字符點陣式識別技術而識別出嵌入的隱藏信息,這樣大大提高了算法的容錯和抗攻擊能力。
[1]Cox I J, Kalker T, Pakura G, et al. Information transmission and steganography[C]//Proc of the 4thInt Workshop on Digital Watermarking, LNCS 3710.Berlin: Springer, 2005: 15-29.
[2]黃曉生, 顧景文. CAD 圖形數(shù)據(jù)數(shù)字水印綜述[J].工程圖學學報, 2005, 26(6): 140-145.
[3]汪亞順, 徐銘政. 基于二維工程圖的數(shù)字水印比例算法[J]. 南昌大學學報(工科版), 2003, 25(4): 29-31.
[4]汪亞順, 徐銘政. 基于二維工程圖的數(shù)字水印擴頻算法[J]. 南昌大學學報(工科版), 2005, 27(4): 91-94.
[5]彭 飛, 龍 敏, 孫星明. 基于 HVS與實體調色板的二維工程圖信息隱藏算法[J]. 工程圖學學報,2009, 30(3): 71-75.
[6]Brass J T, Low S, Maxemchuk N F. Copyright protection for the electronic distribution of text document [C]//Proceeding of the IEEE, 1999:1181-1196.
[7]Low S, Maxemchuk N F. Performance comparison of two text marking methods [J]. IEEE J. Select Areas Commun., 1998, 16(5): 561-572.
[8]Ganzalez R C, Wintz P. Digital image processing(2nd edition)[M]. New York: Addison-Wesley Publishing Co., 1987. 38-42.
[9]彭 飛, 孫星明. 一種基于特征的二維工程圖信息隱藏算法[J]. 計算機工程與應用, 2007, 43(15):53-55.