專利名稱:一種面向視頻流的混合編碼加密方法
技術(shù)領(lǐng)域:
本發(fā)明是一種對(duì)視頻數(shù)據(jù)進(jìn)行混合編碼加密的方法,其作用是在視頻數(shù)據(jù)的采集應(yīng)用中保證數(shù)據(jù)安全性的同時(shí)滿足實(shí)時(shí)性的要求。屬于視頻數(shù)據(jù)安全領(lǐng)域。
背景技術(shù):
隨著無(wú)線傳感技術(shù)快速發(fā)展以及網(wǎng)絡(luò)日益普及化,視頻傳輸模式正在得到越來(lái)越廣泛地應(yīng)用。如何保證視頻數(shù)據(jù)在這樣的網(wǎng)絡(luò)中不被別人竊取或篡改,如何保證視頻傳輸?shù)陌踩猿闪素酱鉀Q的問(wèn)題。同時(shí),智能業(yè)務(wù)的應(yīng)用越來(lái)越廣泛,對(duì)一些視頻應(yīng)用的實(shí)時(shí)性要求也越來(lái)越高,如視頻會(huì)議,網(wǎng)絡(luò)視頻等。若采用傳統(tǒng)的加密方法,在整個(gè)視頻進(jìn)行H. 264 (一種視頻壓縮標(biāo)準(zhǔn))編碼完成后進(jìn)行數(shù)據(jù)加密,則計(jì)算復(fù)雜、處理時(shí)間長(zhǎng)的特性不能滿足實(shí)時(shí)性的要求,不具有廣泛的應(yīng)用前景。事實(shí)上,圖像塊在經(jīng)過(guò)整數(shù)變換、量化后得到的系數(shù)能量大部分集中系數(shù)矩陣對(duì)角線的左上角,即少部分?jǐn)?shù)據(jù)包含了大部分能量,因此, 考慮到H. 264視頻編碼結(jié)構(gòu)的特殊性,我們提出僅對(duì)少量部分重要數(shù)據(jù)在編碼過(guò)程中同時(shí)進(jìn)行加密的方法,研究與實(shí)踐表明該方法能夠保證視頻數(shù)據(jù)安全性的同時(shí),滿足視頻應(yīng)用對(duì)實(shí)時(shí)性的要求。
發(fā)明內(nèi)容
技術(shù)問(wèn)題本發(fā)明的目的是提出一種面向視頻流的混合編碼加密方法,使得在對(duì)視頻數(shù)據(jù)進(jìn)行H. 264編碼的過(guò)程中增加加密的功能,實(shí)現(xiàn)兩者的結(jié)合。這樣既能保證視頻數(shù)據(jù)的安全性,又能滿足應(yīng)用環(huán)境對(duì)實(shí)時(shí)性的要求。目前的加密方法一般沒(méi)有考慮視頻數(shù)據(jù)幀間的關(guān)聯(lián)性,對(duì)數(shù)據(jù)全部加密,這樣會(huì)帶來(lái)較大的延遲。技術(shù)方案本發(fā)明的面向視頻流的混合編碼加密方法,該方法將加密算法嵌入在標(biāo)準(zhǔn)的圖像壓縮編碼方法H. 264中,加密與編碼同時(shí)進(jìn)行,且僅加密部分低頻數(shù)據(jù),以滿足視頻流實(shí)時(shí)傳輸?shù)囊?;該方法中,首先?duì)視頻流按照H. 264編碼方式進(jìn)行幀內(nèi)和幀間預(yù)測(cè)編碼,然后對(duì)編碼產(chǎn)生的部分低頻數(shù)據(jù)進(jìn)行加密,最終獲得加密的編碼數(shù)據(jù),整個(gè)加解密算法運(yùn)行在嵌入式系統(tǒng)上;其具體方法為I)將加密算法嵌入在H. 264編碼模塊中;2)加密算法采用一種高級(jí)加密方式AES的輸出反饋模式;3)待加密的低頻數(shù)據(jù)為編碼后的起始幀中的直流差分系數(shù),以及幀間預(yù)測(cè)幀、幀間雙向預(yù)測(cè)幀中的預(yù)測(cè)塊的直流差分系數(shù);其中,起始幀為I幀,幀間預(yù)測(cè)幀為P幀,幀間雙向預(yù)測(cè)幀為B幀;解密即為加密的逆過(guò)程,具體如下4)視頻流解碼時(shí),按照幀的類型即I幀、P幀、B幀的不同,分別進(jìn)行解密。基于H. 264的混合編碼加密實(shí)現(xiàn)方法,采用的加密方法為AES加密算法的輸出反饋模式OFB模式;AES明文數(shù)據(jù)塊和密鑰長(zhǎng)度設(shè)定為128bit比特、192比特、256比特中得任意一個(gè),令Nk= (4,6,8)表示三種密鑰的長(zhǎng)度,則AES作為密鑰的比特流長(zhǎng)度為32 XNk(Nk= (4, 6,8));令Nb= (4, 6,8)表示三種分組塊的長(zhǎng)度,即長(zhǎng)為32XNb (Nb= (4, 6,8))的明文數(shù)據(jù)可進(jìn)行加密,得到的密文長(zhǎng)度仍然為32XNb ;AES加密過(guò)程中重復(fù)輪的數(shù)目用隊(duì)表示,Nr=IO, 12,14為分別采用三種長(zhǎng)度密鑰運(yùn)算時(shí)的重復(fù)輪數(shù);定義輸入有k比特的密鑰K,n比特的初始向量IV以及r比特的明文分組塊X1……xu(l彡r彡η),產(chǎn)生r比特密文數(shù)據(jù)塊C1……Cu 是第j個(gè)輸入塊,Oj是第j個(gè)輸出塊,CIPHk(X)為密鑰K對(duì)數(shù)據(jù)塊χ進(jìn)行加密的前向加密函數(shù);
AES加密算法需包含多輪重復(fù)和變換,即密鑰擴(kuò)展、初始輪、重復(fù)輪、最終輪;重復(fù)的每一輪又包括字節(jié)變換、行移動(dòng)、列混合、輪密鑰加,然而最終輪中不包含列混合;OFB模式的加密過(guò)程為①IV— I1,對(duì)于KjS n,給定明文分組Xj ;②對(duì)于2彡j彡n,Oj^1 — Ij ;③對(duì)于I彡j彡n,CIPHk(Ij) — Oj, Oj最左側(cè)的r比特一tj ;④對(duì)于I ( j彡n-1,—,導(dǎo)出r比特的密文分組Cj ;⑤對(duì)于最一個(gè)密文塊,^ = P MSB {On)。最后一個(gè)明文塊,可能是一個(gè)特殊的只含有u個(gè)比特的塊,因此最后一個(gè)輸出塊中的u比特跟此明文塊進(jìn)行加密操作,余下的r-u比特將被丟棄。所述對(duì)視頻數(shù)據(jù)進(jìn)行加密是根據(jù)幀的類型對(duì)數(shù)據(jù)進(jìn)行不同的加密處理;選擇編碼后的I幀中的8X8塊直流差分系數(shù),以及P幀、B幀宏塊中塊間塊的直流差分系數(shù)作為視頻加密的對(duì)象,即對(duì)經(jīng)過(guò)整數(shù)變換、量化后得到的位于對(duì)角線左上角、且集中大部分能量的直流系數(shù),也即編碼后的亮度/色度的殘差數(shù)據(jù)進(jìn)行加密。解密過(guò)程也需要根據(jù)幀的類型進(jìn)行不同處理;其中,對(duì)于I幀,使用AES算法份OFB模式對(duì)加密后的I幀中8X8塊的直流差分系數(shù)進(jìn)行解密處理;對(duì)于P幀和B幀,對(duì)加密后宏塊中的幀間塊的直流差分系數(shù)分別進(jìn)行解密處理,通過(guò)輸入的密文及密鑰并通過(guò)密鑰擴(kuò)展獲取各輪密鑰,與擴(kuò)展密鑰進(jìn)行輪密鑰加變換,并進(jìn)行相應(yīng)的重復(fù)輪,重復(fù)的解密輪包括逆行變換、逆S盒變換、輪密鑰加變換以及逆列變換;最后一個(gè)解密輪的順序?yàn)槟嫘凶儞Q、逆S盒變換、輪密鑰加變換;OFB模式的解密過(guò)程為IV— I1,對(duì)于I ( j彡n,對(duì)接收到的密文Cj進(jìn)行計(jì)算對(duì)于2彡j彡n,O” — Ij ;③對(duì)于I彡j彡n,CIPHk(Ij) — Oj, Oj最左側(cè)的r比特一t」; 對(duì)于I < j <4 5,得到χ」?、輰?duì)于最一個(gè)明文塊,if = 十MSzVv(。最后一個(gè)密文塊,可能是一個(gè)特殊的只含有u個(gè)比特的塊,因此最后一個(gè)輸出塊中的u比特和這個(gè)密文塊進(jìn)行解密操作,余下的r-u比特將被丟棄。所述的編碼加密算法是運(yùn)行在嵌入式系統(tǒng)S3C6410平臺(tái)上,并采用通用的視頻壓縮編碼軟件框架FFMpeg+x264作為本系統(tǒng)的軟件平臺(tái)。有益效果采用AES的OFB模式對(duì)部分重要數(shù)據(jù)在H. 264編碼過(guò)程中進(jìn)行加密處理能夠減少加密處理的數(shù)據(jù)量,滿足實(shí)時(shí)性的要求,同時(shí)又能夠保證視頻數(shù)據(jù)的安全性,此外OFB模式還能夠抵制密文比特錯(cuò)誤而帶來(lái)的錯(cuò)誤傳播。
圖IH. 264編碼標(biāo)準(zhǔn)的整體框架,圖2 AES加密算法的加解密流程圖,圖3 AES OFB模式加解密流程圖,
圖4混合編碼加密算法流程圖,圖5 S3C6410接口分布示意圖,圖6 ffmpeg編碼原理流程圖。
具體實(shí)施例方式視頻加密的過(guò)程既需要保證視頻傳輸?shù)陌踩?,同時(shí)也要兼顧到獲取視頻數(shù)據(jù)的實(shí)時(shí)性和信道變化導(dǎo)致密文比特錯(cuò)誤而帶來(lái)的錯(cuò)誤傳播現(xiàn)象,本發(fā)明針對(duì)主流的視頻壓縮編碼標(biāo)準(zhǔn)H. 264的特點(diǎn)及無(wú)線網(wǎng)絡(luò)應(yīng)用的要求,提出一種采用AES (高級(jí)加密標(biāo)準(zhǔn))的OFB(輸出反饋)模式對(duì)H. 264編碼數(shù)據(jù)中的部分重要數(shù)據(jù)進(jìn)行加密的實(shí)現(xiàn)方法。通過(guò)對(duì)現(xiàn)有的視頻加密及當(dāng)前視頻數(shù)據(jù)應(yīng)用環(huán)境的性能要求進(jìn)行分析和比較,可以得出以下結(jié)論 I)當(dāng)前視頻應(yīng)用對(duì)實(shí)時(shí)性的要求越來(lái)越高隨著計(jì)算機(jī)技術(shù)和移動(dòng)技術(shù)的快速發(fā)展,智能業(yè)務(wù)的應(yīng)用越來(lái)越廣泛,對(duì)一些視頻應(yīng)用的實(shí)時(shí)性要求也越來(lái)越高,如視頻會(huì)議,網(wǎng)絡(luò)視頻等。若仍然采用以前較安全的加密算法(比如完全加密算法)在整個(gè)視頻編碼完成后進(jìn)行數(shù)據(jù)加密,則計(jì)算復(fù)雜、處理時(shí)間長(zhǎng)的特性不能滿足當(dāng)下對(duì)實(shí)時(shí)性的要求。因此,這種繁瑣的加密的方法不可取,而只能選擇少部分比較重要的視頻數(shù)據(jù)進(jìn)行加密。視頻數(shù)據(jù)間具有相關(guān)性,加密了部分重要數(shù)據(jù)后具有相關(guān)性的數(shù)據(jù)也就不易破解,起到保護(hù)的作用,這樣就能夠達(dá)到了既滿足視頻傳輸實(shí)時(shí)性的要求,同時(shí)又保證視頻數(shù)據(jù)安全性的目的。2)視頻圖像能量集中在少部分?jǐn)?shù)據(jù)上由于圖像中無(wú)論是在色度還是亮度上相鄰像素間的變化都不會(huì)特別大,只有少部分的像素會(huì)出現(xiàn)突變,所以這個(gè)圖像塊在經(jīng)過(guò)整數(shù)變換、量化后得到的系數(shù)能量大部分集中在對(duì)角線上。把圖像塊從時(shí)域變換到頻域后,圖像的能量大部分集中在低頻部分,即低頻系數(shù)包含了圖像的重要信息系數(shù)矩陣對(duì)角線的左上角包含了圖像的大部分信息,這部分系數(shù)在圖像變換中的地位至關(guān)重要;而頻域中高頻區(qū)域的少部分系數(shù)包含了圖像較少的能量,對(duì)圖像清晰度的影響也較小。由于像素間強(qiáng)烈的相關(guān)性,越是遠(yuǎn)離DC系數(shù)的數(shù)據(jù)包含的能量就越少,因此較高頻率的系數(shù)基本上趨于零或等于O。3)選取最少的加密數(shù)據(jù)達(dá)到最高的效果在H. 264編碼標(biāo)準(zhǔn)中,I幀是獨(dú)立編碼的,而P幀和B幀的編解碼都依賴于相應(yīng)的I塊。若只對(duì)I幀進(jìn)行加密,因視頻數(shù)據(jù)的相關(guān)性,特別是沒(méi)有對(duì)那些P/B幀的I塊進(jìn)行加密,使得加密后的視頻還能夠看到視頻內(nèi)容,只是稍有些模糊。若結(jié)合第2點(diǎn)的分析,直接對(duì)DC系數(shù)進(jìn)行加密的話,也能達(dá)到滿意的加密效果,但是在數(shù)據(jù)壓縮性能上的效果略顯不足。此外,在H. 264中進(jìn)行熵編碼的數(shù)據(jù)是亮度/色度的殘差數(shù)據(jù),且這些殘差數(shù)據(jù)經(jīng)過(guò)了預(yù)測(cè)變換、量化操作。鑒于以上原因,本發(fā)明選擇了編碼后的I幀(幀內(nèi)編碼模式)中的DC差分系數(shù)和P幀(幀間預(yù)測(cè)編碼模式)、B幀(幀間雙向預(yù)測(cè)編碼模式)中的I塊DC差分系數(shù)作為視頻加密的對(duì)象。這樣做既能保證需要加密的數(shù)據(jù)盡量少,又能夠保護(hù)視頻數(shù)據(jù),保證較好的安全性能。4) OFB加密模式的優(yōu)越性AES數(shù)據(jù)加密標(biāo)準(zhǔn)要求需要加密的數(shù)據(jù)必須是分組的整數(shù)倍,也就是說(shuō),如果數(shù)據(jù)長(zhǎng)度不是分組的整數(shù)倍,必須進(jìn)行消息填充,這就使得需要加密的數(shù)據(jù)比實(shí)際數(shù)據(jù)多,增加了編解碼的時(shí)延。而AES加密算法的OFB模式?jīng)]有此要求,這種加密方式具有流密碼特性,不需要對(duì)消息數(shù)據(jù)進(jìn)行填充,能夠?qū)崟r(shí)運(yùn)行,從而能夠減小系統(tǒng)開(kāi)銷。并且,OFB的反饋是由本地移位寄存器產(chǎn)生的,密文中如果某塊有一位發(fā)生了錯(cuò)誤,不會(huì)影響IV即造成錯(cuò)誤傳播,因此使用AES加密算法的OFB模式對(duì)上述部分碼流進(jìn)行加密,能夠在一定程度上抵御由于接收到的密文發(fā)生錯(cuò)誤而產(chǎn)生的錯(cuò)誤傳播。AES加密包含很多輪的重復(fù)和變換,大致步驟如下密鑰擴(kuò)展(KeyExpansion)Jr始輪(Initial Round),重復(fù)輪(Rounds),最終輪(FinalRound)。重復(fù)的每一輪又包括字節(jié)變換(SubBytes)、行移動(dòng)(ShiftRows)、列混合(MixCoIumns)、輪密鑰加(AddRoundKey),但最終輪中是不包含列混合(MixColumns)的。AES OFB模式的加密過(guò)程為①IV— I1,對(duì)于I彡j彡n,給定明文分組Xj對(duì)于2彡j彡n,CV1 — Ij ;③對(duì)于I彡j彡n,CIPHk(Ij) — Oj, Oj最左側(cè)的r比特一tj ;④對(duì)于— 導(dǎo)出r比特的密文分組Cj ;⑤對(duì)于最一個(gè)密文塊, C = Pl MSBu{0)。最后一個(gè)明文塊,可能是一個(gè)特殊的只含有u個(gè)比特的塊,所以最后一個(gè)輸出塊中的u比特跟此明文塊進(jìn)行加密操作,而剩下來(lái)的r-u比特將被丟棄。AES加密算法的解密過(guò)程為首先獲取輸入的明文及密鑰并通過(guò)密鑰擴(kuò)展獲取各輪密鑰,與擴(kuò)展密鑰進(jìn)行輪密鑰加變換,之后進(jìn)行一系列的重復(fù)輪。重復(fù)的解密輪包括逆行變換、逆S盒變換、輪密鑰加變換以及逆列變換;最后一個(gè)解密輪的順序?yàn)槟嫘凶儞Q、逆S盒變換、輪密鑰加變換。AES OFB模式的解密過(guò)程為IV — I1,對(duì)于I彡j彡η,對(duì)接收到的Cj進(jìn)行計(jì)算;(D對(duì)于2彡j彡n,O” — Ij ;③對(duì)于I彡j彡n,CIPHk(Ij) — Oj, Oj最左側(cè)的r比特一t」; 對(duì)于I彡j彡n-1, Cj tj -Ty,得到Xj !⑤對(duì)于最一個(gè)明文塊,< = MSBn{()^。最后一個(gè)密文塊,可能是一個(gè)特殊的只含有U個(gè)比特的塊,所以最后一個(gè)輸出塊中的U比特和這個(gè)密文塊進(jìn)行解密操作,而輸出塊中多余的r-u比特就被丟棄了。本發(fā)明的一種基于H. 264的混合編碼加密實(shí)現(xiàn)方法在軟件流程上步驟為 (I)讀取視頻幀,進(jìn)行編碼H. 264采用的是基于4X4子塊為單位的變換,同樣在高精度擴(kuò)展中采用整數(shù)8X8變換,然后對(duì)每個(gè)塊分別進(jìn)行預(yù)測(cè),經(jīng)過(guò)整數(shù)變換、量化后得到將被加密傳輸?shù)拿魑臄?shù)據(jù)。(2)獲取加密對(duì)象對(duì)圖像塊進(jìn)行編碼、量化后,得到DC和AC系數(shù),DC系數(shù)包含的是圖像的大致信息,而AC系數(shù)包含的是圖像的細(xì)節(jié)信息。H. 264中進(jìn)行熵編碼的是經(jīng)過(guò)預(yù)測(cè)后的殘差數(shù)據(jù),選擇I幀(幀內(nèi)編碼模式)中的DC差分系數(shù)和P幀(幀間預(yù)測(cè)編碼模式)、B幀(幀間雙向預(yù)測(cè)編碼模式)中的I塊DC差分系數(shù)作為視頻加密的對(duì)象。(3)根據(jù)幀的類型進(jìn)行加密處理得到將要加密的明文后,編碼過(guò)程中需要判斷即將加密的是哪種類型的幀。如果是I幀,對(duì)8 X 8塊的DC差分系數(shù)使用AES加密算法的OFB模式進(jìn)行加密;如果是P幀或者B幀,對(duì)宏塊中Intra塊的DC差分系數(shù)使用AES加密算法的OFB模式進(jìn)行加密;加密之后進(jìn)行Zig-zag掃描。AES OFB模式的加密過(guò)程為①IV— I1,對(duì)于KjS n,給定明文分組Xj對(duì)于2彡j彡n,CV1 — Ij ;③對(duì)于I彡j彡n,CIPHk(Ij) — Oj, Oj最左側(cè)的r比特一tj ;④對(duì)于— 導(dǎo)出r比特的密文分組Cj ;⑤對(duì)于最一個(gè)密文塊,< =P MSBtXOn)。最后一個(gè)明文塊,可能是一個(gè)特殊的只含有u個(gè)比特的塊,所以最后一個(gè)輸出塊中的u比特跟此明文塊進(jìn)行加密操作,而剩下來(lái)的r-u比特將被丟棄。本發(fā)明的一種基于H. 264的混合編碼加密實(shí)現(xiàn)方法解密流程為(I)接收端接收的數(shù)據(jù)判斷幀的類型,如果是I幀,使用AES算法份OFB模式對(duì)加密后的I幀中8X8塊的DC差分系數(shù)進(jìn)行解密處理;如果是P幀或者B幀,對(duì)加密后的宏塊中Intra塊的DC差分系數(shù)進(jìn)行解密處理。(2)對(duì)解密后的數(shù)據(jù)進(jìn)行H. 264解碼處理,主要步驟為CAVLC/CABAC解碼,逆變換,動(dòng)態(tài)補(bǔ)償,去方塊濾波。 AES OFB模式的解密過(guò)程為IV — I1,對(duì)于I彡j彡η,對(duì)接收到的Cj進(jìn)行計(jì)算;(D對(duì)于2彡j彡n,O” — Ij ;③對(duì)于I彡j彡n,CIPHk(Ij) — Oj, Oj最左側(cè)的r比特一t」; ·對(duì)于I < j < n-1, Cj tj xj,得到χ」?、輰?duì)于最一個(gè)明文塊,< =< MSBhKPk)。最后一個(gè)密文塊,可能是一個(gè)特殊的只含有u個(gè)比特的塊,所以最后一個(gè)輸出塊中的u比特和這個(gè)密文塊進(jìn)行解密操作,而輸出塊中多余的r-u比特就被丟棄了。在S3C6410嵌入式平臺(tái)上實(shí)現(xiàn)混合編碼加密算法具體實(shí)施方式
中采用S3C6410平臺(tái),128M字節(jié)的DDR內(nèi)存空間以及IG字節(jié)大小的NANDFLASH閃存空間,另外還保留了 256K N0RFLASH,這為應(yīng)用研發(fā)提供了足夠的擴(kuò)展空間。用于采集視頻數(shù)據(jù)的攝像頭是WEBEYE V2000,內(nèi)部處理芯片為美國(guó)Omnivision公司0V7620采集芯片和0V511處理芯片。其中0V7620是將采集到的彩色CMOS圖像轉(zhuǎn)換成640X480的圖像陣列的芯片,它的速率能夠達(dá)到30幀/s。0V511主要功能是對(duì)傳送過(guò)來(lái)的多種格式的圖像進(jìn)行處理。Linux給視頻類設(shè)備提供了一套標(biāo)準(zhǔn)的API (應(yīng)用編程接口),即V4L2進(jìn)行打開(kāi)和關(guān)閉、采集并處理視頻圖像信息等操作,處理過(guò)程如下I)打開(kāi)視頻采集設(shè)備$以13_€(1=(^611(8以13_(16¥;^6,0_1 110以可讀寫的方式打開(kāi)視頻設(shè)備/dev/videoO,并將打開(kāi)后設(shè)備的描述符值賦給grab_fd。2)獲取視頻設(shè)備相關(guān)屬性執(zhí)行ioctl (grab_fd, VIDIOCGCAP,&grab_cap)函數(shù)讀取結(jié)構(gòu)體video_capability中有關(guān)攝像頭的信息。3)定義采集圖像格式調(diào)用傳遞命令參數(shù)為VIDE0_S_FMT的ioctl函數(shù)對(duì)需要采集的視頻圖像的屬性進(jìn)行定義,包括其大小及格式。4)內(nèi)存映射調(diào)用帶VIDI0C_REQBUFS命令參數(shù)的ioctl函數(shù)分配緩存數(shù)量,分配用戶內(nèi)存后使用for循環(huán)依次對(duì)各個(gè)緩存進(jìn)行映射,再通過(guò)-ap O函數(shù)對(duì)分配的緩存與用戶內(nèi)存間建立映射關(guān)系。5)視頻的采集當(dāng)應(yīng)用程序獲得“采集”命令開(kāi)始通過(guò)攝像頭采集所需的視頻數(shù)據(jù)時(shí),內(nèi)核就會(huì)執(zhí)行ioctl函數(shù),如果該函數(shù)的IOCTL控制字匹配到“VIDI0C_STREAM0N”則開(kāi)始調(diào)用4中的緩存進(jìn)行圖像數(shù)據(jù)的采集存放。選用FFMpeg+x264作為本系統(tǒng)的軟件編解碼器,并移植到S3C6410平臺(tái)上。I)對(duì)ffmpeg根目錄下的configure文件進(jìn)行配置修改,包括定義安裝路徑,根據(jù)需要選擇工具庫(kù),定義開(kāi)發(fā)板的相應(yīng)信息等。A. ^installation paths
Prefix—default="/usr/local/ffmpeg-5-arm"B. #toolchainar=Vopt/arm_2008q3/bin/arm-none-linux-gnueabi-ar"cc—default=〃/opt/arm-2008q3/bin/arm-none_linux-gnueabi-gcc〃host—cc—default="gcc"In—s="ln_sf " nm—default=〃/opt/arm-2008q3/bin/arm-none-linux-gnueabi_nm〃ob jformat="elf " raniib=〃/opt/arm_2008q3/bin/arm-none-linux-gnueabi-ranlib〃Strip=V opt/arm_2008q3/bin/arm-none-l inux-gnueabi-strip"yasmexe=〃yasm〃C. #machine#arch=' uname-m'#cpu="armv412"2)通過(guò)執(zhí)行命令· /configure—enable-gpl—enable-shared—enable~x264—cc=arm-l inux-gcc—disable-strip 來(lái)完成配置工作。3)編譯安裝 ffmpeg$make&$make instal I在定義的安裝路徑中會(huì)生成FFmpeg、FFserverΛ libavcodec. so、libavformat. so與libutil. so文件,這些可執(zhí)行命令程序和動(dòng)態(tài)鏈接庫(kù)文件均可以在ARM平臺(tái)上運(yùn)行調(diào)用。此外,為了能夠順利的調(diào)用到庫(kù)文件,在移植結(jié)束后還需要在系統(tǒng)中添加庫(kù)環(huán)境變量,執(zhí)行export LD—LIBRARY—PATH=$LD—LIBRARY—PATH:/Directory4)調(diào)試ffmpeg是否能夠正常工作執(zhí)行·/ffmpeg-f video41inux2_s 352x288~r 20~i/dev/videoO/tmp/test, yuv通過(guò)Video4Linux2驅(qū)動(dòng)接口,從攝像頭設(shè)備為/dev/videoO釆集CIF格式(352 X 288)的視頻,釆集的速率為20巾貞/s,并將視頻保存為/tmp/test, yuv中。對(duì)x264-snapshot-20090301_2245· tar 代碼包,對(duì)根目錄下的 configure 文件做配置修改prefix="/usr/local/x264"cross—prefix=〃/opt/arm-2008q3/bin/arm-none_linux-gnueabi-〃修改完后依次執(zhí)行操作進(jìn)行配置安裝. /configure—enable-sharedmakemake install執(zhí)行命令./ffmpeg-fvideo41inux2-s 352x288~r 20_i test, avi-vcodecx264test. 264可直接調(diào)用x264編碼。調(diào)用C庫(kù)編寫的AES加密算法的OFB模式函數(shù)接口,實(shí)現(xiàn)在編碼過(guò)程中對(duì)相關(guān)系數(shù)進(jìn)行加密處理。
權(quán)利要求
1.一種面向視頻流的混合編碼加密方法,其特征在于該方法將加密算法嵌入在標(biāo)準(zhǔn)的圖像壓縮編碼方法H. 264中,加密與編碼同時(shí)進(jìn)行,且僅加密部分低頻數(shù)據(jù),以滿足視頻流實(shí)時(shí)傳輸?shù)囊螅辉摲椒ㄖ?,首先?duì)視頻流按照H. 264編碼方式進(jìn)行幀內(nèi)和幀間預(yù)測(cè)編碼,然后對(duì)編碼產(chǎn)生的部分低頻數(shù)據(jù)進(jìn)行加密,最終獲得加密的編碼數(shù)據(jù),整個(gè)加解密算法運(yùn)行在嵌入式系統(tǒng)上; 其具體方法為 1)將加密算法嵌入在H.264編碼模塊中; 2)加密算法采用一種高級(jí)加密方式AES的輸出反饋模式; 3)待加密的低頻數(shù)據(jù)為編碼后的起始幀中的直流差分系數(shù),以及幀間預(yù)測(cè)幀、幀間雙向預(yù)測(cè)幀中的預(yù)測(cè)塊的直流差分系數(shù);其中,起始幀為I幀,幀間預(yù)測(cè)幀為P幀,幀間雙向預(yù)測(cè)幀為B幀; 解密即為加密的逆過(guò)程,具體如下 4)視頻流解碼時(shí),按照幀的類型即I幀、P幀、B幀的不同,分別進(jìn)行解密。
2.根據(jù)權(quán)利要求I所述的面向視頻流的混合編碼加密方法,其特征在于基于H.264的混合編碼加密實(shí)現(xiàn)方法,采用的加密方法為AES加密算法的輸出反饋模式OFB模式;AES明文數(shù)據(jù)塊和密鑰長(zhǎng)度設(shè)定為128bit比特、192比特、256比特中得任意一個(gè),令Nk= (4,6,8)表示三種密鑰的長(zhǎng)度,則AES作為密鑰的比特流長(zhǎng)度為32XNk(Nk=(4,6,8));令Nb= (4,6,8)表示三種分組塊的長(zhǎng)度,即長(zhǎng)為32XNb (Nb= (4, 6,8))的明文數(shù)據(jù)可進(jìn)行加密,得到的密文長(zhǎng)度仍然為32XNb ;AES加密過(guò)程中重復(fù)輪的數(shù)目用隊(duì)表示,隊(duì)=10,12,14為分別采用三種長(zhǎng)度密鑰運(yùn)算時(shí)的重復(fù)輪數(shù); 定義輸入有k比特的密鑰K,η比特的初始向量IV以及r比特的明文分組塊X1……xu(l彡r彡η),產(chǎn)生r比特密文數(shù)據(jù)塊C1……Cu 是第j個(gè)輸入塊,Oj是第j個(gè)輸出塊,CIPHk(X)為密鑰K對(duì)數(shù)據(jù)塊X進(jìn)行加密的前向加密函數(shù); AES加密算法需包含多輪重復(fù)和變換,即密鑰擴(kuò)展、初始輪、重復(fù)輪、最終輪;重復(fù)的每一輪又包括字節(jié)變換、行移動(dòng)、列混合、輪密鑰加,然而最終輪中不包含列混合; OFB模式的加密過(guò)程為①IV — I1,對(duì)于I彡j彡n,給定明文分組Xj ;②對(duì)于2彡j彡n,Oj^1 — Ij ;③對(duì)于KjS n, CIPHk(Ij) — OjjOj最左側(cè)的r比特一t」;④對(duì)于I彡j彡n_l,xj rj — cj *導(dǎo)出r比特的密文分組Cj ;⑤對(duì)于最一個(gè)密文塊QMSWv(On)。最后一個(gè)明文塊,可能是一個(gè)特殊的只含有u個(gè)比特的塊,因此最后一個(gè)輸出塊中的u比特跟此明文塊進(jìn)行加密操作,余下的r-u比特將被丟棄。
3.根據(jù)權(quán)利要求I所述的面向視頻流的混合編碼加密方法,其特征在于所述對(duì)視頻數(shù)據(jù)進(jìn)行加密是根據(jù)幀的類型對(duì)數(shù)據(jù)進(jìn)行不同的加密處理;選擇編碼后的I幀中的8 X 8塊直流差分系數(shù),以及P幀、B幀宏塊中塊間塊的直流差分系數(shù)作為視頻加密的對(duì)象,即對(duì)經(jīng)過(guò)整數(shù)變換、量化后得到的位于對(duì)角線左上角、且集中大部分能量的直流系數(shù),也即編碼后的亮度/色度的殘差數(shù)據(jù)進(jìn)行加密。
4.根據(jù)權(quán)利要求I所述的面向視頻流的混合編碼加密方法,其特征在于解密過(guò)程也需要根據(jù)幀的類型進(jìn)行不同處理;其中,對(duì)于I幀,使用AES算法份OFB模式對(duì)加密后的I幀中8X8塊的直流差分系數(shù)進(jìn)行解密處理;對(duì)于P幀和B幀,對(duì)加密后宏塊中的幀間塊的直流差分系數(shù)分別進(jìn)行解密處理,通過(guò)輸入的密文及密鑰并通過(guò)密鑰擴(kuò)展獲取各輪密鑰,與擴(kuò)展密鑰進(jìn)行輪密鑰加變換,并進(jìn)行相應(yīng)的重復(fù)輪,重復(fù)的解密輪包括逆行變換、逆S盒變換、輪密鑰加變換以及逆列變換;最后一個(gè)解密輪的順序?yàn)槟嫘凶儞Q、逆S盒變換、輪密鑰加變換; OFB模式的解密過(guò)程為IV — I1,對(duì)于n,對(duì)接收到的密文&進(jìn)行計(jì)算;②對(duì)于2彡j彡η,O” — Ij ;③對(duì)于I彡j彡n,CIPHk(Ij) — Oj, Oj最左側(cè)的r比特一t」;④對(duì)于I < j < η-1,— xJ,得到Xj逾對(duì)于最一個(gè)明文塊,< =十MSBh{()‘;、。最后一個(gè)密文塊,可能是一個(gè)特殊的只含有u個(gè)比特的塊,因此最后一個(gè)輸出塊中的u比特和這個(gè)密文塊進(jìn)行解密操作,余下的r-u比特將被丟棄。
5.根據(jù)權(quán)利要求I所述的面向視頻流的混合編碼加密方法,其特征在于所述的編碼加密算法是運(yùn)行在嵌入式系統(tǒng)S3C6410平臺(tái)上,并采用通用的視頻壓縮編碼軟件框架FFMpeg+x264作為本系統(tǒng)的軟件平臺(tái)。
全文摘要
本發(fā)明是一種對(duì)視頻數(shù)據(jù)進(jìn)行混合編碼加密的方法,該方法將加密算法嵌入在標(biāo)準(zhǔn)的圖像壓縮編碼方法H.264中,加密與編碼同時(shí)進(jìn)行,且僅加密部分低頻數(shù)據(jù),以滿足視頻流實(shí)時(shí)傳輸?shù)囊?;該方法中,首先?duì)視頻流按照H.264編碼方式進(jìn)行幀內(nèi)和幀間預(yù)測(cè)編碼,然后對(duì)編碼產(chǎn)生的部分低頻數(shù)據(jù)進(jìn)行加密,最終獲得加密的編碼數(shù)據(jù),整個(gè)加解密算法運(yùn)行在嵌入式系統(tǒng)上;其作用是在視頻數(shù)據(jù)的采集應(yīng)用中保證數(shù)據(jù)安全性的同時(shí)滿足實(shí)時(shí)性的要求。采用AES的OFB模式對(duì)部分重要數(shù)據(jù)在H.264編碼過(guò)程中進(jìn)行加密處理能夠減少加密處理的數(shù)據(jù)量,滿足實(shí)時(shí)性的要求,同時(shí)又能夠保證視頻數(shù)據(jù)的安全性,此外OFB模式還能夠抵制密文比特錯(cuò)誤而帶來(lái)的錯(cuò)誤傳播。
文檔編號(hào)H04N7/50GK102905133SQ20121039104
公開(kāi)日2013年1月30日 申請(qǐng)日期2012年10月15日 優(yōu)先權(quán)日2012年10月15日
發(fā)明者吳蒙, 張春梅, 梅玨潔 申請(qǐng)人:南京郵電大學(xué)