吳彩麗 林家駿 李魯明
(華東理工大學(xué) 上海 200237)
抗打印攻擊的二維碼隱寫研究
吳彩麗 林家駿 李魯明
(華東理工大學(xué) 上海 200237)
近年來二維碼技術(shù)的迅速發(fā)展以及二維碼應(yīng)用的普及,使得二維碼可被打印在多種物體上進(jìn)行信息傳輸。目前抗打印的二維碼隱寫算法鮮見報道,因此利用二維碼進(jìn)行信息隱藏成為了研究趨勢。使用二維碼中常見的PDF417碼和QR碼作為信息隱藏的載體,進(jìn)行抗打印的二維碼空域隱寫實驗研究。對于PDF417碼,通過改變PDF417碼相鄰的條和空寬度進(jìn)行隱藏信息的嵌入和提取。對于QR碼,在特定位置微調(diào)QR碼的結(jié)構(gòu),通過改變黑色方塊的高度以實現(xiàn)隱藏信息的嵌入和提取。實驗驗證該兩種方法的魯棒性均較好,安全性高,具有良好的抗打印攻擊能力,可適用于隱藏信息的電子和打印傳輸。
PDF417碼 QR碼 信息隱藏 抗打印攻擊
近年來,二維碼作為一種新型的信息傳播方式正在迅速發(fā)展。很多商家在其產(chǎn)品或者宣傳冊上都添加了二維碼,支持手機(jī)支付及掃碼關(guān)注,二維碼的普及給人們的生活帶來了極大便利。二維碼包括矩陣式二維碼以及堆疊式二維碼。堆疊式二維碼又稱為行排式二維碼,其以一維條碼的編碼原理為基礎(chǔ),將一維條碼按行進(jìn)行堆積而成,編碼原理、識讀方式、校驗方式等都繼承了一維條碼的特點,PDF417碼就屬于此類二維碼。矩陣式二維碼又被人們叫做棋盤式二維碼,它的編碼方式是在一個矩形方塊中對深、淺像素進(jìn)行有規(guī)律的分布,點的排列形式確定了二維碼的意義,QR碼就屬于矩陣式二維碼。二維碼具有以下幾個重要特點:信息容量大、糾錯能力強(qiáng)、編碼范圍廣、成本低[1]。
二維碼的信息隱藏可以分為變換域和空域隱藏技術(shù),變換域隱藏技術(shù)首先將二維碼圖像通過不同算法變換到頻域,主要有離散余弦變換、離散傅里葉變換、離散小波變換等,通過修改頻域系數(shù)實現(xiàn)信息隱藏[2-5],空域隱藏技術(shù)主要將隱藏信息嵌入到圖像的一些冗余信息中,如LSB技術(shù)、允許誤差嵌入技術(shù)等?;诙S碼的信息隱藏技術(shù)應(yīng)當(dāng)具有魯棒性、不可見性、不可測性、穩(wěn)定性且不破壞原始信息等特點[6]。對于二維碼的信息隱藏技術(shù)研究,趙博等[7]定義了明隱藏和暗隱藏兩種信息隱藏方法,通過改變黑白單元交替處的像素進(jìn)行隱藏,暗隱藏方法嵌入信息量較少,隱藏效果好,魯棒性較強(qiáng),明隱藏方法嵌入信息量較大,隱藏效果一般,魯棒性較弱。因此,對于信息隱藏技術(shù)而言,其魯棒性和嵌入信息量總是一對矛盾,需要一定的折中處理。陳崢等[8]通過改變PDF417碼邊界的位置,進(jìn)行左移及右移引入誤差分別隱藏二進(jìn)制0或1。晁玉海等[9]提出了一種基于擴(kuò)頻技術(shù)改進(jìn)的PDF417碼隱寫算法,通過改變各邊界處的像素,將進(jìn)行過采樣、擴(kuò)頻等預(yù)處理后的隱藏信息進(jìn)行嵌入,此算法具有容量大,魯棒性好,提取率高等特點。趙春玉等[10]對QR碼分塊進(jìn)行DCT變換,通過改變 DCT域直流系數(shù)實現(xiàn)隱藏信息嵌入,每塊DCT直流系數(shù)對嵌入強(qiáng)度進(jìn)行取余,對余數(shù)進(jìn)行修改從而嵌入隱藏信息,該方法透明性較好,嵌入前后圖片差異較小。由于經(jīng)打印與掃描操作后會引起二維碼圖像的變形及其細(xì)部信息的丟失,使得隱藏信息丟失,故現(xiàn)有的載有隱藏信息的二維碼少有打印于物體上進(jìn)行傳輸,故開展抗打印掃描的二維碼隱寫方法的研究是必要的。本文針對二維碼的編碼特點,提出了兩種抗打印的二維碼隱寫算法,可使得二維碼能在打印介質(zhì)中進(jìn)行傳輸,從而得到更廣泛的應(yīng)用。
1.1 PDF417碼的結(jié)構(gòu)描述
PDF417碼的每一個符號字符是由17個模塊組成,以4個條和4個空間隔排列組成,所以稱為PDF417碼[11]。圖1為PDF417碼的結(jié)構(gòu),主要包括五個部分,由(a)起始符(b)左行指示符號字符(c)數(shù)據(jù)符號字符(d)右行指示符號字符(e)停止符組成,條碼中最窄的條或空稱為一個模塊,其中起始符由17個模塊組成,條和空模塊比例為8∶1∶1∶1∶1∶1∶1∶3,停止符由18個模塊組成,條和空模塊比例為7∶1∶1∶3∶1∶1∶1∶2∶1。
圖1 PDF417條碼結(jié)構(gòu)
二維碼需要進(jìn)行打印掃描等處理過程,為了提高條碼識別率,對于條碼各項指標(biāo)的誤差有嚴(yán)格的范圍要求,條碼的變形要嚴(yán)格控制在允許誤差范圍之內(nèi),否則將影響條碼原始信息的讀取。PDF417碼允許誤差如圖2所示,包括每一個條或空的允許誤差(Δb)、每一個符號字符允許誤差(Δp)、邊緣到相鄰的相似邊緣的允許誤差(Δe)、每一單元的高度允許誤差(Δh),各誤差允許范圍如下:
Δb=±(0.4X-0.0127)
(1)
Δp=±0.2X
(2)
Δe=±0.2X
(3)
Δh=±0.2X
(4)
其中,X為模塊寬度,單位毫米[12]。
圖2 PDF417碼允許誤差
1.2PDF417碼的隱藏信息嵌入和提取
由1.1節(jié)的分析可知,在PDF417碼中允許有一定范圍的誤差存在,這些誤差不影響條碼原始信息的正確識讀。本文利用條碼這一特性引入一定的誤差來進(jìn)行隱藏信息嵌入,由于引入誤差較小,人眼難以分辨其中是否嵌入隱藏信息,隱藏效果良好,并且將二維碼進(jìn)行打印掃描后能夠準(zhǔn)確無誤地提取其中的原始信息及隱藏信息。
1.2.1 隱藏信息嵌入
避開PDF417碼中的起始符和停止符,利用PDF417碼允許誤差中的Δb嵌入隱藏信息,改變其余字符符號中的條和空的寬度b引入誤差,這樣可以實現(xiàn)盲提取,具體算法如下:
(1) 將隱藏信息轉(zhuǎn)換為二進(jìn)制序列,首先將輸入的字符及漢字通過GBK編碼將字符轉(zhuǎn)為8位二進(jìn)制,漢字轉(zhuǎn)為16位二進(jìn)制,然后將其轉(zhuǎn)換為高位在前低位在后的二進(jìn)制序列,若隱藏信息二進(jìn)制序列長度小于最大可嵌入二進(jìn)制序列長度則補(bǔ)0,防止空余部分亂碼。
(2) 確定PDF417碼的四個頂點位置,計算條碼寬度及高度。
(3) 掃描條碼第一行起始符寬度ws1及停止符寬度wp1,根據(jù)起始符17個模塊及停止符18個模塊可由下式求得PDF417碼模塊寬度X:
X=(ws1+wp1)/(17+18)
(5)
(4) 確定PDF417碼符號字符高度h。
(5) 二進(jìn)制信息嵌入。
當(dāng)所需嵌入的隱藏信息為二進(jìn)制1時,保持邊緣到相似邊緣的長度e不變,將嵌入位置條的寬度b減小Δb,同時相鄰空的寬度b增加了Δb,通過連續(xù)改變n個條和空的寬度b來增加總誤差數(shù),提高嵌入強(qiáng)度。由此,可得到連續(xù)n個條所引入的總誤差計算公式如下:
(6)
這樣,連續(xù)n個條中引入誤差-n×Δb看作嵌入了一位二進(jìn)制1。
當(dāng)所需嵌入的隱藏信息為二進(jìn)制0時,保持邊緣到相似邊緣的長度e不變,將嵌入位置條的寬度b增加Δb,同時相鄰空的寬度b減小了Δb,通過連續(xù)改變n個條的寬度b來增加總誤差數(shù),提高嵌入強(qiáng)度。由此,連續(xù)n個條所引入的總誤差計算公式如下:
(7)
這樣,連續(xù)n個條中引入誤差n×Δb看作嵌入了一位二進(jìn)制0。
(6) 不斷重復(fù)步驟(5)將二進(jìn)制序列依次嵌入PDF417碼中,若一行所有條均已嵌入則轉(zhuǎn)至下一行繼續(xù)嵌入。
1.2.2 隱藏信息提取
掃描確定PDF417碼四個頂點,確定條碼高度M1及寬度N1。掃描條碼每一行起始符寬度lsi及停止符寬度lpi,由起始符17個模塊及停止符18個模塊可求得PDF417碼模塊寬度,計算公式如下:
(8)
讀取連續(xù)n個條的寬度之和w2,計算總誤差值△w,計算公式如下:
Δw=w2-w1=w2-k×x0
(9)
其中k=w2/x0四舍五入取整,x0為條碼模塊寬度,w1為依據(jù)x0計算出的模塊寬度。如果Δw<0,則認(rèn)為在這連續(xù)n個條中嵌入了一位二進(jìn)制1,如果Δw>0,則認(rèn)為在這連續(xù)n個條中嵌入了一位二進(jìn)制0。
1.3PDF417碼的抗打印隱寫容量
當(dāng)PDF417碼高度為u行,每行符號字符個數(shù)為v,每一位二進(jìn)制修改條寬度個數(shù)為n時,PDF417條碼最大二進(jìn)制嵌入量計算公式如下:
C=u×(v-2)×4/n
(10)
相應(yīng)一個字符對應(yīng)8位二進(jìn)制,一個漢字對應(yīng)16位二進(jìn)制可得字符及漢字信息的容量。
2.1QR碼的結(jié)構(gòu)描述
QR碼是一個正方形陣列,由正方形模塊構(gòu)成。它有40個不同版本,標(biāo)準(zhǔn)中所允許的規(guī)格系列為21×21模塊~177×177模塊。版本7以上的QR碼包括尋象圖形、定位圖形、校正圖形和分隔符等。圖3表示的是版本號為7的QR碼的圖形結(jié)構(gòu)。QR碼一般有四種糾錯能力,L、M、Q和H,分別表示7%、15%、25%和30%的字碼可被修正。
圖3 QR碼結(jié)構(gòu)示意圖
QR碼之所以能通過修改其像素值實現(xiàn)信息隱藏且不破壞其原始信息,是因為QR碼有很強(qiáng)的糾錯能力。QR碼采用糾錯算法生成一系列的糾錯碼字,糾錯碼字可以糾正替代和拒讀這兩種錯誤。兩個糾錯碼字用來糾正一個數(shù)據(jù)替代錯誤。拒讀錯誤的錯誤碼字只需一個糾錯碼字來糾正即可??杉m正的拒讀和替代錯誤的數(shù)量關(guān)系由下式給出:
e+2×t≤d-p
(11)
其中:p為錯誤譯碼保護(hù)碼字,d為糾錯碼字?jǐn)?shù),t為替代錯誤數(shù),e為拒讀錯誤數(shù)[13]。
2.2QR碼的隱藏信息嵌入和提取
由2.1節(jié)可知,若修改的QR碼像素的數(shù)量占其總數(shù)的比不超過其糾錯比,則不影響QR碼原始信息的讀取。本文利用QR碼的糾錯特性改變黑色方塊的高度來進(jìn)行隱藏信息的嵌入[14],由于引入誤差較小,人眼難以分辨其中是否嵌入隱藏信息,隱藏效果很好,并且QR碼的原始信息和隱藏信息均能正確提取。
2.2.1 隱藏信息嵌入
由于位置探測圖形是確定QR碼位置和方向以實現(xiàn)快速識別QR碼的關(guān)鍵,因此,在進(jìn)行空域的信息隱藏時,應(yīng)避開位置探測圖形。QR碼是由N2×N2個深色或者淺色的邊長為n2個像素的模塊圖形組成,因此在圖形中會形成很多的深淺交界處。實驗中采用純黑白色來代表QR碼中的深淺色,將隱藏信息嵌入在上下黑白交界且上方為黑下方為白的位置[15],通過是否改變下方白色塊的顏色來實現(xiàn)二進(jìn)制0、1的嵌入,如圖4所示。采用此種方法實現(xiàn)信息嵌入,QR碼的模塊寬度不能低于2個像素值。
圖4 隱藏信息嵌入位置
具體算法如下:
(1) 將隱藏信息轉(zhuǎn)換成二進(jìn)制序列。
(2) 掃描確定QR碼左上、左下,右上的三個頂點,找到滿足黑白塊寬度比為1∶1∶3∶1∶1的位置探測圖形,并得到左右兩個位置探測圖形的寬度WUL和WUR,計算出QR碼模塊寬度m,m的計算公式如下:
m=(WUL+WUR)/14
(12)
計算出m的值后,去除QR碼中的位置探測圖形。
(3) 從去除位置探測圖形后的QR碼的m-1行開始,連續(xù)讀取兩行像素的像素值,找到滿足下列條件的點(x1,y1):
(13)
或
(14)
(4)從點(x1,y1)繼續(xù)向右尋找,找到緊接點(x1,y1)后面出現(xiàn)的滿足下列條件的點(x2,y2):
(15)
或
(16)
(5)當(dāng)所需嵌入的隱藏信息為二進(jìn)制0時,則將點(x1,y1)到點(x2,y2)之間的所有黑色像素下面的白色像素做如下修改(對于未變形的QR碼x1=x2):
(17)
當(dāng)所需嵌入的隱藏信息為二進(jìn)制1時,則不改變這些白色像素點。
(6) 完成一位二進(jìn)制的隱藏信息嵌入后,依次向右再次尋找符合條件的點(x1,y1)和點(x2,y2),做相同的嵌入操作,若m-1行讀取結(jié)束,依次跳過m行進(jìn)行讀取嵌入,直到所有的信息嵌入完成。
(7) 最后添加上位置探測圖形,得到隱藏結(jié)束后的QR碼。
2.2.2 隱藏信息提取
由于QR碼結(jié)構(gòu)的特殊性,在未進(jìn)行信息隱藏時,其每行或者每列連續(xù)出現(xiàn)的黑色像素點的個數(shù)均是模塊寬度的整數(shù)倍,但是在進(jìn)行信息隱藏之后,隱藏0的地方及其上方連續(xù)的黑色像素點的個數(shù)不再為模塊寬度的整數(shù)倍。并且,由于嵌入算法改變了某些行的部分像素值,使得QR碼的結(jié)構(gòu)發(fā)生了微小變化。因此僅僅讀取兩行連續(xù)的像素值,會使得隱藏信息的提取順序發(fā)生變化,導(dǎo)致提取信息出現(xiàn)錯誤。因此,需要同時讀取三行像素,判斷第一行或者第二行哪一行先出現(xiàn)符合嵌入算法中條件的點(x1,y1)和點(x2,y2),對先出現(xiàn)的點之間的隱藏信息進(jìn)行提取。
找到同嵌入算法中相同條件的點(x1,y1)和點(x2,y2),從點(x1,y1)開始到點(x2,y2)結(jié)束,統(tǒng)計其中每個點及其上方連續(xù)黑色點的總數(shù)s,若為模塊寬度m的整數(shù)倍,則表示這個區(qū)間在QR碼未進(jìn)行隱藏時即為黑色的可能性加1,若s對m取余的結(jié)果為1,則表示這個點在QR碼未進(jìn)行隱藏時是白色的可能性加1,此黑色是由白色修改得到的。比較這一區(qū)間像素的黑白可能性的大小,若黑色可能性大,則認(rèn)為此處隱藏的是二進(jìn)制數(shù)1,否則認(rèn)為隱藏的是二進(jìn)制數(shù)0。
2.3 基于QR碼編碼方式的抗打印隱寫容量
本文所采用的基于QR碼編碼方式的隱寫算法的嵌入容量和QR碼的符號圖形編碼結(jié)構(gòu)有關(guān),因此在隱寫前需要對QR碼掃描一遍,以確定某一QR碼的隱寫容量。掃描方式與嵌入算法中的掃描方式相同,找到滿足嵌入算法中的條件的位置,從而統(tǒng)計出能夠嵌入多少字符。在多組實驗中,此算法均具有較高的隱寫容量。例如在本文后面的實驗中所提出的例子中,一個大小為180×180像素(4.76 cm×4.76 cm)的QR碼隱寫容量可高達(dá)40字節(jié)。
由于打印掃描會造成二維碼的變形,因此在讀取隱藏信息之前需要進(jìn)行矯正。本文僅對旋轉(zhuǎn)變形的二維碼進(jìn)行討論,將旋轉(zhuǎn)變形后的二維碼圖片通過透視變換轉(zhuǎn)換成矯正后圖形。經(jīng)過透視變換將一個二維圖像變?yōu)榱硗庖粋€平面圖像的過程可表示為[16]:
(18)
(19)
其中(α,β)是變換后的像素坐標(biāo),(φ,ω)是原始圖片的像素坐標(biāo),ρ1、ρ2、ρ3、ρ4、ρ5、ρ6、ρ7、ρ8是透視變換參數(shù)。通過掃描,可以得到旋轉(zhuǎn)變形后的二維碼四個頂點坐標(biāo),將此四個頂點記作(φ1,ω1)、(φ2,ω2)、(φ3,ω3)、(φ4,ω4) ,已知變換后的二維碼頂點坐標(biāo)為(α1,β1)、(α2,β2)、(α3,β3)、(α4,β4),可得到下列公式:
(20)
可記作:
αβ=M×ρ
(21)
變換后得到:
ρ=M(-1)×αβ
(22)
因此可由這兩組點得到一組透視變換參數(shù),通過這組參數(shù),對原始圖片的每一個坐標(biāo)點進(jìn)行變換,得到最終矯正后的圖形,從而完成對整個二維碼的矯正。
4.1PDF417碼抗打印隱寫的實驗結(jié)果分析
在打印掃描過程中主要攻擊表現(xiàn)為水平面旋轉(zhuǎn)引起的變形[17],因此使用透視變換對形變圖形進(jìn)行校正。首先從圖形四個頂點分別進(jìn)行橫向及縱向掃描確定掃描后PDF417碼的頂點位置,然后通過透視變換將其映射為矩形,接著使用提取算法進(jìn)行隱藏信息提取。
由于算法中Δb為引入誤差,Δb至少為1個像素,結(jié)合PDF417碼允許誤差規(guī)定Δb的允許范圍,可以得出PDF417碼模塊寬度x至少為4個像素。同時實驗中取模塊寬度為3個像素進(jìn)行隱寫后,雖然能夠提取其中的隱寫信息,但無法提取PDF417碼原始信息,這也和前面理論計算結(jié)果相符,因此實驗中取模塊寬度為4個像素,寬高比1∶3的PDF417碼進(jìn)行信息隱藏。
實驗中采用的打印機(jī)均為HP LaserJet 1536dnf MFP,掃描儀為Epson Perfection V330 Photo。實驗中分別對n=1、n=2、n=4三種情況進(jìn)行測試,圖5為原始PDF417碼,其各項參數(shù)如下:條碼原始信息為“abcdefghijk”,大小為480×36個像素(12.672 cm×0.95 cm),模塊寬為4個像素,高為12個像素,寬高比1∶3。取Δb為1個像素,最大可嵌入二進(jìn)制長度為60/n位,取n=2進(jìn)行隱藏可嵌入二進(jìn)制長度為30位,即可隱藏字符數(shù)為3個,圖6為隱寫后的PDF417條碼,隱寫內(nèi)容為123。
圖5 原始PDF417碼
圖6 隱寫PDF417碼
本文在打印掃描實驗中取
n
=1、
n
=2、
n
=4三種情況下各進(jìn)行多次實驗,實驗結(jié)果為
n
=1時無法正確提取隱藏信息,可以正確提取條碼原始信息,
n
=2及
n
=4時能夠100%正確提取隱藏信息及條碼原始信息,由此可知
n
=2時即可克服打印掃描所產(chǎn)生的誤差。因此
n
=2時既能保證隱藏信息正確提取,又能使隱寫容量最大。
此隱寫方法的優(yōu)點是能夠抵抗打印掃描攻擊,魯棒性較好,但是本算法受到PDF417條碼標(biāo)準(zhǔn)限制,導(dǎo)致所需條碼面積較大至少為12 cm×1 cm,而且隱藏容量較小,僅能隱藏30位二進(jìn)制相當(dāng)于3個字符。
4.2 基于QR碼編碼方式的抗打印隱寫的實驗結(jié)果分析
由于本文的基于QR碼編碼方式的隱寫算法需要改變某些行的像素來實現(xiàn)信息的嵌入,因此QR碼的模塊寬度至少為2個像素。在QR碼的模塊寬度不低于2個像素值的情況下,原始信息和隱藏信息均能正確提取。
在做打印掃描攻擊實驗時(實驗采用的打印機(jī)和掃描儀與PDF417實驗中相同),為了提高修復(fù)的準(zhǔn)確率,QR碼的模塊寬度最好不低于3個像素。由于打印掃描的參數(shù)設(shè)置不同會使得QR碼的尺寸呈一定比例放大,因此在矯正時,需要知道掃描的分辨率大小以及讀取出QR碼的版本號,以便將圖形還原成與打印前相同的尺寸。首先從圖形三個位置探測圖形所在的頂點分別進(jìn)行橫向及縱向掃描確定QR碼的三個頂點位置,再由掃描得到的左上、左下、右上頂點計算出右下頂點,通過透視變換將其映射為矩形,得到傾斜矯正后的圖形。然后根據(jù)掃描分辨率D,QR碼版本號V,計算出QR碼的原始大小,計算公式如下:
m0=((M2/D+N22/D)/2)/(V×4+17)
(23)
W=m0×(V×4+17)
(24)
H=m0×(V×4+17)
(25)
其中,M2、N2分別為掃描截取得到的QR碼圖形的寬高,截取時應(yīng)當(dāng)靠近QR碼邊緣,m0為計算得出的QR碼理論模塊寬度,W、H分別為QR碼的理論計算得到的寬高。將透視變換得到的圖形縮放到理論計算的大小,則得到與打印前相同大小的QR碼。
由于打印掃描會使得QR碼邊緣模糊,導(dǎo)致變換后的QR碼某些邊緣部分會有黑色像素破損或者突出,因此,需要對變換后的QR碼做修復(fù)處理。采用m0×m0大小的矩形,對QR碼進(jìn)行無重復(fù)、無遺漏的依次截取,統(tǒng)計截取到的模塊中黑白像素點的個數(shù)。若黑色像素點不超過m0/2,則將此矩形中的黑色點改為白色點,若此模塊中黑色點的個數(shù)不少于m0×(m0-1),則將此模塊中的所有白色點改為黑色點。完成了整個QR碼圖形的第一次修復(fù)之后,再采用1×m0大小的矩陣,對QR碼進(jìn)行無重復(fù)、無遺漏的依次截取,統(tǒng)計截取到的模塊中黑白像素點的個數(shù)。若黑色像素點僅為一個,則將此矩形中的黑色點改為白色點,若白色像素點僅為1,則將白色像素點改為黑色,直到整幅圖片修復(fù)完成。最后提取修復(fù)完成的圖片的隱藏信息。
在實驗中,本文分別對多種版本號,多種模塊寬度的QR碼進(jìn)行打印掃描實驗。圖7為QR碼的一組打印掃描實驗,圖(a)為原圖,其各項參數(shù)如下:條碼原始信息為 “huadongligongdaxue”,大小為180×180像素(4.76 cm×4.76 cm),版本號為7,糾錯級別為H,模塊寬度為4個像素,隱寫最大容量為40字節(jié),圖(b)為隱寫后的圖形,隱藏信息為“你好你好你好”,圖(c)為打印掃描矯正后未經(jīng)修復(fù)的圖形,圖(d)為修復(fù)后的圖形。
圖7 QR碼隱寫實驗圖
本文在QR碼的打印掃描實驗中,分別取模塊寬度為2、3、4、5個像素的多個QR碼進(jìn)行了多組實驗,實驗結(jié)果表明,當(dāng)模塊寬度為2時,QR碼的隱寫容量達(dá)到最大,但修復(fù)時容易造成較多區(qū)域修復(fù)錯誤,從而導(dǎo)致隱藏信息提取錯誤。當(dāng)模塊寬度不低于3個像素時,提取的正確率多數(shù)情況下可達(dá)到100%,但是隱寫容量卻有所降低??梢姡琎R碼的隱寫容量和其魯棒性之間存在一定矛盾。因此,在確保隱藏信息有較高的提取正確率的同時 ,為使QR碼隱寫容量達(dá)到最大,QR碼的模塊寬度應(yīng)取為3個像素。
此組實驗中,隱藏信息可被100%正確提取。在多組實驗中,提取準(zhǔn)確率為100%的比例達(dá)到75%。因此,本文的基于QR碼編碼方式的隱寫算法具備一定的抗打印掃描攻擊能力。
本文在確保二維碼原始信息不遭受破壞的情況下,充分利用了PDF417條碼以及QR碼結(jié)構(gòu)的特殊性,在黑白交界處通過黑白像素點的改變實現(xiàn)信息的嵌入。嵌入隱藏信息后的圖片和未嵌入之前的圖片在視覺上難以看出差別,且兩種方式都具有良好的抗打印掃描攻擊能力,使得隱藏信息不僅可通過二維碼進(jìn)行電子傳輸,也可以打印在物體上傳輸。這使得利用二維碼進(jìn)行隱藏信息的傳遞的應(yīng)用范圍進(jìn)一步擴(kuò)大。
[1] Liu C H, Chou C H. Two-dimensional bar code mobile commerce-Implementation and performance analysis[C]//Networked Computing and Advanced Information Management, 2010 Sixth International Conference on. IEEE, 2010:632-635.
[2] Wang G, Ping X, Zhang T, et al. Steganography Based on LSB and Its Steganalysis[J]. Computer Engineering, 2008, 34(1):173-174,189.
[3] Zhu Z, Zhang D. Watermarking Algorithm Based on DWT and Chaotic Encryption[J]. Laser and Infrared, 2006, 36(5):417-420.
[4] Liu F, Han K, Wang C Z. A novel blind watermark algorithm based on SVD and DCT[C]//2009 IEEE International Conference on Intelligent Computing and Intelligent Systems, 2009:283-286.
[5] Vongpradhip S, Rungraungsilp S. QR code using invisible watermarking infrequency domain[C]//2011 9th International Conference on ICT and Knowledge Engineering. IEEE, 2012:47-52.
[6] 楊溯.信息隱藏技術(shù)初探[J]. 信息安全與技術(shù), 2015, 6(7):15-16.
[7] 趙博,黃進(jìn).基于PDF417條碼的信息隱藏方法[J].計算機(jī)工程與設(shè)計, 2007, 28(19):4806-4809.
[8] 陳崢,姚宇紅,王曉京.一種基于二維圖形碼的數(shù)字水印技術(shù)[J].計算機(jī)應(yīng)用, 2006, 26(8):1998-2000.
[9] 晁玉海,劉連山,薛立勤,等.基于PDF417條碼的信息隱藏算法[J].計算機(jī)工程, 2010, 36(9):131-133.
[10] 趙春玉,時宏偉,胡可鑫,等.基于DCT變換的彩色圖像水印盲提取算法[J].計算機(jī)工程與設(shè)計, 2015, 36(3):597-602.
[11] 牛夏牧,黃文軍,吳迪,等.基于二維條碼的信息隱藏技術(shù)[J].中山大學(xué)學(xué)報(自然科學(xué)版), 2004, 43(S2):21-25.
[12] 中華人民共和國國家質(zhì)量監(jiān)督檢驗檢疫總局.GB/T17172-1997 四一七條碼[S]. 北京:中國標(biāo)準(zhǔn)出版社, 1998.
[13] 中華人民共和國國家質(zhì)量監(jiān)督檢驗檢疫總局.GB/T18284-2000 快速響應(yīng)矩陣碼[S]. 北京:中國標(biāo)準(zhǔn)出版社, 2000.
[14] 魏偉光.二維條碼空間域數(shù)字水印嵌入方法研究[J].北方工業(yè)大學(xué)學(xué)報, 2010, 22(3):5-9.
[15] 朱本威,萬武南,陳運.基于LSB的QR碼數(shù)字水印算法研究[J].成都信息工程學(xué)院學(xué)報, 2012, 27(6):541-547.
[16] 代勤,王延杰,韓廣良.基于改進(jìn)Hough變換和透視變換的透視圖像矯正[J].液晶與顯示, 2012, 27(4):552-556.
[17] 田敏,劉琚,孫建德,等.?dāng)?shù)字印刷品中基于圖像配準(zhǔn)的數(shù)字水印技術(shù)[C]//第十一屆全國信息隱藏暨多媒體信息安全學(xué)術(shù)大會CIHW2013論文集, 2013:161-166.
RESEARCH ON TWO-DIMENSIONAL CODE STEGANOGRAPHY FOR ANTI-PRINT ATTACK
Wu Caili Lin Jiajun Li Luming
(EastChinaUniversityofScienceandTechnology,Shanghai200237,China)
In recent years, the rapid development of two-dimensional code technology and the popularity of two-dimensional code applications, making two-dimensional code can be printed on a variety of objects for information transmission. At present, the two-dimensional code steganography of anti-printing is rarely reported, so the use of two-dimensional code for information hiding has become a research trend. In this paper, PDF417 code and QR code, which are common in two-dimensional code, are used as information hiding vectors to carry out anti-printing two-dimensional code steganalysis. For PDF417 code, by changing the PDF417 code adjacent to the width of the black bars and white bars, embedded and extracted hidden information. For the QR code, this paper fine-tunes the structure of QR code in the specific location, by changing the height of the black box to achieve the hidden information embedded and extracted. Experiments show that the two methods are robust, safe, and have good anti-print attack ability, which can be applied to hide the information of electronic and print transmission.
PDF417 code QR code Information hiding Anti-print attack
2016-02-25。國家信息安全測評中心項目(CNITSEC-KY-2012-006/2)。吳彩麗,碩士生,主研領(lǐng)域:信息安全。林家駿,教授。李魯明,學(xué)士。
TP3
A
10.3969/j.issn.1000-386x.2017.03.015