国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于QR碼和算術(shù)編碼的圖像加密無(wú)損恢復(fù)方法

2020-09-29 06:07
應(yīng)用光學(xué) 2020年5期
關(guān)鍵詞:二進(jìn)制解密灰度

(四川大學(xué) 電子信息學(xué)院,四川 成都 610065)

引言

近年來(lái),隨著互聯(lián)網(wǎng)技術(shù)和數(shù)字通訊技術(shù)的快速發(fā)展,信息安全問(wèn)題越來(lái)越得到人們的關(guān)注。由于具有容量大、加密速度快、可多路并行傳輸、密匙維度多等固有的優(yōu)勢(shì),光學(xué)圖像加密技術(shù)迅速成為了一個(gè)熱門(mén)的研究方向。這一技術(shù)最早可被追溯到1995年,Refregier和Javidi 提出的基于雙隨機(jī)相位編碼(double random phase code,DRPE)的圖像加密方法[1]。即在4-f系統(tǒng)的空間輸入平面和傅里葉變換域平面放置隨機(jī)相位板,對(duì)原加密圖像的空間域信息和頻域信息分別置亂,得到一個(gè)平穩(wěn)隨機(jī)分布的白噪聲密文圖案。隨后,由該方法衍生出的其他光學(xué)加密方法逐漸被提出,如菲涅爾域DRPE的圖像加密方法[2-3]、分?jǐn)?shù)傅里葉域

DRPE的圖像加密方法[4-5]、基于光學(xué)聯(lián)合變換器的加密方法[6-7]、基于干涉原理的加密方法[8]等。這些方法豐富和發(fā)展了光學(xué)圖像加密技術(shù),但一些制約其進(jìn)一步實(shí)用化的問(wèn)題依然存在。例如,由于隨機(jī)相位板的引入和實(shí)驗(yàn)中其他不可控因素,基于光學(xué)系統(tǒng)的解密圖像往往包含有大量的散斑噪聲,這些噪聲嚴(yán)重影響了解密后圖像的質(zhì)量。雖然目前提出了許多減弱或者抑制散斑噪聲的方法[9-13],但效果都不是很理想。

為了解決這一問(wèn)題,2013年Barrera 等人首次將QR碼(quick response code)作為數(shù)據(jù)容器引入到光學(xué)圖像加密系統(tǒng)中[14]。由于QR碼具有較強(qiáng)的糾錯(cuò)能力,當(dāng)部分碼字被污染或者發(fā)生錯(cuò)誤時(shí),依然可以識(shí)別出來(lái),使得存儲(chǔ)在里面的信息可以無(wú)損恢復(fù),因此是一種非常理想的去除光學(xué)加密系統(tǒng)中散斑噪聲的容器??捎捎赒R碼存儲(chǔ)容量有限,存儲(chǔ)內(nèi)容只能為數(shù)字、字母,漢字、日文等信息[15],要將一幅灰度圖像存入到QR碼中,必須要進(jìn)行數(shù)據(jù)的轉(zhuǎn)換與壓縮。目前主要有兩種方法,即將二值圖像利用行程編碼壓縮方法存入QR碼[16],以及利用數(shù)字之間轉(zhuǎn)換壓縮方法將灰度圖像存入QR碼[17]。由于前者只適合于非常簡(jiǎn)單的二值圖像,而后者只能將一幅32×32像素大小的灰度圖像存入到QR碼中,因此在實(shí)際圖像加密的應(yīng)用中,尋求一種既能有效進(jìn)行數(shù)據(jù)壓縮,又能處理較大灰度圖像的方法仍顯得極為重要。

本文提出了一種基于算術(shù)編碼圖像壓縮方法,成功地將一幅64×64像素大小的灰度圖像存入QR碼中進(jìn)行加密和解密。該方法首先把灰度圖像讀取為二進(jìn)制數(shù)據(jù),并轉(zhuǎn)換為十進(jìn)制數(shù),然后利用算術(shù)編碼的方法壓縮十進(jìn)制數(shù)序列得到新的二進(jìn)制序列,把壓縮后的二進(jìn)制數(shù)據(jù)再次轉(zhuǎn)換成十進(jìn)制數(shù)據(jù)存儲(chǔ)到QR碼中,最后利用雙隨機(jī)相位編碼的方法進(jìn)行加密和解密。

1 理論基礎(chǔ)

1.1 基于算術(shù)編碼的壓縮方法

