◆龐 博 龐毅林
(1.武警警官學(xué)院 四川 610213;2.華東理工大學(xué)信息學(xué)院 上海 200237)
基于QR碼數(shù)字水印技術(shù)的研究與實(shí)現(xiàn)
◆龐 博1龐毅林2
(1.武警警官學(xué)院 四川 610213;2.華東理工大學(xué)信息學(xué)院 上海 200237)
本文研究了一種基于QR二維碼的數(shù)字水印算法并對其進(jìn)行了改進(jìn)以提高水印容量,并在Eclipse平臺上運(yùn)用Java語言實(shí)現(xiàn)了QR碼的生成、讀取,水印信息的嵌入和提取,并形成一個APP應(yīng)用,具有一定的實(shí)用性。
QR碼;數(shù)字水?。蝗萘?/p>
二維條碼是近年來在一維條碼的基礎(chǔ)上發(fā)展起來的一種新型條碼,從本質(zhì)上來說是一種特殊的二值圖像。二值圖像即是黑白圖像,其每個像素點(diǎn)只用一位表示,“0”代表黑,“1”代表白,其存儲簡單、結(jié)構(gòu)緊湊等特點(diǎn)使得二值圖像在數(shù)據(jù)傳真、文字識別、條碼識別中得到廣泛應(yīng)用[1,2]。在二維條形碼中嵌入數(shù)字水印信息,能夠?qū)崿F(xiàn)如電子票據(jù)二維條碼的防偽等作用。
目前,國內(nèi)外關(guān)于二維碼信息隱藏技術(shù)的文獻(xiàn)不是很多,研究對象主要是PDF417碼(Portable Data File 417)和QR(Quick Response)碼。文獻(xiàn)[3]提出結(jié)合 Freeman 鏈碼和 B樣條曲線誤差對PDF417二維碼先進(jìn)行預(yù)處理,再將與該圖像內(nèi)容相關(guān)的哈希值作為水印信息嵌入,可進(jìn)行篡改驗(yàn)證,容量有所提高但算法實(shí)現(xiàn)繁瑣,而且水印信息受限。文獻(xiàn)[4]利用變形技術(shù)對 PDF417碼符號字符組成單元的寬度進(jìn)行適量的變動以實(shí)現(xiàn)隱藏信息的嵌入,能有效的抗打印和掃描攻擊,但隱藏信息容量不大。文獻(xiàn)[5]提出了一種基于 QR二維碼的認(rèn)證系統(tǒng)。文獻(xiàn)[6]在 DCT(Discrete Cosine Transform)基礎(chǔ)上實(shí)現(xiàn)了一種結(jié)合PDF417碼的水印嵌入算法,采用PDF417編碼將水印信號擴(kuò)展成比信息帶寬大得多的帶寬信號,提高了數(shù)字水印的穩(wěn)健性,該算法可有效滿足水印的透明性和魯棒性要求。文獻(xiàn)[7]提出了一種QR碼數(shù)字水印技術(shù),文獻(xiàn)[8]提出了一種基于QR碼數(shù)字水印技術(shù),但水印容量有限。文獻(xiàn)[9]根據(jù)PDF417二維條碼自身結(jié)構(gòu)特點(diǎn),對其進(jìn)行適量的結(jié)構(gòu)微調(diào),提出明隱藏和暗隱藏方法,將信息隱藏進(jìn)條碼當(dāng)中。文獻(xiàn)[10-11]提出將二維碼水印技術(shù)應(yīng)用于身份證管理和電子票證中以實(shí)現(xiàn)防偽認(rèn)證的目的。本文在文獻(xiàn)[8]的基礎(chǔ)上,改進(jìn)了水印嵌入算法,提高了水印容量,同時能正確實(shí)現(xiàn)水印的提取和原二維碼信息的識讀,并實(shí)現(xiàn)APP應(yīng)用,具有一定的實(shí)用性。
DCT變換域數(shù)字水印技術(shù)具有魯棒性強(qiáng)、隱蔽性好的特點(diǎn)。其主要思想是在圖像的 DCT變換域上選擇中低頻系數(shù)疊加水印信息,之所以選擇中、低頻系數(shù),是因?yàn)槿搜垡曈X敏感的部分主要集中在這一頻段,攻擊者在破壞數(shù)字水印的過程中,不可避免地會導(dǎo)致圖像質(zhì)量嚴(yán)重下降,一般的圖像處理過程也不會改變這部分?jǐn)?shù)據(jù)。數(shù)字水印的流程如圖1所示。
圖1 數(shù)字水印流程圖
基于DCT變換的QR二維碼的數(shù)字水印算法,具體嵌入算法如下:
(1)將載體圖像按8*8像素分塊,對每個分塊都做DCT變換得到如表1所示的DCT系數(shù)矩陣。有字母的格子代表要通過操作該系數(shù)來嵌入水印信息的位置。
(2)修改DCT中頻系數(shù)來嵌入水印,每個8*8塊中的7組系數(shù)表達(dá)1bit的水印信息。
(3)設(shè) B(j)代表要嵌入的第 j位 bit信息,a(i,1),a(i,2),a(i,3) (i=1,2,……,7)代表嵌入的B(j)的相鄰三個DCT中頻系數(shù),文獻(xiàn)[8]的嵌入算法描述為:
①當(dāng) B(j)=1 時,a(i,2)放絕對值最大的系數(shù) max,a(i,1)放絕對值次大的系數(shù)mid,a(i,3)放絕對值最小的系數(shù)min;
②當(dāng) B(j)=0時,a(i,2)放絕對值最小的系數(shù),a(i,1)放絕對值最大的系數(shù),a(i,3)放絕對值次大的系數(shù)。
本文在文獻(xiàn)[8]的基礎(chǔ)上改進(jìn)步驟3以提高水印容量。因備選的有三個中頻系數(shù),可有六種排列方式,所以能夠一次不只嵌入1bit的信息,而是嵌入2bit的信息,即使用到四種排列方式,如表1所示,可將允許嵌入的水印容量擴(kuò)大了2倍。
(4)多次重復(fù)嵌入水印信息,對每塊圖像的 DCT系數(shù)作IDCT,得到嵌入水印的空域圖像。
水印的提取過程通常是水印嵌入的逆過程,具體算法為:
①將圖像按8*8分塊,作DCT變換:
②根據(jù)每個分塊的頻域系數(shù)規(guī)則判定每分塊嵌入的 7bit信息;
③將提取出來的 7bit信息按照模糊識別的最大隸屬度原則來判決每分塊嵌入的信息到底是1還是0;
④將信息組合成完整水印信息。
表1 改進(jìn)嵌入算法的DCT系數(shù)矩陣
用JAVA編程實(shí)現(xiàn)了信息隱藏算法的嵌入與提取實(shí)驗(yàn)。本文的仿真實(shí)驗(yàn)選取大小為800×800的QR二維碼樣本圖像,攜帶信息“WWW”,嵌入水印信息為100×100 的watermark.bmp圖像。
QR二維條碼圖像原始樣本如圖2(a)所示。嵌入水印后的QR二維條碼圖像如圖2(b)所示,對應(yīng)的嵌入水印如圖2(c)所示。在嵌入過程中,原QR碼圖像處理成灰度圖像,觀察QR二維碼原始圖像與嵌入水印后的二值化圖像,二者差別很小,且提取出的水印信息與原始水印信息幾乎完全一致。實(shí)驗(yàn)結(jié)果表明,該算法是有效的,且水印容量是文獻(xiàn)[8]的兩倍。
圖2 實(shí)驗(yàn)效果圖
為更好地實(shí)現(xiàn)數(shù)字水印技術(shù)在實(shí)際生活的應(yīng)用,運(yùn)用 Java編程實(shí)現(xiàn)APP應(yīng)用。APP主要功能有:
(1)掃描獲取QR碼的攜帶信息(基于Google的開源包Zxing完成);
(2)根據(jù)輸入生成特定的QR碼,規(guī)格大小像素800*800,寫入手機(jī)特定文件夾Pictures目錄下,名字為(信息).png;
(3)選定好水印圖像(規(guī)格要求像素100*100二值圖像),生成嵌入水印后的圖像;
(4)通過生成水印后的圖像恢復(fù)出嵌入的水印?;赒R碼數(shù)字水印的App應(yīng)用界面如圖3所示。
本文提出了一種改進(jìn)的基于DCT變換的QR碼數(shù)字水印算法,實(shí)現(xiàn)了水印的嵌入和提取,并正確識讀原二維碼信息,提高了隱藏容量,最后設(shè)計(jì)并開發(fā)了相關(guān)的 APP 應(yīng)用,對實(shí)際生活中運(yùn)用二維碼進(jìn)行防偽認(rèn)證等方面具有一定的實(shí)用性。該方法不僅具有較大的嵌入水印容量,對原有QR碼信息影響較小,針對QR碼的抗掃描打印功能有待進(jìn)一步研究。
圖3 基于QR碼數(shù)字水印技術(shù)的App應(yīng)用
[1] 蔣翠玲,黃帥等.一種基于PDF417條碼的魯棒數(shù)字水印方法.網(wǎng)絡(luò)與信息安全學(xué)報(bào),2016.
[2] Jiangxiao Han, Gang Wang, Johan Sid é n,F(xiàn)ragment-type UHF RFID tag embedded in QR barcode label.Electronics Letters,2015.
[3] 吳桐樹.基于二維碼的數(shù)字水印技術(shù)研究[D].浙江理工大學(xué),2015.
[4] 牛夏牧,黃文軍,吳迪,張慧.基于二維條碼的信息隱藏技術(shù)[J].中山大學(xué)學(xué)報(bào)(自然科學(xué)版),2004.
[5] 潘璐.基于二維碼的證件認(rèn)證技術(shù)研究與實(shí)現(xiàn)[D].北京郵電大學(xué),2014.
[6] 張基宏,肖薇薇,紀(jì)震.基于二維條碼 PDF417的數(shù)字圖像水印算法[J].深圳大學(xué)學(xué)報(bào)(理工版),2002.
[7] 孫丙,高美鳳.基于QR碼的數(shù)字水印算法[J].計(jì)算機(jī)與現(xiàn)代化,2011.
[8] 王瑞玲.面向二維條形碼的數(shù)字水印技術(shù)研究[D].杭州電子科技大學(xué),2011.
[9] 趙博.二維條碼研究[D].西安電子科技大學(xué),2007.
[10] 林海.二維碼技術(shù)在身份證管理中的應(yīng)用研究[D].天津:天津大學(xué),2012.
[11] 歐陽麒.移動二維條碼電子票證安全數(shù)字水印方案研究[D].上海交通大學(xué),2007.