徐其江
摘 要 本文給出基于云模型的矢量地圖版權(quán)算法的具體實現(xiàn)過程。由于云模型本身模糊性及不確定性的特點,增加了對算法的破解難度。在水印嵌入系數(shù)的選擇上根據(jù)DWT的特點,并結(jié)合人類視覺特性選擇特定的嵌入系數(shù)。綜合上述兩個方面提出了基于云模型的矢量地圖版權(quán)保護算法。
關(guān)鍵詞 版權(quán)保護算法 實現(xiàn)研究
中圖分類號:TP309 文獻標識碼:A
1云滴水印的生成
本文中,用戶密鑰信息設定為四種:圖片、漢字、英文、數(shù)字。密鑰信息可以是其中的某一種也可以是四種的任意組合。針對不同輸入的版權(quán)信息所進行的處理流程也不盡相同。
對于圖片的處理流程如下:
(1)將密鑰圖像進行Arnlod置亂;
(2)將置亂后的密鑰圖像讀取為二進制流I1
對于漢字的處理流程如下:
(1)將輸入密鑰漢字信息通過內(nèi)碼轉(zhuǎn)換后得到系統(tǒng)可以識別的內(nèi)碼字符;
(2)將轉(zhuǎn)換后的內(nèi)碼字符分為兩個字節(jié)分別進行處理;
(3)處理每一個字節(jié),一個字節(jié)為8位。對于字節(jié)的每一位,判斷當前位。如果當前位是1, 將其加‘0字符后存儲在字符數(shù)組中,如果是0,將其加‘0后也存儲在字符數(shù)組中。即將每個字符轉(zhuǎn)換成的二進制流I2。
2水印嵌入位置選擇
水印信息嵌入位置的選取具有重要的意義。適當?shù)乃∏度胛恢眉饶軌虮WC水印的魯棒性又能夠?qū)崿F(xiàn)視覺上的不可見性。因而水印信息的嵌入位置逐漸的成為人們的研究熱點。小波變換在數(shù)字水印技術(shù)中的應用主要體現(xiàn)在數(shù)字圖像水印方面。本文在水印嵌入位置的選擇上,綜合考慮了四個方面的因素:水印的魯棒性、水印的不可感知性、人類視覺特性、小波變換的性質(zhì)。使水印在具有一定不可感知性的前提下具有較強的魯棒性。
2.1水印嵌入算法
本節(jié)在充分考慮上述內(nèi)容的基礎上,給出水印的具體嵌入過程。
2.1.1原始矢量地圖數(shù)據(jù)獲取
本算法是在安全容器中實現(xiàn)的,即在Windows底層內(nèi)存。在底層內(nèi)存中,讀取到的原始矢量地圖數(shù)據(jù)是按照IEEE754浮點數(shù)存儲的,首先將其轉(zhuǎn)化為實際可用的double型數(shù)據(jù)。
轉(zhuǎn)換成單精度時公式為:
通過上述公式則得到一個點的double型數(shù)值。按照Shape格式將一條線上的點按照數(shù)目全部讀出并組合成一條線。
2.1.2嵌入位置選擇
按照上節(jié)嵌入位置選擇算法,選擇合適的嵌入位置。
(1)對得到的數(shù)據(jù)進行三級離散小波變換得到若干個子帶;
(2)分別對得到的子帶進行分塊處理,每塊大小為8*8;
(3)將高頻帶中所有分塊組成一組,選擇子塊LL3;
(4)采用Logistic混沌映射選擇嵌入塊xn=uxn(1 xn);u表示量化系數(shù)。量化系數(shù)的選擇需要通過大量的實驗進行獲取,本文中通過實驗驗證當u取4.5時效果最佳。
2.1.3嵌入
將選擇出的嵌入位置記為,fi(j),j=1,2,3,…,m并記錄其位置。利用嵌入公式4-7將水印二進制流嵌入
fi'(j)= fi(j)+(1 ) (j)
式中: 表示嵌入強度,j=1,2,3,…,m
通過不斷的大量實驗確定本文的嵌入強度為0.95
(4)將計算得到的fi'(j)代替第i塊中的小波系數(shù)fi(j)進行DWT逆變換,則得到新的fi'(j)。將所有的fi'(j)按照一條線上點的排列順序進行組合則得到了含有水印的圖像,即嵌入完成。
2.2水印提取算法
水印的提取步驟如下:
(1)矢量地圖數(shù)據(jù)獲取:
和水印的嵌入過程(1)類似,首先獲取讀入到內(nèi)存中的矢量地圖數(shù)據(jù)。
(2)根據(jù)第二節(jié)的嵌入位置選擇算法找到嵌入位置,利用逆嵌入公式將水印信息提取出來。
(3)將得到的水印信息利用逆向云發(fā)生器得到云模型的特征參數(shù)。
2.3水印檢測標準
根據(jù)提取出的云水印作為是否是嵌入云的評價標準,這是本系統(tǒng)的一個創(chuàng)新之處,同時這也是云模型理論需要解決的一個重要問題。
本文的相似度閥值設定為30/n(n為云滴個數(shù))。具體算法如下:
N個云相似性度量方法(本文中N=2):
輸入:n云滴數(shù),Ex1,Exn,He1第一個云的特征數(shù),Ex2,En2,He2第二個云的特征數(shù);輸出:是否相似 ( 相似為1, 不相似為0)。
步驟:
(1)Dropl(i)=Cloud(Ex1,En1,He1,n)第1個云產(chǎn)生的n個云滴;
(2)Dropl(i)=Cloud(Ex2,En2,He2,n)第2個云產(chǎn)生的n個云滴;
(3)Sort(Drop(1));對第1個云滴進行排序;
(4)Sort(Drop(2));對第2個云滴進行排序;
(5)篩選區(qū)間[Ex 3En,Ex+3En]內(nèi)的云滴,得到云1中云滴個數(shù)N1,云2中云滴個數(shù)N2,選取后的云滴分別為Drop1',Drop2';
(6)若N1
(7)分別計算云滴Drop1'j,Drop2'j,的平方差Dis(j);
(8)相似度計算公式Similar=SQRT(∑Dis(j)/C/n);
(9)若Similar<(30/n)則 =1,否則 =0。
通過上述算法,將提取出來的云滴與嵌入的云滴計算相似度,若值為1則表示兩個是相似云,即所提取的水印為用戶嵌入。否則,則不是。
本章首先對矢量地圖訪問控制進行了介紹,矢量訪問控制是保證矢量地圖自我保護實現(xiàn)的關(guān)鍵。然后本章介紹了算法的嵌入模型和提取模型,最后重點介紹算法的具體實現(xiàn)過程。算法的具體實現(xiàn)主要包括云滴水印的生成、嵌入位置的選擇、嵌入算法、提取算法、水印檢測標準。