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