◆丁 暉 周建偉通訊作者,2 金永濤,2 劉海燕 張秦雪
?
SHP文件魯棒數(shù)字盲水印技術(shù)研究與應用
◆丁 暉1周建偉通訊作者1,2金永濤1,2劉海燕1張秦雪1
(1.北華航天工業(yè)學院 河北 065000;2.河北省航天遙感信息處理與應用協(xié)同創(chuàng)新中心 河北 065000)
地理空間數(shù)據(jù)是搭建地理信息系統(tǒng)平臺,進行應用開發(fā)的核心,矢量數(shù)據(jù)又是地理空間數(shù)據(jù)關(guān)鍵一部分,SHP文件作為傳輸?shù)乩硎噶啃畔⒌囊环N基本文件格式,其安全性的提升對整個地理信息系統(tǒng)有著重要意義。地理信息系統(tǒng)通過數(shù)字水印技術(shù)對數(shù)字信息數(shù)據(jù)提供有效防護,是新興的結(jié)合方式。本文主要研究分析了矢量數(shù)據(jù)的特征,針對SHP矢量數(shù)據(jù)文件結(jié)構(gòu),提出了一種基于歸一化的矢量數(shù)據(jù)盲水印算法。通過函數(shù)變換對所有矢量坐標進行歸一化處理,再將水印信號嵌入到歸一化值中,保證數(shù)據(jù)的統(tǒng)一性,提升模型的精度。實驗結(jié)果表明,該方法對縮放、増刪點、屬性排序、數(shù)據(jù)格式轉(zhuǎn)換等攻擊具有較好的魯棒性。
矢量數(shù)據(jù);歸一化;盲水印;魯棒性
目前為提升系統(tǒng)安全性,將數(shù)字水印技術(shù)與地理空間數(shù)據(jù)結(jié)合,在數(shù)據(jù)文件在流轉(zhuǎn)和應用過程中進行追溯和監(jiān)控,可以有效抵制非法復制、傳播、利用他人成果的行為。矢量數(shù)據(jù)文件在GIS系統(tǒng)中被廣泛應用研究,引起國內(nèi)學者對其安全傳輸?shù)闹匾?,獲得了越來越多的研究成果。本文通過函數(shù)變換對所有矢量坐標進行歸一化處理,再將水印信號嵌入到歸一化值中,保證數(shù)據(jù)的統(tǒng)一性,提升模型的精度。
地理空間數(shù)據(jù)是將現(xiàn)實生活中真實可見的各種地理特征和現(xiàn)象以符號形式表示,用于分析自然、環(huán)境、社會、經(jīng)濟等領(lǐng)域中的諸多要素信息,包含要素的數(shù)量、質(zhì)量、屬性特征,用文字、數(shù)字、圖像等方式展示空間實體目標的位置、形狀、大小等信息的數(shù)據(jù)。地理空間數(shù)據(jù)是實現(xiàn)數(shù)字化系統(tǒng)的基礎信息,而且地理空間系統(tǒng)的絕大部分功能將以地理空間數(shù)據(jù)為原點進行實現(xiàn)?,F(xiàn)在空間數(shù)據(jù)已步入人們的日常生活,在交通應用、城市建設和環(huán)境保護中發(fā)揮重要作用。
地理空間數(shù)據(jù)具有定位、定性、時間和空間關(guān)系等特性。定位是指在已知的坐標系里空間目標都具有唯一的空間位置;定性是指有關(guān)空間目標的自然屬性,它伴隨著目標的地理位置;時間是指空間目標是隨時間的變化而變化;空間關(guān)系通常一般用拓撲關(guān)系表示??臻g數(shù)據(jù)具有三個基本特征:空間特征、屬性特征、時間特征。
空間特征主要表現(xiàn)為地理要素的位置信息,包括經(jīng)緯度絕對位置和要素之間的相對位置。
屬性特征通常稱非空間數(shù)據(jù),因為單獨依靠位置信息無法對要素區(qū)分,需要對特定的要素添加屬性,用來描述實體的性質(zhì)和意義。存放時也是與空間位置數(shù)據(jù)分別保存的。比如一個點可以表示一段道路的起點,也可以表示終點。
時間特征指的是被記錄的地理空間數(shù)據(jù)是隨時間不斷變化的,反映數(shù)據(jù)的動態(tài)性,數(shù)據(jù)只能記錄被采集時的特征和屬性,所以需要不斷更新。而且時效性對數(shù)據(jù)分析有很大影響,這一特征也逐漸被重視。
矢量數(shù)據(jù)是通過用幾何形狀中的點、線、多邊形來表示地理空間中的實物。例如:用坐標點來標注準確的地理位置,將連續(xù)的坐標點連接成線用于表示邊界,多條線段頭尾連接形成閉環(huán)表示區(qū)域等。在矢量文件,例如SHP文件中的每個元素都稱作對象,每個對象成為獨立的個體,擁有獨特的屬性特征,用不同的符號表示對象的顏色、形狀、類型、大小等。也因為數(shù)據(jù)元素是獨立的個體,在對整個圖例進行放大縮小旋轉(zhuǎn)操作時,不會出現(xiàn)失真的情況,不受分辨率的影響。也可以對對象的屬性進行修改,而不會對其他對象產(chǎn)生影響,這一特性也為設計數(shù)字水印算法提供了可行性。
SHP文件是地理空間矢量數(shù)據(jù)的一種特殊的數(shù)據(jù)結(jié)構(gòu),可以用于表示點、線、多邊形圖形數(shù)據(jù)。每個SHP文件都是一個長度可變的文件,由長度固定100字節(jié)的主文件頭和長度可變的空間數(shù)據(jù)記錄兩部分組成。每一條空間數(shù)據(jù)記錄又由一個固定長度8字節(jié)的記錄頭和長度可變的記錄內(nèi)容構(gòu)成。文件結(jié)構(gòu)如圖1所示。
圖1 SHP文件結(jié)構(gòu)
主文件頭長度為一百個字節(jié),包含了十七個信息,每個信息的長度不等,表示方式也不同。數(shù)據(jù)結(jié)構(gòu)如表1所示。
表1 SHP文件主文件頭數(shù)據(jù)結(jié)構(gòu)
字節(jié)號32-35指定改文件的文件類型(Shape Type),例如:值為1指雙坐標點文件,值為5指多邊形文件等等。
通過對SHP文件數(shù)據(jù)結(jié)構(gòu)的分析,變長的數(shù)據(jù)用鏈表數(shù)據(jù)結(jié)構(gòu)進行存儲。每個字段都有特定含義,在讀取數(shù)據(jù)內(nèi)容的時候可以利用指針指定位置,讀取某一屬性值。記錄頭的內(nèi)容包括該記錄的序號和具體的坐標記錄。記錄號和坐標兩個記錄項都是int型,并且文件中的記錄號都是從1開始的。
記錄內(nèi)容包括元素的幾何類型和具體的坐標,記錄內(nèi)容隨元素類型的變化而變化。點文件的記錄內(nèi)容如表2所示。
表2點文件記錄內(nèi)容
利用Geotools工具類對點文件進行內(nèi)容讀取。首先對SHP文件的圖層對象進行讀取,獲取到對象列表,為對象設計數(shù)據(jù)模型包含屬性定義方便調(diào)用。關(guān)鍵代碼如下:
List
ShapefileDataStoredataStore=buildDataStore(shpFilePath);
FeatureSource
FeatureCollection
Collection
Property pro = iterP.next();
PointX = ((Point)(pro.getValue())).getX());
PointY = ((Point)(pro.getValue())).getY());
數(shù)字水印技術(shù)起源于傳統(tǒng)印刷中的水印技術(shù),也就是在造紙業(yè)中用于證明紙張合法性的技術(shù),多用于紙幣、郵票等。在700多年前,紙水印就在意大利的Fabriano小鎮(zhèn)上的一家造紙廠出現(xiàn)了,通過機械壓縮將圖案壓制到紙漿中。而最早出現(xiàn)的電子水印技術(shù)是在1954年的美國,當時為了保護音樂版權(quán),將專利標識用隱式手法嵌入到音樂中。
數(shù)字水印技術(shù)主要解決水印嵌入和水印檢測兩個問題。進行水印嵌入工作至少需要水印載體和水印信號。一般情況,水印信號需要經(jīng)過加密轉(zhuǎn)換再進行嵌入。水印嵌入操作結(jié)束后的輸出結(jié)果就是含有水印信號的產(chǎn)品,用于安全傳輸或發(fā)布。根據(jù)檢測方法的差異,將水印技術(shù)又區(qū)分為盲水印技術(shù)和非盲水印技術(shù)。盲數(shù)字水印檢測提取的過程中是不需要原載產(chǎn)品參與的。數(shù)字水印的框架如圖2所示。
圖2 數(shù)字水印的框架
要嵌入原始載體文件中的水印信號一般是有意義的文字或數(shù)字。一般情況需要對水印信號進行加密處理,通過格式轉(zhuǎn)換將文字符號轉(zhuǎn)換成圖像格式,例如bmp圖像,再對圖像信號進行二值化、灰度化處理,最后采用混沌置亂變換生成加密水印信號。處理結(jié)果如圖3、4所示。
圖3 bmp格式水印信號
圖4 Arnold置亂變換后水印信號
水印嵌入是數(shù)字水印技術(shù)的關(guān)鍵步驟,通過算法將水印信號嵌入到原始載體文件中。對于原始文件的格式不同,需要采用不同的算法,針對SHP特殊的數(shù)據(jù)結(jié)構(gòu),設計合適的算法是研究的難點。水印嵌入流程圖如圖5所示。
圖5 水印嵌入過程
水印嵌入算法可以描述為:
有時為增強算法的安全性,在嵌入水印過程中會使用密鑰加密。
針對SHP這種特殊的數(shù)據(jù)結(jié)構(gòu),需要考慮水印嵌入的位置和水印與原始數(shù)據(jù)的結(jié)合方式。根據(jù)水印嵌入位置不同,分為空間域水印算法和變換域水印算法。由于SHP文件中的屬性數(shù)據(jù)都是用于描述文件屬性,內(nèi)容不能進行修改,于是選擇采用空間域水印算法將水印嵌入到空間數(shù)據(jù)(坐標)中。本文采用了一種可以同時抵抗頂點攻擊和幾何攻擊的魯棒性盲水印算法。
通過對矢量坐標數(shù)據(jù)進行歸一化處理,對歸一化后的值進行水印嵌入,結(jié)束后的數(shù)據(jù)值通過反歸一化,再次得到的數(shù)據(jù)就是含水印信號的數(shù)據(jù)。工作難點在于歸一化處理以及選取水印信號的嵌入位置,還需保證函數(shù)值前后變化差別不大,對原圖影響在可控范圍內(nèi)。
對第一次得到的函數(shù)值進行水印信號的嵌入,選用QIM量化方法。水印信號在嵌入前要進行二值化轉(zhuǎn)換,生成隨機的0,1序列。嵌入后將函數(shù)值進行反歸一化處理得到含水印的數(shù)據(jù),寫入原文件中。
通過線性變化的數(shù)據(jù)值,可以有效抵抗幾何攻擊。數(shù)據(jù)的平移和放大縮小等幾何攻擊都可以看作是對數(shù)據(jù)值的算術(shù)運算,函數(shù)的選擇有效地將數(shù)量變化消化為零。QIM量化嵌入方式,使水印數(shù)據(jù)隨機分布到空間數(shù)據(jù)中,增強了算法的魯棒性。
采用上述嵌入方法進行試驗。作為水印嵌入的載體文件。矢量坐標數(shù)據(jù)都精確到了小數(shù)點后15位,通過將數(shù)據(jù)放大為整數(shù)更適合變換。圖6為SHP格式的河北省區(qū)域圖像:
圖6 河北省區(qū)域SHP文件
表3是載體圖像的一些屬性信息。
表3 載體圖像屬性信
圖7是水印信號嵌入到載體文件后的圖像。
可以通過坐標嵌入水印前后的坐標誤差計算分析試驗結(jié)果,通過表4的結(jié)果可知此方法前后誤差很小,滿足精度要求。
表4 試驗結(jié)
數(shù)字水印的提取算法是嵌入算法的逆過程,在嵌入過程中選用的函數(shù)處理方式,目的是在水印提取過程中不再需要原始數(shù)據(jù)的參與,達到盲檢測的效果,提高算法的可用性。數(shù)字水印提取過程如圖8所示:
圖8 數(shù)字水印提取過程
在水印實際提取過程中,通過嵌入的反向操作,將原始載體文件X與水印信號W分離,再對水印信號進行置亂算法的逆過程,得到正確的二值序列,最后進行符號轉(zhuǎn)換就可以看到水印的實際意義。
本文所介紹的水印添加方法是針對矢量數(shù)據(jù)SHP格式文件,對坐標數(shù)據(jù)采用歸一化處理后,通過QIM量化處理選定嵌入位置,并且在水印提取方面不需要原始載體文件的參與,實現(xiàn)盲水印目的。并且通過試驗結(jié)果表明,這種水印方式可以有效抵抗幾何攻擊,具有較好的魯棒性,實現(xiàn)方法簡便快捷。
[1]孫建國,門朝光,俞蘭芳,曹劉娟.矢量地圖數(shù)字水印研究綜述[J].計算機科學,2009,36(09):11-16.
[2]郭思遠.矢量地理空間數(shù)據(jù)數(shù)字水印算法與攻擊性研究[D].解放軍信息工程大學,2008.
[3]黃良永,肖德貴.二值圖像Arnold變換的最佳置亂度[J].計算機應用學報,2009,29(02):474-476.
[4]金聰,葉俊民,許凱華,張清國.具有抗幾何攻擊能力的盲數(shù)字圖像水印算法[J].計算機學報,2007(03):474-482.
[5]楊成松,朱長青,陶大欣.基于坐標映射的矢量地理數(shù)據(jù)全盲水印算法[J].中國圖像圖形學報,2010,15(04):684-688.
[6]曹江華. GIS矢量數(shù)據(jù)多重水印研究[D].南京師范大學,2011.
[7]郭思遠,朱長青,闞映紅,楊成松.空域矢量地理數(shù)據(jù)水印算法及攻擊方法分析[J].測繪科學,2009,34(03):37-38+205.
[8]鐘尚平,高慶獅.矢量地圖水印歸一化相關(guān)檢測的可行性分析與改進[J].中國圖像圖形學報,2006(03):401-409.
[9] 楊成松,朱長青.基于常函數(shù)的抗幾何變換的矢量地理數(shù)據(jù)水印算法[J].測繪學報,2011,40(02):256-261.
[10]閔連權(quán).一種魯棒的矢量地圖數(shù)據(jù)的數(shù)字水印[J].測繪學報,2008(02):262-267.
[11]Suk-Hwan Lee,Won-Joo Hwang,Ki-Ryong Kwon.Poly-line curvatures based robust vector data hashing[J].Multimed-ia Tools and Applications.2014(3).
[12]張海濤,祝曉坤,董明,肖洲.基礎地理信息數(shù)據(jù)產(chǎn)品數(shù)字水印技術(shù)研究[J].測繪通報,2012(S1):494-497.
[13]王忠軍,王玉海,王豪.一種魯棒的矢量地圖數(shù)字水印算法[J].測繪科學,2008(04):148-150.
[14]武進霞. 數(shù)字水印模型及其在地學空間信息數(shù)字產(chǎn)品版權(quán)保護中的應用[D].中國地質(zhì)大學,2016.
[15]A Dynamic Graph Software Watermarking AlgorithmBased onChaotic Theory. Zhang Shao-bo,Zhu Bin. IndustrialControl and Electronics Engineering (ICICEE),2012Internation-alConference on. 2012.
本課題得到河北省技術(shù)創(chuàng)新引導計劃項目(18240703D)、基于全盲魯棒水印的遙感影像版權(quán)保護的研究與應用(2017011043)、基于遙感影像的SHP文件全盲魯棒數(shù)字水印加密算法研究與應用(YKY-2018-12)資助。