算術(shù)編碼[18-20]是一種變字長(zhǎng)無(wú)損編碼方法,將編碼數(shù)據(jù)看作由多個(gè)符號(hào)組成的序列,直接對(duì)該序列進(jìn)行編碼,編碼后輸出的碼字對(duì)應(yīng)于整個(gè)符號(hào)序列,而每個(gè)碼字本身確定了0和1之間的一個(gè)實(shí)數(shù)區(qū)間。編碼原理為:根據(jù)信源符號(hào)中各個(gè)符號(hào)所占的概率不同,把[0,1]區(qū)間劃分為若干個(gè)互不重疊的子區(qū)間,每個(gè)區(qū)間的長(zhǎng)度為每個(gè)信源符號(hào)的概率。這樣,每個(gè)信源符號(hào)都可以用其所對(duì)應(yīng)區(qū)間內(nèi)的任何一個(gè)實(shí)數(shù)來(lái)表示,在對(duì)信源符號(hào)進(jìn)行編碼時(shí),便可用相應(yīng)的區(qū)間來(lái)表示。例如,要編碼的是一個(gè)來(lái)自4個(gè)信源符號(hào){1234}并由5個(gè)信源符號(hào)組成的符號(hào)序列:41312。通過(guò)計(jì)算得到各信源符號(hào)的概率分別為:P(1)=0.4,P(2)=0.2,P(3)=0.2,P(4)=0.2。編碼時(shí),首先根據(jù)各個(gè)信源符號(hào)的概率將區(qū)間[0,1]分成4個(gè)子區(qū)間:符號(hào)1對(duì)應(yīng)[0,0.4),符號(hào)2對(duì)應(yīng)[0.4,0.6),符號(hào)3對(duì)應(yīng)[0.6,0.8),符號(hào)4對(duì)應(yīng)[0.8,1.0)。符號(hào)序列中第1個(gè)符號(hào)是4,其對(duì)應(yīng)的子區(qū)間為[0.8,1.0),因?yàn)樗潜痪幋a的第1個(gè)符號(hào),所以原始信源符號(hào)就被縮窄到了區(qū)間[0.8,1.0),接下來(lái)將這個(gè)區(qū)間擴(kuò)展為整個(gè)高度,其端點(diǎn)值不變,然后,這個(gè)縮窄的區(qū)間根據(jù)原始信源符號(hào)的概率進(jìn)行細(xì)分,并繼續(xù)對(duì)下一個(gè)信源符號(hào)進(jìn)行處理。例如,第2個(gè)符號(hào)是1,1 在初始區(qū)間內(nèi)是占整個(gè)區(qū)間的前40%,對(duì)應(yīng)的也要占區(qū)間[0.8,1.0)的前40%,因此第2個(gè)符號(hào)的新編碼區(qū)間變?yōu)閇0.8,0.88),然后,第3個(gè)符號(hào)3 占初始區(qū)間的60%到80%,則第3個(gè)符號(hào)的新編碼區(qū)間為[0.848,0.864),依此類(lèi)推,第4個(gè)符號(hào)的新編碼區(qū)間為[0.848,0.8544),第5個(gè)符號(hào)的新編碼區(qū)間為[0.85056,0.85184),這樣該區(qū)間內(nèi)的任何一個(gè)實(shí)數(shù)就可以表示整個(gè)符號(hào)序列。把該十進(jìn)制區(qū)間用二進(jìn)制表示為[0.11011001101111100101,0.11011010000100100011),忽視小數(shù)點(diǎn),不考慮“0.”,取該區(qū)間內(nèi)碼長(zhǎng)為最短的碼字作為最后實(shí)際的編碼碼字輸出,所以對(duì)字符串[41312]進(jìn)行算術(shù)編碼的輸出碼字為1101101。

對(duì)于一幅灰度圖像,對(duì)其進(jìn)行算術(shù)編碼壓縮的具體步驟為:

Ⅰ) 將灰度圖利用Matlab 軟件讀取文件的形式讀取為一串二進(jìn)制序列數(shù)據(jù);

Ⅱ) 將Ⅰ)中的二進(jìn)制數(shù)據(jù)利用利用文獻(xiàn)[17]中的方法轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù)據(jù)。具體規(guī)則為:步驟1,取4位二進(jìn)制數(shù);步驟2,如果4位數(shù)字是1000 或1001,則將其轉(zhuǎn)換為8 或9,并在4位數(shù)字后再次從下一位開(kāi)始步驟1。如果這4位數(shù)字既不是1000 也不是1001,取前3位數(shù)字,并將其轉(zhuǎn)換為0到7之間的一個(gè)數(shù)字。在3位數(shù)之后從下一位開(kāi)始步驟1;

Ⅲ) 把Ⅱ)中的十進(jìn)制數(shù)分為若干小段,對(duì)每一小段進(jìn)行算術(shù)編碼,將編碼得到的二進(jìn)制字符串組合在一起;

