◆毛新光
基于二維碼圖像的數(shù)字水印算法的研究
◆毛新光
(閩江學(xué)院現(xiàn)代教育技術(shù)中心 福建 350108)
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,線上和線下產(chǎn)品的版權(quán)保護(hù)越來越受到人們的重視。本文首先探討了二維碼在產(chǎn)品版權(quán)保護(hù)應(yīng)用中的弊端,然后提出了在二維碼中引入密鑰的數(shù)字水印技術(shù),起到對產(chǎn)品版權(quán)的保護(hù)作用。該算法在二維碼中引入了加了密鑰的數(shù)字水印技術(shù),在保證水印不可見性的基礎(chǔ)上,提高了水印的魯棒性。實驗表明,該方法對二維碼圖像受到常見的攻擊時,具有較好的抵抗效果。
二維碼;版權(quán)保護(hù);DCT變換;水印
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,二維碼技術(shù)已經(jīng)深入到我們生活的方方面面。二維碼不僅可以關(guān)聯(lián)我們的身份信息,而且還可以關(guān)聯(lián)生活中的產(chǎn)品信息。而二維碼的生成器在互聯(lián)網(wǎng)上可任意下載使用,用戶可將任意信息制作成二維碼[1]。二維碼相關(guān)的數(shù)字產(chǎn)品信息被非法復(fù)制、傳播和使用所帶來的版權(quán)問題,嚴(yán)重?fù)p害了著作權(quán)人、網(wǎng)絡(luò)運營商等相關(guān)權(quán)利人的合法權(quán)益[2]。因此,將可以證明我們身份和產(chǎn)品的數(shù)字水印信息隱藏到二維碼中,通過這些隱藏的信息,可以判斷載體是否被篡改,起到保護(hù)我們個人的信息和產(chǎn)品的版權(quán)的目的。本文算法的版權(quán)的保護(hù)機(jī)制主要體現(xiàn)在二維碼圖像中引入含有密鑰的水印的嵌入,從而起到保護(hù)產(chǎn)品版權(quán)的作用,而要驗證產(chǎn)品的版權(quán)是否被侵權(quán)時,可以查驗在二維碼中是否可以提取出包含產(chǎn)品版權(quán)相關(guān)的信息,而提取水印的時候,需要正確的密鑰水印才能提取水印信息,起到保護(hù)版權(quán)的作用。
二維碼(2-Dimensiional Barcode)是用某種特定的幾何圖形按一定規(guī)律在二維的平面上分布的黑白相間的圖形來記錄數(shù)據(jù)符號信息的;在代碼編制上利用計算機(jī)內(nèi)部的“0”和“1”的二進(jìn)制數(shù)列相對應(yīng)的幾何形體來表示文字?jǐn)?shù)值信息。每種碼制有特定的字符集,每個字符都占有一定的寬度,具有一定的校驗功能。二維碼能夠在橫向和縱向兩個方位同時表達(dá)信息,因此一個很小面積的圖形隱含了大量的信息。
二維碼是由多個正方形模塊構(gòu)成特殊的排列規(guī)則,組成的一個正方形陣列[1]。它由編碼區(qū)域、探測模塊、定位圖形和校正圖像在內(nèi)的四大功能模塊組成[3]。功能圖像不能用于數(shù)據(jù)編碼,符號四周為空白包圍。圖1為二維碼的結(jié)構(gòu)圖。
圖1 二維碼的結(jié)構(gòu)圖
數(shù)字水印的基本思想就是在要保護(hù)的數(shù)字產(chǎn)品中嵌入水印信息,可以是一段視頻、一段音頻、一串?dāng)?shù)字或者是一幅圖片等。而嵌入后的數(shù)字產(chǎn)品能夠較好保護(hù)數(shù)字產(chǎn)品的版權(quán)和個人的身份信息。
得到變換后的圖像經(jīng)過反變換IDCT,得到原來變換的圖像,二維IDCT的定義如下:
其中i,k?{0,1,2,…,M-1},I ?{0,1,2,…,N-1},并且
本文采用的是將要嵌入水印的宿主圖片,先進(jìn)行8*8的分塊,然后對分塊后的圖像進(jìn)行DCT的變換,上面的DCT的公式進(jìn)行8*8的分塊DCT變換的定義如下:
得到變換后的圖像經(jīng)過反變換IDCT,得到原來變換的圖像,二維IDCT的定義如下:
其中,i,j,k,I ?{0,1,2,…,7},并且:
對嵌入到宿主圖像的水印圖像,在含水印的圖像受到白噪聲、高斯低通濾波、剪切旋轉(zhuǎn)等進(jìn)行攻擊后,提取水印的評判除了用肉眼進(jìn)行直觀的觀察的方法外,我們還可以更準(zhǔn)確地用科學(xué)的數(shù)據(jù)來進(jìn)行評估,通常采用的是歸一化的相關(guān)系數(shù)NC[5]來對提取的水印圖片進(jìn)行度量,來評價該算法的好壞。通常是用嵌入后的宿主圖像提取水印圖像和原水印圖像之間的相關(guān)度量來確定二者之間的匹配程度,度量值大小反映了二者之間的相似程度,度量值NC的值越大,則表示水印嵌入的圖像和水印的原圖之間越相似。度量值的計算形式如下:
其中,T(m,n)為模板圖像倒數(shù)第n行,第m個像素值;S(i,j)為模板覆蓋下的部分,稱為搜索子圖,i、j是搜索子圖的左下角像點在參考圖S中的坐標(biāo)。
用DCT對宿主圖形進(jìn)行水印嵌入時,首先是對宿主圖像進(jìn)行8*8的分塊;然后對分塊后的圖像進(jìn)行DCT運算,選取出要嵌入的DCT系數(shù),并且對未嵌入水印的圖像用HVS模型進(jìn)行分析,得到感知系數(shù)的屏蔽模板,用其來控制水印嵌入的強度,再將編碼后的水印信號,用一定的方式嵌入到選定好的系數(shù)中,用嵌入水印的系數(shù)替代原來位置的系數(shù);最后對嵌入系數(shù)后的圖像矩陣,進(jìn)行逆DCT變換,得到了含有水印的圖像[6]。
嵌入水印的算法為:
(2)產(chǎn)生兩個不相關(guān)的偽隨機(jī)序列,并設(shè)定一個密鑰key。
(5)用得到的新的DCT系數(shù)對原來位置的DCT系數(shù)進(jìn)行置換。
(6)對新的DCT系數(shù)矩陣進(jìn)行DCT逆變換,得到了嵌入水印信號的圖像。
水印嵌入過程的流程圖如圖1所示。
圖2 水印嵌入流程圖
DCT域水印的提取過程就是將處理過或受到過惡意攻擊的待檢測的圖像進(jìn)行DCT運算,然后按嵌入水印時選取的DCT系數(shù),選取其含有水印的系數(shù),進(jìn)行水印的提取,然后利用相關(guān)檢測法判斷水印是否存在。如果水印檢測器輸出結(jié)果顯示水印存在,則根據(jù)需要可以用水印解碼器對提取的水印進(jìn)行解碼,恢復(fù)水印。
水印檢測提取算法為:
(1)對含有水印圖像進(jìn)行8*8的塊DCT變換。
(3)用密鑰生成水印信號W-N(0,1)。
(4)然后利用密鑰和水印檢測器解碼出宿主圖像的水印。
其水印檢測的流程過程如圖3所示。
圖3 水印提取流程圖
對二維碼宿主圖像進(jìn)行水印圖像的嵌入,來驗證其二維碼的安全性、不可見性、魯棒性。本實驗采用Matlab2015b進(jìn)行驗證,宿主圖像選擇的是395*395的二維碼圖像,40*40的二值圖像作為水印圖像。參數(shù)設(shè)置alpha=10,進(jìn)行水印的水印置入和提取,如圖4所示。
圖4 原二維碼圖像、水印置入之后的二維碼圖像
嵌入圖像受到噪聲攻擊時的圖像和提起出的圖像如圖5所示。
圖5 受到白噪聲攻擊時的二維碼水印圖像、提取的水印圖像
嵌入圖像受到高斯低通濾波攻擊時的圖像和提起出的圖像如圖6所示。
圖6 受到高斯低通濾波攻擊時的二維碼水印圖像、提取的水印圖像
嵌入圖像受到剪切攻擊時的圖像和提起出的圖像如圖7所示。
圖7 受到剪切攻擊時的二維碼水印圖像、提取的水印圖像
嵌入圖像受到旋轉(zhuǎn)攻擊時的圖像和提起出的圖像如圖8所示。
圖8 受到旋轉(zhuǎn)攻擊時的二維碼水印圖像、提取的水印圖像
嵌入圖像沒有受到攻擊時的圖像和提起出的圖像如圖9。
圖9 沒有受到攻擊時的二維碼水印圖像、提取的水印圖像
通過以上的實驗結(jié)果,可以看出當(dāng)水印圖像沒有受到攻擊時,NC=0.82563;當(dāng)受到白噪聲攻擊時,NC=0.81246;當(dāng)受到高斯低通濾波攻擊時,NC=0.76274;當(dāng)受到剪切攻擊時,NC=0.71512;當(dāng)受到旋轉(zhuǎn)攻擊時,NC=0.6436。從實驗數(shù)據(jù)可以看出,當(dāng)含水印的二維碼圖像在沒有受到攻擊或者受到加噪聲、高斯低通濾波、剪切攻擊時,該算法在提取水印時效果較好,但對旋轉(zhuǎn)攻擊時的水印提取的效果不好,但依然可以判斷該水印信息是存在的。
二維碼由于其本身包含的信息量大、容錯能力強等優(yōu)點,已被廣泛應(yīng)用到生活的方方面面。產(chǎn)品的防偽、溯源等應(yīng)用領(lǐng)域,除了可增加LOGO外,還需要加入不易被發(fā)現(xiàn)的水印,以保護(hù)二維碼的所屬權(quán)或防止被假冒。二維碼置入水印需要解決兩個問題:置入水印的二維碼不影響正常使用、需要有效加解密水印。也就是對一般二維碼識別時,感覺不到水印的存在,而對專用的加解密水印軟件是可以讀取水印信息的[7]。本文對二維碼在產(chǎn)品的版權(quán)保護(hù)中存在的問題進(jìn)行了深入探討的基礎(chǔ)上,提出了在二維碼中引入密鑰的數(shù)字水印技術(shù),起到對產(chǎn)品版權(quán)的保護(hù)作用。該方法是基于DCT的變換[8-9]的基礎(chǔ)上,引入了含有密鑰的數(shù)字水印技術(shù),在保證水印不可見性的基礎(chǔ)上,提高了水印的魯棒性。經(jīng)過實驗證明,該方法對具有版權(quán)作用的二維碼圖像受到常見的攻擊時,具有較好的抵抗效果。
[1]羅超,賈克斌,李周賢.一種基于數(shù)字水印和非對稱加密技術(shù)的QR二維碼編譯系統(tǒng)[J].計算機(jī)工程與應(yīng)用,2015(51):364-365.
[2]關(guān)虎,張貴煊,張樹武,等.基于二維碼的魯棒圖像水印技術(shù)及應(yīng)用研究[J].有線電視技術(shù),2018(10).
[3]何偉,黃丹靈,張玲,等.適用于嵌入系統(tǒng)的QR碼識別算法[J].計算機(jī)應(yīng)用,2009,29(3):774-776.
[4]GUAN H,ZENG Z,LIU J,et al. A Novel Robust Digital Image Watermarking Algorithm based on Two-Level DCT [C].IEEE International Conference on Information Science, Electronics and Electrical Engineering. 2014:1804-1809.
[5]LiuH,XiaoD,ZhangR,etal.Robustandhierarchical watermarkingofencryptedimagesbasedoncompressivesensing[J].SignalProcessingImageCommunication,2016,45(C):41-51.
[6]基于變換域的數(shù)字水印技術(shù)的研究 [EB/OL].https://www.docin.com/p-1870716273.html.
[7]李國和,陳晨,吳衛(wèi)江,等.面向二維碼的數(shù)字水印置入與提取方法[J].計算機(jī)工程與應(yīng)用,2019,55(10):103-107.
[8]HU H T,CHANG J R,HSU L Y. Robust blind image watermarking by modulating the mean of partly sign-altered DCT coefficients guided by human visual perception[J]. AEU- International Journal of Electronics and Communications,2016, 70(10):1374-1381.
[9]DAS C,PANIGRAHI S,SHARMA V K,et al. A novel blind robust image watermarking in DCT domain using inter-block coefficient correlation[J]. AEUE-International Journal of Electronics and Communications,2014,68(3):244-253.
福建省中青年教師教育科研項目(JAT190616);閩江學(xué)院實驗技術(shù)人員專項研究項目(MJUS2020D013)