◆丁屹旻
(河南省實(shí)驗中學(xué) 河南 450002)
一種攝像頭拍攝圖像的完整性認(rèn)證算法
◆丁屹旻
(河南省實(shí)驗中學(xué) 河南 450002)
為了保證考生現(xiàn)場采集照片的完整性,維護(hù)考試的公平公正,本文提出了一種基于數(shù)字水印的攝像頭拍攝圖像完整性認(rèn)證算法。該算法利用MD5和RC4算法在采集圖像的格式字段與圖像內(nèi)容中嵌入水印信息,實(shí)現(xiàn)對視頻攝像頭拍攝的圖像進(jìn)行完整性保護(hù)和認(rèn)證,能夠準(zhǔn)確判斷圖像是否經(jīng)過了篡改,同時保證水印信息對常見圖像處理操作的魯棒性,從而為防止替考和冒名頂替事件的發(fā)生提供了一種有效的手段。
數(shù)字水?。慌臄z圖像;完整性認(rèn)證;MD5算法;RC4算法
近年來,類似于“羅彩霞事件”的考試替考、冒名頂替上學(xué)的新聞報道在我們的生活中所見不鮮。如何有效地防止替考和冒名頂替上學(xué)事件的發(fā)生從而維護(hù)考試的公平公正,是一個值得關(guān)注和解決的問題。當(dāng)前通常的做法是進(jìn)行考生照片采集和現(xiàn)場確認(rèn)的方式來防止替考和冒名頂替。然而,如果采集的照片被人為更改,那么替考和冒名頂替事件就仍然可能發(fā)生。如何保證攝像頭拍照采集圖像的完整性,是目前圖像真實(shí)性認(rèn)證中亟需解決的關(guān)鍵問題。
數(shù)字水?。―igital Watermarking)技術(shù)是將一些標(biāo)識信息(即數(shù)字水?。┲苯忧度霐?shù)字載體當(dāng)中(包括多媒體、文檔、軟件等)或是間接表示(修改特定區(qū)域的結(jié)構(gòu)),且不影響原載體的使用價值,也不容易被探知和再次修改,但可以被生產(chǎn)方識別和辨認(rèn)。通過這些隱藏在載體中的信息,可以達(dá)到確認(rèn)內(nèi)容創(chuàng)建者、購買者、傳送隱秘信息或者判斷載體是否被篡改等目的。數(shù)字水印是保護(hù)信息安全、實(shí)現(xiàn)防偽溯源、版權(quán)保護(hù)的有效辦法。數(shù)字水印主要包括魯棒水印和脆弱水印兩類,其中脆弱水印對其所保護(hù)的數(shù)字載體的任何變換或處理操作都具有非常強(qiáng)的敏感性,主要用于多媒體數(shù)據(jù)的精確認(rèn)證。脆弱水印算法要求對篡改具有敏感性,其依賴于圖像內(nèi)容產(chǎn)生水印信息,既可以增強(qiáng)系統(tǒng)抵御統(tǒng)計攻擊的能力,又避免了在認(rèn)證檢測端額外提供原始水印信息,對惡意篡改具有敏感性,因而更適用于圖像認(rèn)證。魯棒水印是指在經(jīng)歷多種無意或有意的信號處理過程后,嵌入的數(shù)字水印仍能保持部分完整性并能被準(zhǔn)確鑒別。量化索引調(diào)制(Quantization Index Modulation,QIM)是一種典型的含邊信息數(shù)字水印嵌入方案[4],而抖動調(diào)制(Dither Modulation,DM)作為QIM 水印方案的一種典型實(shí)現(xiàn),由于其容量大、魯棒性好、容易實(shí)現(xiàn)盲檢測等特性已成為研究和應(yīng)用最多的方法之一。典型的水印算法中,文獻(xiàn)[5]將水印信息以隨機(jī)確定的強(qiáng)度嵌入隨機(jī)選取的圖像DCT系數(shù)中,該方法可使帶水印圖像的峰值信噪比更高,能夠抵抗中值濾波,但是不能有效抵抗JPEG壓縮;文獻(xiàn)[6]的不可見水印方法選擇每個顏色分量8x8分塊DCT 變換后最左上角的8個系數(shù)來嵌入信息,該方法具有較好的不可見性,但也能有效抵抗JPEG壓縮。上述的水印算法雖然具有較好的不可見性和一定的魯棒性,但通常不能保證攝像頭拍攝圖像的完整性。
為了解決數(shù)字圖像的完整性認(rèn)證問題,特別是常用的攝像頭拍攝圖像的完整性認(rèn)證問題,同時保證水印信息的魯棒性,結(jié)合數(shù)字水印技術(shù)具有隱蔽實(shí)施、快速便捷、持續(xù)有效等技術(shù)特點(diǎn),本文結(jié)合脆弱水印與魯棒水印的特點(diǎn),利用攝像頭拍攝原理、拍攝得到的圖像格式以及數(shù)字水印思想,提出了一種基于數(shù)字水印的攝像頭拍攝圖像完整性認(rèn)證算法。該算法基于脆弱水印技術(shù)來實(shí)現(xiàn)對視頻攝像頭拍攝的圖像進(jìn)行完整性保護(hù)和認(rèn)證,能夠準(zhǔn)確判斷圖像是否經(jīng)過了篡改,同時利用魯棒水印技術(shù)保證水印信息對常見圖像處理操作的魯棒性。
基于數(shù)字水印的攝像頭拍攝圖像完整性認(rèn)證算法可實(shí)現(xiàn)對攝像頭拍攝的JPEG格式圖像進(jìn)行采集,然后將水印信息嵌入圖像中,在不影響圖像的正常顯示和人的視覺效果前提下,達(dá)到認(rèn)證攝像頭拍照文件圖像完整性、保護(hù)圖像真實(shí)性的目的。此外,還可直接用于對一些重要的JPEG格式圖像文件的完整性認(rèn)證和保護(hù)。例如:醫(yī)學(xué)圖像和用于法庭取證的數(shù)字圖像,往往要求原始文件不能經(jīng)過任何修飾和篡改,如何從技術(shù)上來對此類圖像的完整性進(jìn)行認(rèn)證,是值得研究問題。本算法針對攝像頭拍攝得到的JPEG圖像,采用了基于格式的水印嵌入方法,當(dāng)圖像經(jīng)過任何非拷貝或打開操作后,將會被本算法判別為經(jīng)過了篡改。
本文算法具有如下特點(diǎn):
(1)能夠?qū)z像頭數(shù)據(jù)流進(jìn)行圖像采集,并能夠?qū)Υ藞D像進(jìn)行水印嵌入;
(2)能對攝像頭拍照的圖像,保護(hù)用戶隨意選擇的需要保護(hù)的敏感區(qū)域;
(3)能可靠判決圖像是否經(jīng)過了篡改,判決結(jié)果可證明;
(4)對于圖像的修改十分敏感,除了拷貝和打開操作,對于含水印圖像的任何其他操作得到的圖像都會被判為經(jīng)過篡改;
(5)對于涂改、剪切、拉伸、縮放、壓縮等操作,能夠提取嵌入圖像內(nèi)容中的水印信息;
(6)結(jié)合了MD5[7]和RC4[8]兩種經(jīng)典加密技術(shù),充分保證了水印和整個認(rèn)證系統(tǒng)的安全性;
(7)采取了基于JPEG圖像格式和圖像內(nèi)容的嵌入方法,對圖像的數(shù)據(jù)區(qū)不作任何修改,因此,不會對圖像的視覺效果產(chǎn)生任何影響。
1.1 圖像采集及水印嵌入算法
基于數(shù)字水印的攝像頭拍攝圖像完整性認(rèn)證算法中,攝像頭視頻設(shè)備圖像采集及水印嵌入過程流程圖如圖1所示:
在調(diào)用攝像頭拍攝圖像后,首先選擇待嵌入的水印信息并設(shè)置密鑰。為了保證輸入水印信息的魯棒性,本文采用RC4算法和密鑰對水印信息加密,采用基于圖像內(nèi)容的水印嵌入算法將水印信息嵌入到待保護(hù)圖像中。為了對圖像內(nèi)容進(jìn)行完整性認(rèn)證,本文將圖像內(nèi)容的哈希摘要作為水印信息的一部分。基于MD5算法及密鑰對圖像內(nèi)容進(jìn)行哈希,將哈希值與加密后的水印信息共同構(gòu)成水印信息。最后,使用基于圖像格式的水印嵌入算法,將水印信息添加到待保護(hù)的拍攝圖像中,即生成含水印的攝像頭拍攝圖像。
(1)基于圖像內(nèi)容的水印嵌入算法
基于圖像內(nèi)容的水印嵌入算法將水印信息擴(kuò)頻后,利用拍攝圖像的中低頻系數(shù)嵌入水印信息,在不影響圖像質(zhì)量的前提下,可保證水印信息對JPEG壓縮、高斯噪聲、中值濾波等操作的魯棒性。本文為了增強(qiáng)水印的安全性及魯棒性,在嵌入水印之前,對其進(jìn)行擴(kuò)頻調(diào)制。設(shè)原始信息為“0”、“l(fā)”序列,其長度為N,即:
將該序列以一定的片率cr(cr為大于l的正奇數(shù))進(jìn)行按位擴(kuò)展,得到序列:
然后利用偽隨機(jī)數(shù)發(fā)生器根據(jù)密鑰K產(chǎn)生一長度為Ncr·的偽隨機(jī)“0”、“l(fā)”序列R,且將它與M進(jìn)行按位異或,得到最后要嵌入的水印信息:
為了保證水印信息的魯棒性,采用抖動調(diào)制算法將水印信息嵌入在圖像的中低頻系數(shù)中。抖動調(diào)制首先將水印信息或由水印信息確定的抖動量加到載體上,然后進(jìn)行量化以嵌入水印信息。根據(jù)抖動調(diào)制的定義,水印嵌入過程可用下式描述:
其中x表示原始載體數(shù)據(jù);wx表示嵌入水印之后的數(shù)據(jù);為四舍五入取整函數(shù);Δ表示由JPEG量化表確定的量化步長;m表示水印信息;()dm是與m相對應(yīng)的抖動量;是與m相對應(yīng)的量化器。
圖1 圖像采集及水印嵌入過程流程圖
(2)基于圖像格式的水印嵌入算法
基于圖像格式的嵌入算法利用JPEG文件格式中的冗余字段,實(shí)現(xiàn)水印的嵌入。JPEG圖像文件的主要格式如下:
表1 JPEG圖像文件格式
0xFFD4 哈弗曼表標(biāo)志0xFFDA 圖像數(shù)據(jù)標(biāo)志0xFFD9 圖像結(jié)束標(biāo)志
在這里本文關(guān)注的部分為注釋字段。JPEG的注釋字段允許把注釋數(shù)據(jù)加入到JPEG圖像中,注釋字段以0xFFEF為開始標(biāo)志,后面2字節(jié)的無符號數(shù)表示為注釋字段的長度+2,這里的2是指長度值本身占用的2個字節(jié),再后面為注釋數(shù)據(jù),一個合法的注釋段如下圖所示:
圖2 JPEG圖像注釋段(例)
由JPEG圖像格式可知,我們可以在注釋字段后加入一定長度的水印信息。因此,可以將加密后的水印信息嵌入到JPEG文件注釋區(qū)的后面,因為改變的是注釋字段,因而不會影響圖像的質(zhì)量。
1.2 圖像完整性認(rèn)證算法
圖3 圖像完整性認(rèn)證過程流程圖
基于數(shù)字水印的攝像頭拍攝圖像完整性認(rèn)證算法中,圖像完整性認(rèn)證過程流程圖如圖3所示。在認(rèn)證階段,首先打開待認(rèn)證的圖像,并輸入密鑰信息。然后利用MD5算法和密鑰對圖像內(nèi)容進(jìn)行哈希。接著從圖像格式中的注釋字段提取嵌入的水印信息,并將水印信息中的哈希值與再次獲取的圖像內(nèi)容哈希值進(jìn)行對比,即可判斷圖像內(nèi)容是否保持完整或經(jīng)過篡改。若哈希值相等,則認(rèn)證通過,利用RC4算法和密鑰提取水印信息;若哈希值不等,則認(rèn)證失敗,說明圖像經(jīng)過篡改。通過RC4算法和密鑰提取嵌入在圖像內(nèi)容中的水印信息。
為驗證本文算法性能,基于VS2008軟件開發(fā)環(huán)境實(shí)現(xiàn)了基于數(shù)字水印的攝像頭拍攝圖像完整性認(rèn)證算法。實(shí)驗主要分為兩個部分:(1)圖像完整性認(rèn)證實(shí)驗;(2)對比實(shí)驗。
2.1 圖像完整性認(rèn)證實(shí)驗
選擇連接本地計算機(jī)的攝像頭視頻設(shè)備,并根據(jù)攝像頭的分辨率等性能選擇一個合適的攝像頭視頻設(shè)備。隨后即可出現(xiàn)攝像頭采集的視頻信息,如圖4(a)所示。輸入密鑰及水印信息并拍照,即可生成并保存含有水印信息的采集圖像,如圖4(b)所示。打開生成圖像,并利用算法程序進(jìn)行認(rèn)證,輸入密鑰后,即顯示圖像未經(jīng)過篡改并成功提取水印信息,如圖4(c)所示。對圖像進(jìn)行JPEG壓縮,并導(dǎo)入壓縮后的圖像進(jìn)行認(rèn)證,在輸入正確密鑰后,圖像無法認(rèn)證成功,如圖4(d)所示。
圖4 圖像完整性認(rèn)證實(shí)驗
本節(jié)實(shí)驗結(jié)果表明,本算法所生成的含水印攝像頭拍攝圖像不影響圖像的視覺質(zhì)量,并可在圖像未篡改時成功認(rèn)證并提取水印信息。當(dāng)輸入密鑰錯誤或圖像被修改過,則無法正確提取水印,即圖像認(rèn)證失敗。實(shí)驗表明,本算法針對攝像頭拍攝的JPEG格式圖像,基于數(shù)字水印嵌入算法,達(dá)到了完整性認(rèn)證的目的。同時,基MD5和RC4等公開密碼算法,保證了水印信息的安全性。
2.2 對比實(shí)驗
在Windows 10環(huán)境下,對本文算法及文獻(xiàn)[9]、文獻(xiàn)[10]中的算法進(jìn)行了對比測試。首先分別用本文算法及上述算法生成含水印圖像,并對圖像進(jìn)行涂改、剪切、拉伸、縮放、壓縮和保存操作后,對圖像進(jìn)行篡改檢測,實(shí)驗結(jié)果如表2所示。其中,“√”表示可以成功檢測到圖像篡改,“×”表示無法檢測到圖像篡改。
表2 對比實(shí)驗結(jié)果
上述實(shí)驗結(jié)果表明,本文所提出的基于數(shù)字水印的攝像頭拍攝圖像完整性認(rèn)證算法,針對圖像涂改、剪切、拉伸、縮放、壓縮和保存操作,均可實(shí)現(xiàn)圖像內(nèi)容的完整性認(rèn)證,能夠準(zhǔn)確判斷圖像是否經(jīng)過了篡改。同時,算法能夠正確提取圖像中嵌入的水印信息,表明嵌入的水印信息對常見的圖像操作具有一定的魯棒性。
近年來,考生照片采集和現(xiàn)場確認(rèn)成為了防止替考和冒名頂替上學(xué)事件的發(fā)生、維護(hù)考試的公平公正的一種重要手段。為了認(rèn)證采集圖像的完整性,本文提出了一種基于數(shù)字水印的攝像頭拍攝圖像完整性認(rèn)證算法。該算法利用MD5和RC4算法在采集圖像的格式字段與圖像內(nèi)容中嵌入水印信息,實(shí)現(xiàn)對視頻攝像頭拍攝的圖像進(jìn)行完整性保護(hù)和認(rèn)證,能夠準(zhǔn)確判斷圖像是否經(jīng)過了篡改,同時保證嵌入的水印信息具有一定的魯棒性,從而為防止替考和冒名頂替事件的發(fā)生提供了一種有效的手段。
[1]孫圣和,陸哲明.?dāng)?shù)字水印處理技術(shù)[J].電子學(xué)報,2000.
[2]和紅杰,張家樹,田蕾.能區(qū)分圖像或水印篡改的脆弱水印方案[J].電子學(xué)報,2005.
[3]Li Y,Hao Y,Wang C.A research on the robust digital watermark of color radar images[C].IEEE International Conference on Information and Automation(ICIA),2010.
[4]Chen B and Wornell G W.Quantization index modulation:A class of provably good methods for digital watermarking and information embedding [J].IEEE Trans.on Information Theory,2001.
[5]Cheng L M,Chen L L,Chan C K,et al.Digital watermarking based on frequency random position insertion[C].Kunming,China:8th International Conference on Control,Automation,Robotics and Vision,2004.
[6]Samuel S,Penzhom W T.Digital watermarking for copyright protection[C].7th AFRICON Conference in Africa,2004.
[7]張裔智,趙毅,湯小斌.MD5算法研究[J].計算機(jī)科學(xué),2008.
[8]宋維平.流密碼與RC4算法[J].吉林師范大學(xué)學(xué)報(自然科學(xué)版),2005.
[9]李諾,王技.一種基于數(shù)字水印的抗JPEG壓縮的圖像認(rèn)證方法[J].計算機(jī)應(yīng)用與軟件,2014.
[10]陳星娥.一種基于圖像內(nèi)容特征的自適應(yīng)水印認(rèn)證系統(tǒng)[J].湖北民族學(xué)院學(xué)報(自然科學(xué)版),2013.