Ⅳ) 將Ⅲ)得到的二進(jìn)制字符串用Ⅱ)中的方法轉(zhuǎn)換成十進(jìn)制數(shù),編碼完成,整個(gè)過(guò)程如圖1所示。

圖1 基于算術(shù)編碼的數(shù)據(jù)壓縮過(guò)程Fig.1 Data compression process based on arithmetic coding

1.2 QR碼

QR碼是二維碼的一種,有40個(gè)版本和L、M、Q、H 4個(gè)糾錯(cuò)等級(jí),不同的版本和糾錯(cuò)等級(jí)存儲(chǔ)的數(shù)據(jù)大小也不同,版本越大,糾錯(cuò)等級(jí)越低,存儲(chǔ)的數(shù)據(jù)越多。例如,31版的QR碼最多可存儲(chǔ)4 417個(gè)十進(jìn)制數(shù)字、2677個(gè)字母數(shù)字組合、1 840個(gè)8位字節(jié)、1132個(gè)中國(guó)漢字。各個(gè)版本和糾錯(cuò)等級(jí)QR碼的存儲(chǔ)容量如表1所示。

表1 各個(gè)版本和糾錯(cuò)等級(jí)QR碼的存儲(chǔ)容量Table1 Storage capacity of QR code with each version and each error correction level

2 實(shí)驗(yàn)?zāi)M

為了驗(yàn)證本文所提方法的有效性,利用Matlab軟件對(duì)實(shí)驗(yàn)進(jìn)行模擬。所選的加密系統(tǒng)為雙隨機(jī)相位編碼(DRPE)平行加密系統(tǒng)[1],如圖2所示。

圖2 DRPE 加密系統(tǒng)(f(x,y)和g(x,y)為明文圖像和密文圖像,θ(x,y)和φ(u,v)為隨機(jī)相位板,L1和L2為傅里葉透鏡)Fig.2 DRPE encryption system(f(x,y) and g(x,y) are plaintext images and ciphertext images,θ(x,y) andφ(u,v) are random phase masks,L1and L2are Fourier lenses)

加密和解密過(guò)程可以表示為

式中:f(x,y)和g(x,y)分別為明文圖像和密文圖像;FT和FT?1為傅里葉正、逆變換;θ(x,y)和φ(u,v)是兩塊隨機(jī)分布在0到2π 區(qū)間的相位板;* 代表共軛。

對(duì)于一幅灰度圖像,最常見(jiàn)的格式是BMP和JPEG,BMP格式的圖像每一個(gè)像素值由8位二進(jìn)制組成,JPEG格式圖像是BMP格式的壓縮形式,它的數(shù)據(jù)量要遠(yuǎn)小于BMP格式的數(shù)據(jù)量。無(wú)論是BMP 還是JPEG格式的圖像,都可以以文件形式讀取為一串二進(jìn)制序列數(shù)據(jù)。以圖3(a)灰度值較豐富的Lena 圖為例,大小為64×64像素BMP格式的圖像二進(jìn)制文件大小為5.05 kB,可以讀取為41376個(gè)二進(jìn)制數(shù)字序列,在本文中我們采用的是壓縮后的JPEG 文件(見(jiàn)表3),二進(jìn)制文件大小為3.06 kB,讀取為二進(jìn)制數(shù)字序列為25088個(gè),用文獻(xiàn)[17]的方法轉(zhuǎn)化的十進(jìn)制數(shù)為8043個(gè),使用算術(shù)編碼后的二進(jìn)制數(shù)字為19266個(gè),最后再次轉(zhuǎn)化為十進(jìn)制數(shù)字有4395個(gè),將這些十進(jìn)制數(shù)存入31版糾錯(cuò)等級(jí)為L(zhǎng)的QR碼中,結(jié)果如圖3(b)。然后利用DRPE 光學(xué)系統(tǒng)對(duì)3(b)進(jìn)行加密和解密,加密后的密文圖像的實(shí)部和解密后的QR碼圖像如圖3(c)和3(d)。31版糾錯(cuò)等級(jí)為L(zhǎng)的QR碼[15],錯(cuò)誤糾正碼字?jǐn)?shù)480個(gè),最少可糾正240個(gè)錯(cuò)誤碼字,解密后的QR碼所包含的噪聲導(dǎo)致的錯(cuò)誤碼字?jǐn)?shù)遠(yuǎn)小于240,所以解密后的QR碼可被輕松識(shí)別,圖3(e)為最后恢復(fù)的原始圖像。

圖3 實(shí)驗(yàn)?zāi)M結(jié)果Fig.3 Experimental simulation results

