一種視頻加密方法
2023-05-28 10:35:16
一種視頻加密方法
【專利摘要】本發明涉及一種視頻加密方法,所述方法採用雙線程,一個線程用於產生另一個線程所需的批量密鑰,另一個線程對前一個線程產生的批量密鑰,對P幀的I塊、B幀的I塊以及I幀進行多密鑰加密;均採用如下方法進行加密,包括:(1)將加密明文分隔成多個模塊;(2)將模塊分為奇數塊和偶數塊;(3)將奇數塊分為奇數塊奇數隊列明文Odd和奇數塊偶數隊列明文Even;(4)獲取奇數塊奇數隊列明文的左半部分密文Eleft和奇數塊奇數隊列的右半部分密文Eright;(5)合併奇數塊奇數隊列明文的左半部分密文Eleft和奇數塊奇數隊列的右半部分密文Eright得到密文奇數塊EOdd;(6)將偶數塊和密文奇數塊EOdd按位異或得到密文偶數塊EEven;(7)密文奇數塊EOdd和密文偶數塊EEven即為加密後的密文。
【專利說明】一種視頻加密方法
【技術領域】
[0001]本發明屬於加密技術,具體講涉及一種視頻加密方法。
【背景技術】
[0002]會議視頻傳輸為多媒體信息傳輸業務的重要部分,技術日趨成熟,已成為人們進行政治、商務、文化交往的重要工具。其方便快捷的通訊方式,大大降低了會議成本,節省時間以及提聞辦事效率。
[0003]網絡的共享特點決定了信道的不安全性,如非授權用戶惡意監聽、傳輸信號丟包、網絡病毒攻擊造成會議中斷等,這些問題使得視頻流保密性、可靠性、穩定性受到了嚴重考驗。此外,會議視頻的特點是隨著與會人數的增加,視頻流量會成平方級的增長。
[0004]如何針對H.264格式的視頻,設計滿足會議視頻這種大流量、高實時性需求的加密算法是多媒體安全領域的一項重要的內容,具有很高的學術研究價值和廣泛的應用前景。
[0005]目前,根據加密算法與壓縮編碼過程關係的不同,可以將算法分成完全加密算法、選擇性加密算法、以及將加密過程和編碼過程相結合的加密算法。
[0006]如圖1所示,完全加密算法即是對整個傳輸的視頻流,不考慮任何視頻數據的特性,根據各種加密算法實現,加密過程和壓縮編碼過程完全獨立,但是其缺點是加密複雜度過大。
[0007]因此Qiao 和 Nahrstedt (Qiao L, Nahrstedt K.)在 1997 年提出一種稱作 VEA(Video Encryption Algorithm)的視頻加密算法,儘管是將視頻數據當作二進位流進行直接加密,但是它將加密複雜度降為接近原來的一半,同時保持了較高的安全性。Tosun和Feng (Tosum AS,馮W C.輕量級無線視頻傳輸安全機制研究)在此基礎上將算法作了改進,使計算複雜度又降低近一半,並用於無線多媒體傳輸網絡中。其它典型的直接加密算法有Romeo等提出的稱作RPK的視頻加密方法以及Wee和Apostolo-Poulos提出的適用於流格式視頻數據的分層加密方法。此外,還有諸如混沌加密算法,它採用斜帳篷映射、Logistic映射、映射等3種混沌映射構造混沌整數序列產生器,並將產生的序列與視頻數據做異或運算,產生的結果即為加密的密文。
[0008]即使在完全加密算法基礎上做了以上諸多改進,也無法適用會議視頻大流量、高實時的需求。
[0009]如圖2所示,選擇加密算法,也稱部分加密算法,它採用傳統加密算法如對稱密鑰,將視頻數據看成普通的二進位數據直接進行加密,而不考慮任何視頻數據的特性,加密過程和壓縮編碼過程完全獨立。
[0010]要保持加密後數據流的相容性,就要保持加密後數據格式信息和控制信息不變,而只加密實際數據,這類方法都屬於選擇性加密方法。Tang早在提出對DCT數據置亂的方法。Tosun等對其作了改進,但是Qiao等通過分析和實驗表明,採用隨機置亂方式代替「之」字型掃描,不但大大地降低了壓縮比,而且使得密碼系統不能抵抗已知明文攻擊。因此,不能夠單獨的使用此類算法來加密。此外,典型的選擇性加密還有加密DCT係數的符號和運動向量的符號、頻率域數據置亂和符號加密相結合等方法,分別有眾多學者對其進行研究。
[0011]除了直接加密算法和選擇性加密方法以外,具有壓縮編碼功能的加密算法也是近年來提得頗多的算法,它將編碼過程和加密過程相結合,使得二者同時進行。Wen等提出了使用定長編碼FLC和變長編碼VLC同時進行加密的方法。Wu和Kuo指出選擇性加密不能保持壓縮比不變,並提出了採用多種Huffman樹(MHT)的加密方法。作者指出,在使用熵編碼的視頻編碼格式中,可以採用多種熵編碼的統計模型,通過密鑰控制模型的選擇來實現視頻編碼過程中的加密。
[0012]數據加密時通信雙方需要進行密鑰協商,傳統的視頻傳輸一般是使用由視頻信息宿主向對方更換與分配密鑰來進行流加密,這對於單對單的傳輸是可行的,但是對於參與者眾多的視頻會議來說這樣的相互傳輸密鑰信息量會很大,雖然國內外都提出了很多種密鑰分配方法,但尚未形成統一的規範。
[0013]H.264在H.263以及MPEG1/2/4視頻編碼協議優點上進行改進,它保留運動補償和變換編碼等技術的同時引入了類DCT整數變換等一系列的新技術,這些新特性使H.264比以往的視頻壓縮標準具有更高的壓縮效率和更強的網絡友好性,但同時也增加了 a 264的編解碼複雜度,其在比MPEG-4提高約50 %壓縮效率的同時,增加了十幾倍的計算複雜度。而基於H.264的視頻會議更因由多方參與,數據傳輸量以及加解密和編解碼的時間隨參與人數的增加成線性倍數增加。因此為了滿足實時應用的要求,必須在其計算複雜度和編碼效率之間取一個折衷。
[0014]MPE的思想是通過選擇對於重建圖像較為重要的幀如I幀進行加密,然而,Agi和Gong表明由於幀間的相關性和P幀、B幀中有未加密的1-block,所以僅僅加密I幀不能達到一個令人滿意的密級。因此,Tang (Tang Le1.有效的MPEG視頻數據進行加密和解密方法研究)提出加密I幀的同時還應加密P幀的I塊和B幀中的I塊,但這樣又增大了計算量。對於會議視頻大流量、高實時的特性,大量的計算無法達到高實時的需求。
【發明內容】
[0015]針對現有技術的不足,本發明提供了一種視頻加密方法。本發明採用IDEA算法對視頻進行加密,只加密P幀的I塊、B幀的I塊以及I幀總數據量的四分之一。本發明對使用雙線程,一個線程用於產生另一個線程下次所需的批量密鑰,另一個線程對前一個線程產生的批量密鑰,對I幀進行多密鑰加密。實現一次批次密來提高安全性。
[0016]本發明的目的是採用下述技術方案實現的:
[0017]一種視頻加密方法,其改進之處在於,所述方法採用雙線程,一個線程用於產生另一個線程所需的批量密鑰,另一個線程對前一個線程產生的批量密鑰,對P幀的I塊、B幀的I塊以及I幀進行多密鑰加密;均採用如下方法進行加密,包括:
[0018](I)將加密明文分隔成多個模塊;
[0019](2)將模塊分為奇數塊和偶數塊;
[0020](3)將奇數塊分為奇數塊奇數隊列明文Odd和奇數塊偶數隊列明文Even ;
[0021](4)獲取奇數塊奇數隊列明文的左半部分密文Eleft和奇數塊奇數隊列的右半部分
密文EHght ;[0022](5)合併奇數塊奇數隊列明文的左半部分密文El6ft和奇數塊奇數隊列的右半部分密文EHght得到密文奇數塊EMd ;
[0023](6)將偶數塊和密文奇數塊EMd按位異或得到密文偶數塊EEvm ;
[0024](7)密文奇數塊EMd和密文偶數塊EEv6n即為加密後的密文。
[0025]優選的,所述雙線程一個線程根據另一個線程生成的批次密鑰,實現對當前的300幀圖像進行加密。
[0026]優選的,所述步驟(1)包括將加密P幀的I塊、B幀的I塊以及I幀的明文分別分隔成以128位為一個單元的模塊。[0027]優選的,所述步驟(3)將奇數塊分成奇數隊列明文0(1(1=&1&3&5-&127和偶數隊列明JC Even=a2a4a6*** a128。
[0028]優選的,所述步驟(4)包括對奇數塊奇數隊列明文Odd採用IDEA算法加密得到奇數塊奇數隊列明文的左半部分密文Eleft ;奇數塊奇數隊列的右半部分密文EHght為奇數塊偶數隊列明文Even和奇數塊奇數隊列明文Odd按位異或的結果,即Eright=Odd ? Even。
[0029]優選的,所述步驟(5)包括將奇數塊奇數隊列明文的左半部分密文El6ft和奇數塊奇數隊列的右半部分密文EHght合併成128位的密文奇數塊EMd。
[0030]與現有技術比,本發明的有益效果為:
[0031]1、本發明將整個加密的代價減少到原來P幀的I塊、B幀的I塊以及I幀總數據量的四分之一,同時維持了較高的安全性。
[0032]2、本發明在加密算法上,本發明不同於Tang提出的使用DES加密算法,而是使用IDEA算法,該算法被證明比DES更快速更安全。
[0033]3、本發明對最重要的I幀,採用線路時鐘同步機制,使用定時每次產生一批密鑰的思路對其進行加密。由於每次生成的批量密鑰與幀的加解密採用多線程,並不幹擾加解密過程,在沒提高算法的複雜度的前提下,大大提高安全性。
[0034]4、本發明即使部份密鑰被獲取,只要對圖像重建影響最大的I幀的所有密鑰沒有被完全破解,還是無法完全恢復圖像,從而使得安全性大大得到提高。
【專利附圖】
【附圖說明】
[0035]圖1為本發明提供的完全加密算法示意圖。
[0036]圖2為本發明提供的選擇加密算法示意圖。
[0037]圖3為本發明提供的一種視頻加密方法示意圖。
【具體實施方式】
[0038]下面結合附圖對本發明的【具體實施方式】作進一步的詳細說明。
[0039]本發明在加密P幀的I塊、B幀的I塊以及I幀時,利用Tosun和Feng改進算法的原理,將P幀的I塊、B幀的I塊以及I幀的明文如圖3所示:
[0040]分別分隔成以128位為一個單元的塊,然後將奇數塊分成奇數隊列明文0dd=a1a3a5---a127 和偶數隊列明文 Even=a2a4a6*「 a128 兩部分;
[0041]將奇數塊分成奇數隊列明文Odd採用IDEA算法加密得到奇數塊奇數隊列明文的左半部分密文Eleft ;同時另一半奇數塊奇數隊列的右半部分密文EHght為奇數塊偶數隊列明文Even和奇數塊奇數隊列明文Odd按位異或的結果,即Eright=Odd ? Even。
[0042]接著將奇數塊奇數隊列明文的左半部分密文Elrft和奇數塊奇數隊列的右半部分密文EHght合併成128位的密文奇數塊EQdd。
[0043]將相鄰的偶數塊和密文奇數塊EMd按位異或得到密文偶數塊EEvm,則EMd和Eevm即為加密後的密文。
[0044]這樣整個加密的代價就減少到原來P幀的I塊、B幀的I塊以及I幀總數據量的四分之一,同時維持了較高的安全性。本發明不同於Tang提出的使用DES加密算法,而是使用IDEA算法,該算法被證明比DES更快速更安全。
[0045]根據H.264視頻流的特點,將要加密的P幀的I塊、B幀的I塊以及I幀,分別使用不同的密鑰進行加密,對其中最重要的I幀,使用多個密鑰,輪流對數據塊進行加密。
[0046]本發明使用兩端同步的密鑰發生器來實現一次一密,結合對I幀使用多個密鑰進行加密的方式,創新性地提出採用一次生成一批次密的算法。考慮到每幀圖像使用了多個密鑰,而視頻每秒要發送的圖像多達30幀,這樣大大增加了密鑰發生器的負擔。因此將密鑰發生器產生密鑰的頻率減緩,比如隔300幀圖像更換一組密鑰。
[0047]兩端的密鑰發生器需要使用同步機制,一般採用在線路時鐘的作用下,加、解密設備通過特徵碼序列獲得相位的同步,從而保證密碼序列的同步。以每幀附加一組特徵碼序列(一個密鑰對應一個特徵碼,所以一組密鑰需要一組特徵碼)為代價,在連續的300幀圖像使用相同的一組特徵碼,從而實現連續300幀使用同一組密鑰。
[0048]使用偽代碼描述如下:
[0049]//全局變量
[0050]int timestamp=now ;//當前時間的時間戳,由線路時鐘控制
[0051]int key_i_total_num=10 ;//對I巾貞進行加密的密鑰個數,可調
[0052]long long key_i [] ;//加密I巾貞使用的密鑰組
[0053]線程一:為下一組幀生成批次密鑰,線程一和線程二有依賴關係,線程二使用的批次密鑰由線程一提前產生,在線程二使用產生的密鑰後,線程一繼續產生下一批密鑰
[0054]//為下一組幀生成一批密鑰
[0055]GenIKeys_ForNext(key_i[], timestamp, key_i_total_num);
[0056]線程二:根據線程一生成的批次密鑰,實現對當前的300幀圖像進行加密
[0057]//block[] [16]為以128位為單元的塊的數組,即要加密的數據塊數據
[0058]//此處Encode函數按圖2的加密方案實現
[0059]for(i=0 ;i<block_size ;i++)
[0060]{
[0061]if (block [i]為 P 中貞)
[0062]Encode (block [i],key_p, e_block[i]);
[0063]if (block [i]為 B 幀)
[0064]Encode (block [i],key_b, e_block[i]);
[0065]if (block [i]為 I 幀)
[0066]{
[0067]//此處對I幀使用10個密鑰[0068]key_i_cur=i%key_i_total_num ;// 第 i 個 I 幀要使用的密鑰
[0069]
【權利要求】
1.一種視頻加密方法,其特徵在於,所述方法採用雙線程,一個線程用於產生另一個線程所需的批量密鑰,另一個線程對前一個線程產生的批量密鑰,對P幀的I塊、B幀的I塊以及I幀進行多密鑰加密;均採用如下方法進行加密,包括: (1)將加密明文分隔成多個模塊; (2)將模塊分為奇數塊和偶數塊; (3)將奇數塊分為奇數塊奇數隊列明文Odd和奇數塊偶數隊列明文Even; (4)獲取奇數塊奇數隊列明文的左半部分密文Eleft和奇數塊奇數隊列的右半部分密文F ?j^right, (5)合併奇數塊奇數隊列明文的左半部分密文Eleft和奇數塊奇數隊列的右半部分密文Eright 得到密文奇數塊EMd ; (6)將偶數塊和密文奇數塊EMd按位異或得到密文偶數塊EEvm; (7)密文奇數塊EMd和密文偶數塊EEvm即為加密後的密文。
2.如權利要求1所述的一種視頻加密方法,其特徵在於,所述雙線程一個線程根據另一個線程生成的批次密鑰,實現對當前的300幀圖像進行加密。
3.如權利要求1所述的一種視頻加密方法,其特徵在於,所述步驟(1)包括將加密P幀的I塊、B幀的I塊以及I幀的明文分別分隔成以128位為一個單元的模塊。
4.如權利要求1所述的一種視頻加密方法,其特徵在於,所述步驟(3)將奇數塊分成奇數隊列明文0dd=a1a3a5---a127和偶數隊列明文Even=a2a4a6...a128。
5.如權利要求1所述的一種視頻加密方法,其特徵在於,所述步驟(4)包括對奇數塊奇數隊列明文Odd採用IDEA算法加密得到奇數塊奇數隊列明文的左半部分密文Eleft ;奇數塊奇數隊列的右半部分密文E&ht為奇數塊偶數隊列明文Even和奇數塊奇數隊列明文Odd按位異或的結果,即El4ght=Odd ? Even。
6.如權利要求1所述的一種視頻加密方法,其特徵在於,所述步驟(5)包括將奇數塊奇數隊列明文的左半部分密文El6ft和奇數塊奇數隊列的右半部分密文EHght合併成128位的密文奇數塊EMd。
【文檔編號】G06F9/46GK103607272SQ201310616629
【公開日】2014年2月26日 申請日期:2013年11月26日 優先權日:2013年11月26日
【發明者】謝瑩瑩, 郭慶, 耿慶民, 苗豔超, 劉新春, 邵宗有 申請人:曙光信息產業股份有限公司