基于攝像頭采集的混沌視頻加密研究
摘要 實(shí)時(shí)視頻采集、存儲(chǔ)和處理,已在各領(lǐng)域得到廣泛應(yīng)用。文中介紹了基于FPGA的視頻采集系統(tǒng)設(shè)計(jì)的總體框架,并闡述了其中的設(shè)計(jì)流程,利用混沌信號(hào)對(duì)數(shù)據(jù)進(jìn)行加密提高視頻數(shù)據(jù)的安全性。在DE2平臺(tái)下驗(yàn)證實(shí),文中設(shè)計(jì)的FPGA視頻采集系統(tǒng)完成了對(duì)實(shí)時(shí)視頻進(jìn)行混沌加密,實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)達(dá)到了初定的目標(biāo),加密的性能和效果能滿足應(yīng)用需要。
關(guān)鍵詞 視頻采集;FPGA;混沌加密;乒乓控制
實(shí)時(shí)視頻采集、存儲(chǔ)和處理已經(jīng)在得到廣泛應(yīng)用,如遠(yuǎn)程監(jiān)控、安防、工程控制、醫(yī)療器械等。通常情況下,用CCD或CMOS采集視頻,而得到的都是模擬視頻信號(hào),直接進(jìn)行傳輸、存儲(chǔ)和處理比較困難,因此必須將其轉(zhuǎn)換為數(shù)字視頻信號(hào)。文中采用視頻解碼芯片和現(xiàn)場(chǎng)可編程門陣列FPGA設(shè)計(jì)的實(shí)時(shí)圖像采集系統(tǒng),不僅可以有效地縮短研發(fā)周期,而目可以廣泛應(yīng)用于圖像識(shí)別、網(wǎng)絡(luò)視頻傳輸和實(shí)時(shí)監(jiān)控等各類圖像信息處理系統(tǒng)。
此外,考慮到該設(shè)計(jì)的視頻采集系統(tǒng)可以投入后續(xù)的一些應(yīng)用,如網(wǎng)絡(luò)視頻或視頻會(huì)議等。信息安全對(duì)于本系統(tǒng)較為重要,要求本系統(tǒng)應(yīng)該具有一定的數(shù)據(jù)保密功能。由于目前許多加密算法的結(jié)構(gòu)復(fù)雜、運(yùn)算量大,對(duì)于視頻采集這種實(shí)時(shí)性要求較高的數(shù)據(jù)流而言難以達(dá)到速度要求,因此,文中設(shè)計(jì)的系統(tǒng)選擇了—種加密效果良好,且易于硬件實(shí)現(xiàn)的混沌算法以對(duì)視頻數(shù)據(jù)進(jìn)行加密。
1 混沌加密實(shí)現(xiàn)原理
1.1 混沌加密原理
混沌信號(hào)用于數(shù)據(jù)保密通信中有多種形式,究其根底混沌保密是利用混沌信號(hào)的各種特性實(shí)現(xiàn)的。在數(shù)據(jù)的發(fā)送端將其作為密鑰明文信息和混沌信號(hào)經(jīng)加密變換后形威密文,然后在信道中傳送,在接收端合法用戶知道解密密鑰和解密變換因此能夠得到正確的明文。這種加密原理主要源于傳統(tǒng)的對(duì)稱密鑰加密算法。
目前常用于加密的混沌同步方法主要有:驅(qū)動(dòng)一響應(yīng)同步及串聯(lián)同步法、主動(dòng)一被動(dòng)同步方法、互耦合混沌同步法。自適應(yīng)同步方法、神經(jīng)網(wǎng)絡(luò)同步方法等。傳統(tǒng)的混沌加密算法首先需要產(chǎn)生混沌信號(hào),混沌信號(hào)的產(chǎn)生要求較高。首先硬件要支持浮點(diǎn)運(yùn)算,并且需要迭代一定次數(shù)才能產(chǎn)生混沌,所以占用硬件資源較大;相比較而言,本設(shè)計(jì)為實(shí)現(xiàn)視頻加密所采用的二維貓映射混沌加密算法和擴(kuò)散算法,不會(huì)帶來信號(hào)失真,運(yùn)算復(fù)雜度低,易于硬件的實(shí)現(xiàn),加密效果較好。
1.2 貓映射加密算法
貓映射的數(shù)學(xué)表達(dá)式為
其中,modl表示只取實(shí)數(shù)的小數(shù)部分。為將貓映射用于加密,需要對(duì)它進(jìn)行適當(dāng)處理,首先將貓映射擴(kuò)展到N×N,并進(jìn)行離散化,如式(3)所示。
在實(shí)際圖像貓映射加密中,為讓圖像加密效果更理想,需要經(jīng)過n次迭代計(jì)算完成n階貓映射算法。需要說明的是,應(yīng)用貓映射算法加密的圖像必須是正方形,否則會(huì)產(chǎn)生像素混疊導(dǎo)致解碼失敗。因此,模運(yùn)算的N表示圖像寬度。
1.3 擴(kuò)散算法
擴(kuò)散算法的數(shù)學(xué)表達(dá)式為
其中,f(xk,yk),f(xk+1,yk),f(xk+2,yk),f(xk+3,yk)表示一行中的連續(xù)4個(gè)像素值。進(jìn)行模256的算法是為了使經(jīng)過擴(kuò)散運(yùn)算后的結(jié)果范圍在[0,255]內(nèi),保證運(yùn)算結(jié)果仍為8位。此外,由于B矩陣中的元素都是整數(shù),對(duì)于不支持浮點(diǎn)數(shù)運(yùn)算的硬件平臺(tái)來說,比較容易實(shí)現(xiàn)。
2 視頻采集系統(tǒng)的設(shè)計(jì)
此次設(shè)計(jì)采用的FPGA核心芯片是Altera公司CycloneII系列,型號(hào)EP2C35F672C。此型號(hào)芯片含有33 216個(gè)邏輯單元,內(nèi)置483 840bit的內(nèi)部RAM容量,其中包括105個(gè)M4K RAM模塊,35個(gè)內(nèi)嵌乘法器,4個(gè)PLL和475個(gè)I/O管腳。
2.1 系統(tǒng)的總體框架
設(shè)計(jì)的系統(tǒng)由A/D轉(zhuǎn)換、FPGA控制處理、外部SRAM和VGA組成,如圖1所示。A/D轉(zhuǎn)換部分用于圖像數(shù)據(jù)的采集和模數(shù)轉(zhuǎn)換。設(shè)計(jì)采用AD公司的視頻解碼芯片ADV7181。FPGA控制處理部分采用Altera公司的CydoneII系列芯片作為控制處理核心,負(fù)責(zé)前端數(shù)據(jù)采集和存儲(chǔ),同時(shí)將數(shù)據(jù)傳輸至顯示器。另外,由于視頻數(shù)據(jù)采集的實(shí)時(shí)性和連續(xù)性要求,采用外部SRAM作為存儲(chǔ)設(shè)備。
2. 2 視頻采集的流程分析
視頻采集系統(tǒng)主要包括ITU656解碼模塊、I2C接口模塊、SRAM控制模塊和VGA顯示模塊。
當(dāng)系統(tǒng)加電后,首先通過過I2C接口模塊對(duì)ADV7181芯片進(jìn)行初始化,使ADV7181芯片輸出標(biāo)準(zhǔn)的PAL制式數(shù)據(jù)。當(dāng)程序判斷出接收到的是有效視頻數(shù)據(jù)時(shí),ITU656解碼模塊對(duì)A/D芯片產(chǎn)生的PAL制式數(shù)據(jù)流進(jìn)行串并轉(zhuǎn)換和YUVtoRGB轉(zhuǎn)換,產(chǎn)生適合顯示的RGB數(shù)據(jù)格式。隨后FPGA將轉(zhuǎn)換后的圖像數(shù)據(jù)存入SRAM中,當(dāng)接收完一幀圖像數(shù)據(jù)后,F(xiàn)PGA將從SRAM中讀出視頻圖像數(shù)據(jù)并通過VGA模塊在CRT顯示器上顯示,與此同時(shí)FPGA繼續(xù)控制下一幀視頻的采集、轉(zhuǎn)換、存儲(chǔ)和顯示。整個(gè)視頻采集的流程如圖2所示。
3 視頻混沌加密系統(tǒng)的設(shè)計(jì)
混沌加密系統(tǒng)中,混沌加密算法的設(shè)計(jì)至關(guān)重要,它決定了混沌加密系統(tǒng)的安全性以及執(zhí)行效率。此外,由于視頻數(shù)據(jù)置龐大和實(shí)時(shí)性的特點(diǎn),對(duì)混沌加密系統(tǒng)的執(zhí)行效率提出了更高的要求。具體的說,應(yīng)盡可能的避免重復(fù)的迭代運(yùn)算,采用流水線式的結(jié)構(gòu)實(shí)現(xiàn)高速運(yùn)算。
文中加密算法采用貓映射置亂算法和擴(kuò)散算法相結(jié)合的方法實(shí)現(xiàn)。傳統(tǒng)用C語言實(shí)現(xiàn)的置亂和擴(kuò)散加密方式主要是先對(duì)整幅圖像進(jìn)行置亂后再進(jìn)行擴(kuò)散加密,程序中存在多次循環(huán)語句的調(diào)用,在圖像尺寸較大情況下,這些循環(huán)語句的調(diào)用會(huì)花費(fèi)比較多的時(shí)間,造成數(shù)據(jù)處理實(shí)時(shí)性能不足;針對(duì)這種不足,考慮到Verilog語言的并行處理特點(diǎn),提出具有實(shí)時(shí)處理能力的置亂擴(kuò)散加密原理框圖,如圖3所示。
從原理上分析,置亂算法和擴(kuò)散算法的運(yùn)算對(duì)象不同,置亂算法處理的是像素位置,而擴(kuò)散算法處理的是像素值。因此,借助Verlog語言的并行性特點(diǎn),可以同時(shí)進(jìn)行置亂算法和擴(kuò)散算法。一方面將圖像像素坐標(biāo)信息傳送到置亂加密模塊中,產(chǎn)生置亂后的地址,連接到SRAM的地址總線上;另一方面從視頻圖像中不斷地緩存連續(xù)的4個(gè)像素值傳送到擴(kuò)散加密模塊中,經(jīng)過擴(kuò)散算法后產(chǎn)生4個(gè)新的像素值,送到SRAM的數(shù)據(jù)總線上。
4 實(shí)驗(yàn)及結(jié)果分析
4. 1 實(shí)驗(yàn)結(jié)果
基于FPGA的視頻加密實(shí)驗(yàn)結(jié)果如圖4所示。圖4(a)為采集到的某一幀圖像,需要說明的是圖像像素是由16位RGB565擴(kuò)展為24位RGB888數(shù)據(jù)顯示的,其中RGB565數(shù)據(jù)是存放在SRAM中的數(shù)據(jù)。之所以存儲(chǔ)16位RGB565,是由于本系統(tǒng)中的外部存儲(chǔ)器SRAM的數(shù)據(jù)位寬為16位。選擇16位RGB565既滿足外部存儲(chǔ)器的數(shù)據(jù)帶寬要求,又不會(huì)降低圖像的視覺效果。圖14(b)為采集到的經(jīng)過混沌加密后的某一幀圖像,由于混沌加密算法會(huì)使圖像的像素值位寬變長,不能直接存放,需要將像素值截?cái)喑蒖GB565的數(shù)據(jù)才能進(jìn)行存儲(chǔ)。圖4(c)為經(jīng)過逆運(yùn)算后得到的解密圖像。
4.2 安全性能分析
這里的安全性能分析主要是通過一幅圖像灰度值的統(tǒng)計(jì)特性來分析加密算法的安全性,采用Matlab計(jì)算出原圖像與加密后的灰度信息進(jìn)行對(duì)比。
原圖像灰度值的統(tǒng)計(jì)直方圖,如圖5所示,從圖中可以了解到,圖像的頻率分布主要在低頻到中頻區(qū)域內(nèi)。
加密后圖像灰度值的統(tǒng)計(jì)直方圖,如圖6所示。對(duì)圖5和圖6進(jìn)行比較,可以看出,經(jīng)過置亂和擴(kuò)散加密的圖像灰度值統(tǒng)計(jì)特性發(fā)生了明顯的變化,圖像的頻率遍布整個(gè)頻率空間,這種效果正是置亂和擴(kuò)散算法在加密中的充分體現(xiàn),也是圖像加密的安全性要求。正是由于混沌的這種特性,使得入侵者難以通過加密圖像的灰度值統(tǒng)計(jì)特性來破譯文件,從而增加密文圖像的安全性。
5 結(jié)束語
實(shí)驗(yàn)完成了基于FPGA平臺(tái)的視頻采集系統(tǒng)的實(shí)現(xiàn)和混沌置亂擴(kuò)散加密的算法設(shè)計(jì)。從實(shí)驗(yàn)結(jié)果來看,設(shè)計(jì)達(dá)到設(shè)定的且標(biāo),加密的性能和效果基本滿足實(shí)際應(yīng)用的要求。由于系統(tǒng)采用的置亂擴(kuò)散算法比較簡(jiǎn)單,因此接下來的工作就是要利用更為復(fù)雜的混沌系統(tǒng)作為密碼流對(duì)視頻數(shù)據(jù)進(jìn)行加密,以使視頻加密的安全性更好。