為了更好地說(shuō)明本文所提方法的特點(diǎn),對(duì)表示圖像數(shù)據(jù)量的十進(jìn)制數(shù)字壓縮效率采用以下公式:

式中:P代表壓縮效率;M代表壓縮后的十進(jìn)制數(shù)字個(gè)數(shù);N代表原始圖像所有灰度值十進(jìn)制數(shù)字個(gè)數(shù)的總和。以圖3(a)中的Lena 圖為例,分別計(jì)算文獻(xiàn)[16]中行程編碼的壓縮方法、文獻(xiàn)[17]中的壓縮方法和本文所提出方法的壓縮率,結(jié)果如表2所示。

表2 不同方法的壓縮率Table2 Compression ratios of different methods

由表2可以看出,本文所提出的壓縮方法的壓縮率要優(yōu)于文獻(xiàn)[16]和文獻(xiàn)[17]中的方法,如果要將一幅大圖像存入QR碼中,本文提出的方法效果更佳。

3 討論

對(duì)于一幅灰度層次較飽滿的圖像,例如Lena圖,采用本文所提出的壓縮方法,最多可以將一幅64×64像素大小的圖像存入到QR碼中,對(duì)于一張128×128像素或者256×256像素大小的灰度圖像,則要采用多張QR碼。表3為不同灰度圖的壓縮信息,對(duì)灰度層次較少的圖像,由于圖像冗余度大,壓縮率高,采用本文的方法可以將一幅128×128像素的JPEG圖像壓縮后存入到QR碼中,通過(guò)光學(xué)加密系統(tǒng)可以得到無(wú)損解密的圖像。而對(duì)于一張灰度值只有0和255的二值圖像,則可以將256×256像素或者更大的JPEG圖像存入QR碼,如圖4所示,為了視覺(jué)效果更好,我們對(duì)128×128像素的圖像做了放大處理。此外,由于QR碼有4個(gè)糾錯(cuò)等級(jí),不同的糾錯(cuò)等級(jí)數(shù)據(jù)容量不同,在實(shí)際的光學(xué)加密系統(tǒng)中,往往會(huì)引入其他噪聲,所以在可選擇的糾錯(cuò)等級(jí)和版本中,我們一般選擇版本低和糾錯(cuò)等級(jí)高的QR碼進(jìn)行加密和解密。

本文所提出的基于算術(shù)編碼的壓縮方法,理論上可以多次使用,重復(fù)壓縮,但由于每次壓縮都需要記錄每個(gè)灰度值的概率,以便在解壓時(shí)使用,在實(shí)際的圖像加密應(yīng)用中,這就會(huì)增加密鑰數(shù)據(jù)的傳輸量,并不利于加密技術(shù)的實(shí)際應(yīng)用。

表3 不同灰度圖的壓縮信息Table3 Compression information for different grayscale images

圖4 不同類(lèi)型圖像加密結(jié)果對(duì)比Fig.4 Comparison of encryption results for different types of images

4 結(jié)論

QR碼作為數(shù)據(jù)容器在光學(xué)圖像加密中起著非常重要的作用,但由于實(shí)際圖像通常數(shù)據(jù)量較大,超出了QR碼的存儲(chǔ)容量,因此目前只是將一些簡(jiǎn)短的表達(dá)或者32×32像素的灰度圖像存儲(chǔ)到QR碼中,遠(yuǎn)不能滿足實(shí)際加密的需求。本文提出了一種基于算術(shù)編碼的圖像壓縮方法,將灰度圖像首先讀取為二進(jìn)制數(shù)據(jù)并轉(zhuǎn)換為十進(jìn)制數(shù),再將十進(jìn)制數(shù)利用算術(shù)編碼的方法壓縮為二進(jìn)制數(shù),最后再轉(zhuǎn)換成十進(jìn)制數(shù),使得原始圖像的壓縮率極大提高,成功地將一幅64×64像素的灰度圖像壓縮到QR碼中,并利用DRPE系統(tǒng)加密和解密,得到無(wú)損恢復(fù)的解密圖像。此方法在未來(lái)有望用于視頻及其他多媒體信號(hào)的加密。

猜你喜歡
二進(jìn)制解密灰度
采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過(guò)濾技術(shù)
用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
炫詞解密
Bp-MRI灰度直方圖在鑒別移行帶前列腺癌與良性前列腺增生中的應(yīng)用價(jià)值
解密“一包三改”
炫詞解密
有趣的進(jìn)度
二進(jìn)制在競(jìng)賽題中的應(yīng)用
基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
二進(jìn)制寬帶毫米波合成器設(shè)計(jì)與分析