本發明屬于數據安全技術領域,具體涉及一種基于網絡編碼的可分級視頻流加密方法。
背景技術:
可分級視頻編碼能有效適用于當前異構網絡中的視頻流高效傳輸業務,它能極大地滿足多種異構終端用戶的不同實時業務需求。優先編碼傳輸pet(priorityencodingtransmission)是實現可分級視頻流傳輸的一種非常重要的技術。在這類技術中,基于網絡編碼的pet已經被認為是一種更有效的無比率編碼方式。與傳統的pet不同,網絡編碼允許網絡中各中間節點傳輸前可對接收到的信息進行線性或非線性的組合變換,而基于網絡編碼的pet可以顯著提高在刪除信道傳輸的整體視頻質量。
雖然基于網絡編碼的pet能有效增強傳輸健壯性和可靠性,可以提供很好的信道適應性服務,但當下的應用中卻沒有解決其安全應用中一個潛在的可擴展性問題:根據終端用戶的不同訂閱等級,為其提供不同質量的視頻數據。這個問題的解決顯然需要開發具有低復雜度特性的多層級安全加密方案以保證不同訂閱級別的數據安全。
當前,視頻數據可擴展性機密性保護都是通過傳統的加密方式來實現,但是當數據流量大幅增加時,這種方式的安全性的擴展效率將非常低下。具體來說,這些解決方案都是通過隱藏關鍵視頻數據(如空域,dct系數)來降低編解碼的復雜度。然而,這種方法在加密算法選擇不合適的情況下,仍會給安全系統帶來與完全加密相當的計算開銷。其根本原因在于這類方案實現的安全強度難以量化,安全性能擴展性較差。當前,在網絡抽象層上進行分層加密方式在傳統網絡中被認為是很有效的,但它并不適合基于網絡編碼的pet。基于網絡編碼的可分級視頻流傳輸的安全性問題是當前應用中尚未解決的一個關鍵問題。
技術實現要素:
本發明的目的是提供一種基于網絡編碼的可分級視頻流加密方法,解決了現有可分級視頻流安全性差的問題。
本發明所采用的技術方案是:基于網絡編碼的可分級視頻流加密方法,具體按照以下步驟實施:
步驟1:信源為各數據層配置不同的保護密鑰,并且給第c層視頻質量的訂閱用戶接收端分發第1層至第c層的保護密鑰k1,k2,…,kc,其中1≤c≤l,其中l為數據層的總層數;
步驟2:信源視頻數據被分割編碼為一個圖像組gop序列,每個gop被分割為多個數據層,每層中空余位填充相應的冗余零數據塊;
步驟3:對于每個gop,信源利用步驟1中的保護密鑰生成各層編碼信息,分別對每個gop中各層進行安全編碼;
步驟4:信源將步驟3編碼后的gop數據包利用網絡編碼傳輸的方法發送到接收端;
步驟5:根據訂閱的視頻質量服務等級,接收端利用網絡編碼解碼規則對收到的gop數據包進行譯碼,盡可能多連續地恢復步驟4中封裝的從基礎層到訂閱質量層數據,進而執行逐層逆迭代和層隨機化逆操作來完成不同用戶訂購數據層的解密。
本發明的特點還在于:
步驟2中:
每個gop被編碼為l層,第1層為基礎層、其余l-1層為增強層;從第1層到第l層,各層數據的傳輸優先級逐層降低;
每個gop中第j層視頻數據量由rj表示,第j層視頻數據被分為lj塊,則每塊包含nj=rj/qlj個編碼域fq上的字符,除了lj個數據塊之外,第j層空余位需填充ll-lj個冗余零數據塊,其中,j=1,2,…,l;
每個gop中各層數據塊數量滿足l1<l2<...<ll且l1>1;
各層數據將根據傳輸優先等級從第1層至最高層第l層按列降序排列,組成初始編碼數據結構。
步驟3具體為:
步驟3.1:層塊部分隨機化:對于第i層,i依次取1,2,…,l,第i層的信源消息字符被分割編碼成li個數據塊,這些數據塊組成編碼域fq上維數為li×ni的矩陣mi,對該層的數據塊部分隨機化過程如下:
步驟3.1.1:利用第i層保護密鑰ki和隨機數生成器g1產生ti×ni個域fq上的隨機數,其中ti<li,構造維數為ti×ni的隨機矩陣hi和維數為li×ni的矩陣ni,其中ni的前ti行取自矩陣hi,后li-ti行元素均為零;
步驟3.1.2:計算數據隨機化結果di=mi+ni;
步驟3.2:逐層迭代編碼:從最高層到基礎層,按逆序進行迭代變換,依次對相鄰的兩個層進行域fq上的線性隨機組合,具體為:
步驟3.2.1:對最高層,利用第l層保護密鑰kl和隨機數生成器g2產生ll2個域fq上的非零隨機數,排列構造ll階滿秩矩陣rl,然后計算cl=rl·dl;
步驟3.2.2:對第i層,其中,i依次取l-1,l-2,…,1,信源利用第i層保護密鑰ki和隨機數生成器g2產生
步驟4具體為:
步驟4.1:信源將步驟3中經過編碼的各行數據分別添加包頭信息,并封裝成gop數據包;
步驟4.2:信源將封裝后的gop中的行數據添加包頭信息,將封裝后的數據包發送到通信信道中;網絡中的每個中間傳輸節點將收到的數據包儲存在接收緩存中;當一個發送時隙來臨時,中間結點將隨機組合緩存區中儲存的包,然后將結果轉發至下一個節點,直至這些數據包送達至接收端。
步驟5中對于訂購了第c層視頻質量且收到τ個線性獨立數據包的接收者,其數據包譯碼和解密情況如下:
a、τ<l1
當前gop中的數據包無法進行即時網絡解碼或者該gop將被跳過,除非在緩存數據超時前有包含新信息的基礎層的數據包進入緩存區;
b、lk-1≤τ<lk
①2≤k≤c:第1層到第k-1層的數據信息能被譯碼,進而可以執行逐層逆迭代和層隨機化的逆操作完成解密;
②c<k≤l:第1層到第k-1層的數據包可以被網絡譯碼,但由于用戶訂閱權限的限制,僅有第1層到第c層的數據信息可以執行逐層逆迭代和層隨機化逆操作,從而能被正確解密。
本發明的有益效果是:本發明基于網絡編碼的可分級視頻流加密方法首先在原始消息中引入了隨機變量,其次又實施了線性隨機變換,完成了原始消息的隨機化安全加密功能,可以合理有效地對安全編碼實現的安全強度進行度量或量化;本發明基于網絡編碼的可分級視頻流加密方法實現了安全性和分級傳輸兩方面的可伸縮編譯碼功能。這不僅保證了高優先級層的高安全強度和優先傳輸,而且實現了對低優先級層的可擴展性增量編譯碼;本發明基于網絡編碼的可分級視頻流加密方法,實現了不同安全需求的應用中數據保密度及視頻傳輸編譯碼的靈活性,計算復雜度小,加密效率高。
附圖說明
圖1是本發明可分級視頻流加密方法的流程圖;
圖2是本發明可分級視頻流加密方法中信源初始gop單元構造示例圖;
圖3是本發明可分級視頻流加密方法中層塊部分隨機化和逐層迭代編碼操作示意圖;
圖4是本發明可分級視頻流加密方法中針對不同的gop大小與傳統分組加密方法之間的加密運算量比較圖示。
具體實施方式
下面結合附圖和具體實施方式對本發明進行詳細說明。
本發明基于網絡編碼的可分級視頻流加密方法,如圖1所示,具體按照以下步驟實施:
步驟1:信源為各數據層配置不同的保護密鑰,并且給第c層視頻質量的訂閱用戶接收端分發第1層至第c層的保護密鑰k1,k2,…,kc,其中1≤c≤l,其中l為數據層的總層數;
步驟2:如圖2所示,信源視頻數據被分割編碼為一個圖像組gop(groupofpictures,圖像組)序列,每個gop被分割為多個數據層,每層中空余位填充相應的冗余零數據塊;圖2中以ld-ld-1=1為例,其中d=2,3,…,l;
每個gop被編碼為l層,第1層為基礎層、其余l-1層為增強層;從第1層到第l層,各層數據的傳輸優先級逐層降低;
每個gop中第j層視頻數據量由rj表示,第j層視頻數據被分為lj塊,則每塊包含nj=rj/qlj個編碼域fq上的字符,除了lj個數據塊之外,第j層空余位需填充ll-lj個冗余零數據塊,其中,j=1,2,…,l;
每個gop中各層數據塊數量滿足l1<l2<...<ll且l1>1;
各層數據將根據傳輸優先等級從第1層至最高層第l層按列降序排列,組成初始編碼數據結構。
步驟3:如圖3所示,對于每個gop,信源利用步驟1中的保護密鑰生成各層編碼信息,分別對每個gop中各層進行安全編碼,具體為:
步驟3.1:層塊部分隨機化:對于第i層,i依次取1,2,…,l,第i層的信源消息字符被分割編碼成li個數據塊,這些數據塊組成編碼域fq上維數為li×ni的矩陣mi,對該層的數據塊部分隨機化過程如下:
步驟3.1.1:利用第i層保護密鑰ki和隨機數生成器g1產生ti×ni個域fq上的隨機數,其中ti<li,構造維數為ti×ni的隨機矩陣hi和維數為li×ni的矩陣ni,其中ni的前ti行取自矩陣hi,后li-ti行元素均為零;
步驟3.1.2:計算數據隨機化結果di=mi+ni;
步驟3.2:逐層迭代編碼:從最高層到基礎層,按逆序進行迭代變換,依次對相鄰的兩個層進行域fq上的線性隨機組合,具體為:
步驟3.2.1:對最高層,利用第l層保護密鑰kl和隨機數生成器g2產生
步驟3.2.2:對第i層,其中,i依次取l-1,l-2,…,1,信源利用第i層保護密鑰ki和隨機數生成器g2產生
步驟4:如圖2所示,信源將步驟3編碼后的gop數據包利用網絡編碼傳輸的方法發送到接收端,具體為:
步驟4.1:如圖2所示,信源將步驟3中經過編碼的各行數據分別添加包頭信息,并封裝成gop數據包;
步驟4.2:信源將封裝后的gop中的行數據添加包頭信息,將封裝后的數據包發送到通信信道中;網絡中的每個中間傳輸節點將收到的數據包儲存在接收緩存中;當一個發送時隙來臨時,中間結點將隨機組合緩存區中儲存的包,然后將結果轉發至下一個節點,直至這些數據包送達至接收端。
步驟5:根據訂閱的視頻質量服務等級,接收端利用網絡編碼解碼規則對收到的gop數據包進行譯碼,盡可能多連續地恢復步驟4.1中封裝的從基礎層到訂閱質量層數據,進而執行逐層逆迭代和層隨機化逆操作來完成不同用戶訂購數據層的解密。
步驟5中對于訂購了第c層視頻質量且收到τ個線性獨立數據包的接收者,其數據包譯碼和解密情況如下:
a、τ<l1
當前gop中的數據包無法進行即時網絡解碼或者該gop將被跳過,除非在緩存數據超時前有包含新信息的基礎層的數據包進入緩存區;
b、lk-1≤τ<lk
①2≤k≤c:第1層到第k-1層的數據信息能被譯碼,進而可以執行逐層逆迭代和層隨機化的逆操作完成解密;
②c<k≤l:第1層到第k-1層的數據包可以被網絡譯碼,但由于用戶訂閱權限的限制,僅有第1層到第c層的數據信息可以執行逐層逆迭代和層隨機化逆操作,從而能被正確解密。
本發明的實際性能可以通過以下的實驗比較進一步說明:
實驗規定每一層的數據塊都有相同的大小,且lk+1-lk=5(k=1,2,...,l-1)。針對不同的gop大小,將本發明與傳統分組加密方法之間的加密運算量進行比較,如圖4所示。結果顯示,本發明顯著減少了gop中需要加密的數據量。當gop序列規模逐漸增大時,本發明具有顯著的性能優勢。