流媒體傳輸碼流的加密解密方法及模塊的製作方法
2023-09-23 02:06:30 2
專利名稱:流媒體傳輸碼流的加密解密方法及模塊的製作方法
技術領域:
本發明涉及一種傳輸媒體的保護,尤其涉及一種流媒體傳輸碼流的加密解密方法及模塊。
背景技術:
H.264是由聯合視頻組JVT制定的一套音視頻編碼國際標準,為了保護傳輸的媒體,特別是針對無線環境下的H.264視頻媒體的保護,通常的加密系統會在媒體發送方和媒體接收方之間約定密碼算法,媒體發送方秘密地選取一個密鑰用於加密媒體,並將加密的媒體傳輸給媒體接收方,同時採用安全的方式將密鑰告知媒體接收方,媒體接收方從而可以利用密鑰解密媒體。因此,密碼算法的設計與媒體的傳輸安全有密切關係。在無線網絡環境下,對於密碼算法通常有以下要求(1)安全性安全性是加密方案的核心要求。一方面加密方案應能給內容提供足夠的保護;另一方面,考慮面向商業的應用,其安全性所耗費的成本應控制在合理的範圍內。相對於傳統的數據,視頻信息的數據量大,數據間存在著較大的冗餘,這為破解內容提供了便利。特別的,很多的電影採用了固定片頭或者提前發布預告片剪輯,這意味著相應視頻明文可以被攻擊者知曉,因此,加密算法應能抵禦已知明文的攻擊(由一段明文數據和該明文數據段加密得到的密文數據段組成「明文—密文對」,利用「明文—密文對」對加密系統實施的攻擊稱之為已知明文的攻擊)。
(2)複雜度流媒體應用要求移動終端設備能實時地解密內容,而移動終端設備的計算處理能力是受限的,因此,視頻解密的複雜度不能太高。通常,複雜度與安全性是一對典型的矛盾,在實際設計加密系統時應考慮二者的折中。
(3)容錯性無線網絡中存在著大量的傳輸錯誤,擁塞、緩衝區溢出及各種網絡錯誤都可能導致丟包,此外,各種突發性錯誤也會導致傳輸比特錯誤。為此,加密系統應能限制錯誤的蔓延,並能對包丟失的情況提供快速的重同步功能,針對比特錯誤進行錯誤恢復處理。
(4)對壓縮效率的負面影響加密操作對壓縮效率的負面影響源於以下幾個方面加密更改了編碼參數及視頻數據的統計特性,這使得編碼效率明顯降低;為正確的解密內容,一些解密參數及指示符被引入到壓縮碼流中,例如一些加密方法要求在明文之後填充一些信息,使得明文的長度滿足加密算法的要求,這樣一來就使得原來的明文變得更長,使壓縮效率大打折扣。加密系統的設計要求之一是儘可能降低加密對壓縮效率的負面影響。
不加密時流媒體的傳送過程如下視頻流獲取→壓縮編碼→分包→網絡發送→網絡傳輸→網絡接收→包組合→解碼→視頻流輸出下面分別對現有的加密方案進行介紹現有技術一是採用傳輸分包前的加密方案,視頻媒體由於數據量大,通常在經過壓縮編碼之後傳輸。第一類方案因此選擇在視頻壓縮編碼過程中的某個階段對視頻數據進行加密。第二類方案是在媒體編碼之後進行加密,不考慮媒體傳輸分包策略,而對媒體數據進行加密。
現有技術一的缺點在於第一類方案在壓縮編碼過程中加密,或者破壞了媒體數據自身的相關性,或者破壞了由於之前的壓縮操作引入的數據相關性,從而降低了後續的數據壓縮效率。從資訊理論的角度,加密去除數據的相關性(冗餘度),而壓縮則需要利用數據的相關性(冗餘度),因此,當先加密後壓縮時,通常壓縮率不會很高;而先壓縮後加密則可以保證壓縮率。
第二類方案加密時沒有考慮到傳輸分包,因而在媒體接收端解密一個包數據,往往需要參考其它的包數據,而一旦媒體在傳輸過程中發生丟包,可能造成相關的包數據也無法解密。
現有技術二是採用分塊加密(即分組加密)方案,將明文分成固定長度的組,用同一密鑰和算法對每一塊加密,輸出也是固定長度的密文。
採用標準的分塊加密算法對媒體數據進行加密,其缺點在於分塊加密算法會使數據位之間存在相關性,媒體接收端需要將相關的若干數據位聯合起來解密,而一旦媒體數據在傳輸過程中出現突發性位錯誤(無線環境下經常出現),則一位數據出錯,相關的數據位解密時也會出錯,從而造成錯誤蔓延。
現有技術三是採用一般的流加密方案如圖1所示,一些現有技術採用流加密算法加密媒體數據。流密碼(stream cipher)又稱序列密碼,每次加密一位或一字節的明文。流加密的原理是生成與明文等長的密碼本(也就是偽隨機序列),然後與明文進行逐位或者逐字節的加密操作。流加密使用偽隨機序列發生器產生密碼本。偽隨機序列發生器的輸入是初始向量,輸出則是無限長的偽隨機序列。之所以是偽隨機,就是因為輸入的初始向量的種類決定了輸出的偽隨機序列的種類。不同的流加密算法,會定義不同的偽隨機序列發生器。在實際使用流加密方法的時候,為了提高安全性,需要引入初始向量和散列算法。但如果頻繁地使用同一個初始向量去進行流加密是很危險的,因為它們的密碼本是一樣的,攻擊者可以利用這一點進行破解。
由於流加密算法天然難以抵抗已知明文的攻擊,這些算法通過更換初始向量來更換流加密算法產生的偽隨機密碼本。但是,這些算法仍將初始向量放置於傳輸的數據流中。如2004年10月6日公開的申請號為200410032441.6,名稱為《對可測量多媒體的可完全測量的密碼編制》的專利申請提出的CS加密算法,使用數據的消息校驗碼MAC作為初始向量,但卻將消息校驗碼作為數據包的最後一個字節。
現有技術三的缺點在於上述的流加密方案仍會給已知明文的攻擊提供信息。由於初始向量相同意味著加密數據的密碼本源自於同一個偽隨機序列,因此,一旦攻擊者獲得了一個「明文—密文對」以及相應的初始向量,就能計算該「明文—密文對」和所有與該「明文—密文對」擁有同樣的初始向量的密文所使用的全部或部分的密碼本,從而破解其明文信息。
現有技術四是採用置換加密,置換加密方法的原理是將數據分塊,並打亂順序。只有按照通信雙方約定的方式對打亂數據恢復,才能獲得正確的明文。
一些研究人員提出了視頻媒體的置換加密方案,如文獻H.Chu,L.Qiao,and K.Nahrstedt,「A Secure Multicast Protocol with CopyrightProtection,」A CM SIGCOMM,Vol.32,Apr.2002。
現有技術四的缺點在於雖然置換算法簡單高效,但是攻擊者一旦獲取「明文—密文對」,也能尋找規律,破解算法。文獻A.J.Slagell,「Know-Plaintext Attack Against a Permutation Based Video EncryptionAlgorithm,」Jan.2004(http//eprint.iacr.org/2004/011.pdf)就提出了針對上述置換方案的已知明文的攻擊方法。此外,置換方法一般不會改變視頻或者圖像的統計特性,不適用於安全級別要求較高的應用。
如圖2所示,現有技術單一使用流加密方法或者置換加密方法都易遭受已知明文的攻擊。流密碼難以抵禦已知「明文—密文」對的攻擊,攻擊者同時得到一段明文和相應的密文後,可以推算密鑰,進而破解其它的密文,安全性差。
發明內容
本發明所要解決的技術問題是克服現有的視頻媒體加密方法存在的安全性差、容錯性差或對壓縮效率產生負面影響等的不足,提供一種具有良好的容錯性、較強的抵禦已知明文攻擊能力、而且不影響壓縮效率的流媒體傳輸碼流的加密解密方法及模塊。
本發明為解決上述技術問題所採用的技術方案為這種流媒體傳輸碼流的加密方法,發送端進行加密發送的步驟包括S1、選取分包後的若干個流媒體數據包組成一個加密單元;S2、對加密單元中的數據分別進行置換加密和流加密;S3、對加密單元中的數據再次進行分包,並依次編號,記錄數據包在加密單元中的位置;S4、對分包後的數據包進行發送。
所述的置換加密先根據密鑰確定加密單元的分塊規則,然後將加密單元中的數據依次填充入塊中,再將各塊依次串聯排列,按與填充次序相正交的次序從塊中提取數據,組成置換後的加密單元。
在進行置換加密時,根據密鑰確定加密單元的分塊規則,通過控制分塊的長度變化幅度與平均塊長的比例,平衡加密媒體數據的交織特性和擾亂特性。
所述的流加密以比特為基本單位,以密鑰作為種子,使用流密碼生成器產生與加密單元等長的密碼本,然後用密碼本與待加密數據進行位異或運算,得到密文數據。
對採用H.264標準的視頻媒體數據,從網絡抽象層單元序列中選取連續的若干個網絡抽象層單元組成一個加密單元。
在完成對一個加密單元分別進行置換加密和流加密之後,根據各網絡抽象層單元的原始長度,將加密數據依次填充到網絡抽象層單元中,並在每個網絡抽象層單元頭部標識網絡抽象層單元所屬的加密單元以及在所屬的加密單元中的偏移地址。
對採用非H.264標準的視頻媒體數據,劃分與H.264網絡抽象層單元相當的數據片段,由連續的若干數據片段組成一個加密單元。
相應的一種流媒體傳輸碼流的解密方法,流媒體傳輸碼流接收端解密流程包括T1、從網絡接收屬於一個加密單元的若干個數據包;T2、將數據包依據其在加密單元中的編號或位置排列重新組成加密單元;若一個加密單元中的數據包出現丟包,則對丟包數據位進行比特填充;T3、對所述加密單元中的數據分別進行流解密和置換解密;T4、將解密的數據組成流媒體數據包。
相應的一種流媒體傳輸碼流的加密模塊,包括依次連接的包組合模塊、置換加密模塊、流加密模塊、分包與編號模塊;所述的包組合模塊選取分包後的若干個流媒體數據包組成一個加密單元;所述的置換加密模塊和流加密模塊對加密單元中的數據分別進行置換加密和流加密;所述的分包與編號模塊對加密單元中的數據再次進行分包,並依次編號,記錄數據包在加密單元中的位置,然後進行發送。
相應的一種流媒體傳輸碼流的解密模塊,包括依次連接的包組合模塊、流解密模塊、置換解密模塊和數據組裝模塊;所述的包組合模塊從網絡接收屬於一個加密單元的若干個數據包,並將數據包依據其在加密單元中的編號或位置排列重新組成加密單元;若一個加密單元中的數據包出現丟包,則對丟包數據位進行比特填充;所述的流解密模塊和置換解密模塊分別對所述加密單元中的數據進行流解密和置換解密;所述的數據組裝模塊將解密的數據組成流媒體數據包。
本發明的有益效果為本發明提供了一種針對流媒體傳輸的加密解密方法及模塊,針對分包後的流媒體數據分別進行置換加密和流加密,該密碼算法是對稱的,接收端收到媒體數據後,可採用原理相同的方法依次對包數據進行流解密和置換解密,最終得到解密的流媒體數據。單一的使用流加密方法或者置換加密方法都易遭受已知明文的攻擊,本發明聯合使用流加密和置換加密則能有效抵抗已知明文的攻擊,並具有良好的容錯性,而且不影響壓縮效率。
本發明採用置換加密後,使媒體數據具有了良好的交織特性。實施時,相鄰的密文數據字節經過置換解密的映射後,會保持一定的距離。因此,當傳輸的密文數據發生相對集中的突發性錯誤時,經過接收端的置換解密操作,錯誤會被分散,從而視覺效果的惡化被削弱,同時,有利於接收端在解碼過程中實施錯誤隱藏技術,對視覺效果進行補償。而且置換操作根據密鑰確定加密單元的分塊規則,其間引入平滑係數,控制分塊的長度變化幅度與平均塊長的比例,可在算法的交織特性和擾亂特性之間尋求平衡。
本發明採用的置換加密和流加密均不會引入數據位之間的相關性,這使得對一個數據位的解密不依賴於其它數據位的值。因此,當碼流在傳輸中出現誤碼時,接收端實施解密不會造成位錯誤的蔓延,容錯性好,且不會降低壓縮效率,本發明的這一特性特別適用於無線環境下的媒體保密傳輸。
圖1為現有技術採用流加密算法加密媒體數據的原理示意圖;圖2為現有技術單獨採用流加密或置換加密的原理示意圖;圖3為本發明聯合進行置換加密與流加密的原理示意圖;圖4為本發明加密模塊和解密模塊內部結構示意圖;圖5為置換加密前的數據十六進位表示示例圖;圖6為置換算法的分塊示意圖;圖7為置換加密後的數據十六進位表示示例圖;圖8為置換算法的映射規則示意圖;圖9為明文序列經過置換得到的新序列結構示意圖;圖10為圖9第五行丟失後經過反置換得到的新序列結構示意圖。
具體實施例方式
下面根據附圖和實施例對本發明作進一步詳細說明本發明提出一種針對視頻媒體的傳輸加密解密方法和設備,針對分包後的視頻媒體數據分別進行置換加密和流加密,該密碼算法是對稱的,接收端收到媒體數據後,可採用原理相同的方法依次對包數據進行流解密和置換解密,最終得到解密的視頻數據。本發明流媒體進行加密解密的傳送過程如下視頻流獲取→壓縮編碼→分包→加密模塊→網絡發送→網絡傳輸→網絡接收→解密模塊→包組合→解碼→視頻流輸出如圖3所示,本發明加密模塊中聯合置換加密與流加密後,置換加密輸出的中間文與明文的對應順序被打亂,且打亂的方式是由密鑰決定的。所以,既使攻擊者同時獲得了一段明文和相應的密文,但是與密文對應的中間文攻擊者是不知道的,因此,無法實施「明文—密文」對的攻擊。
如圖4所示,本發明流媒體傳輸碼流的加密模塊包括依次連接的包組合模塊、置換加密模塊、流加密模塊、分包與編號模塊;包組合模塊選取分包後的若干個流媒體數據包組成一個加密單元;置換加密模塊和流加密模塊對加密單元中的數據分別進行置換加密和流加密;分包與編號模塊對加密單元中的數據再次進行分包,並依次編號,記錄數據包在加密單元中的位置,然後進行發送。
流媒體傳輸碼流的解密模塊,包括依次連接的包組合模塊、流解密模塊、置換解密模塊和數據組裝模塊;包組合模塊從網絡接收屬於一個加密單元的若干個數據包,並將數據包依據其在加密單元中的編號或位置排列重新組成加密單元;若一個加密單元中的數據包出現丟包,則對丟包數據位進行比特填充;流解密模塊和置換解密模塊分別對所述加密單元中的數據進行流解密和置換解密;數據組裝模塊將解密的數據組成流媒體數據包。
本發明技術是針對一般流媒體的,兼顧了H.264的傳輸規範。H.264具有壓縮率高、容錯性好、並加入了適應網絡傳輸的控制策略,能很好的適應無線環境的特點,H.264在世界上得到廣泛認可,是無線環境下的有力競爭標準,因此本實施例以H.264視頻碼流加密為例進行說明,雖然本發明在描述算法的時候,結合了H.264的數據包封裝格式,但是本發明方法可以擴展到其它流媒體的加密。
H.264標準定義了NAL(網絡抽象層),負責將視頻數據封裝成NALU(網絡抽象層單元),以適應在異構網絡中的分組傳輸。採用H.264標準,並將視頻碼流面向傳輸分包,那麼得到的就是一系列的NALU。如果不採用H.264標準,那麼操作對象就不是NALU,而是相應標準分包後的單元。對採用非H.264標準的視頻媒體數據(如MPEG-2、MPEG-4以及AVS),劃分與H.264網絡抽象層單元相當的數據片段,由連續的若干數據片段組成一個加密單元。其中,碼流數據的劃分以不分拆碼流的格式頭信息或者載荷單元為原則,例如按碼流的頭信息,若干個宏塊數據,或者運動矢量數據及若干個宏塊數據劃分為一個數據片段,這樣保證了每個片段的數據的語義完整性,並儘可能使得一個數據片段的數據能夠被獨立的解碼,也即是說對一個片斷的數據進行視頻解碼不需要依賴其它片斷的數據,從而降低網絡傳輸丟包引起解碼錯誤的蔓延。
發送端的包組合模塊選擇若干個連續的NALU包組成一個加密單元。在不同的網絡環境下,NALU的長度會不同。有線網絡中NALU的長度在1000位元組左右,在無線網絡中NALU通常為200位元組左右。
NALU在格式上分為包頭數據和包載荷數據,包頭存儲的是描述包數據類型、特徵的標誌位,而包載荷信息就是視頻編碼後的數據。所有的加密操作都是針對包載荷數據進行的,不修改包頭數據。在完成對一個加密單元分別進行置換加密和流加密之後,發送端的分包與編號模塊根據各NALU的原始長度,將加密數據依次填充到NALU中。為了使接收端在出現丟包(丟失個別的NALU)時仍能盡力解密,分包與編號模塊在每個NALU頭部標識NALU所屬的加密單元以及在所屬的加密單元中的偏移地址。這樣,如果個別的NALU丟失,接收端的包組合模塊可將接收到的其它NALU準確定位,而對丟失的NALU數據位進行比特填充,從而得到填充後的加密數據單元,然後實施解密操作,並由數據組裝模塊將全部解密的數據組裝成視頻數據單元。二次分包是將加密後的數據再次填充到NALU的包載荷數據中,因此,得到的仍然是NALU格式的包。
本實施例是以NALU為例進行說明,對採用非H.264標準的視頻媒體數據(如MPEG-2、MPEG-4以及AVS),劃分數據片段,並將數據片段等同於上述NALU進行操作。
分包後的發送端加密流程具體如下步驟1從H.264的NALU包序列中選取n個連續NALU包組成一個加密單元;
步驟2對加密單元中的數據實施置換加密;步驟3對加密單元中的數據實施流加密;步驟4對加密單元中的數據二次分包,並依次編號,記錄數據包載荷數據在加密單元中的偏移地址;步驟5將二次分包後的數據包交給網絡發送模塊,並返回步驟1,提取下一個加密單元,依此循環。
接收端解密流程如下步驟1從網絡接收模塊收到的數據包中獲取同屬於一個加密單元的m個數據包(考慮網絡傳輸中可能丟包,m<n);步驟2將m個數據包依據包序號和偏移地址排列組成加密單元,其中,對丟失的包,用信息位0進行填充;步驟3對加密單元中的數據實施流解密;步驟4對加密單元中的數據實施置換解密;步驟5將加密單元中的數據交給數據組裝模塊,並返回步驟1,提取下一個加密單元,依此循環。
下面對置換加密進行具體說明置換加密操作以字節為基本單位,針對加密單元實施。置換加密算法先根據密鑰確定加密單元的分塊規則,然後將加密單元中的數據依次填充入塊中,然後按與填充次序相正交的次序從塊中提取數據,組成置換後的加密單元。
置換加密的過程舉例描述如下。假設待加密的數據單元共有100個字節,如圖5所示。假設密鑰為6位十進位數,例如564073。首先計算密鑰數據位的總和,這裡,5+6+40+7+3=25。接著根據十進位密鑰的位數,將待加密的數據單元劃分為相應數目的塊,這裡分為7塊,依次計算各塊的長度如下第1塊[(5/25)×100]=20(字節)
第2塊[(6/25)×100]=24(字節)第3塊[(4/25)×100]=16(字節)第4塊[(0/25)×100]=0(字節)第5塊[(7/25)×100]=28(字節)第6塊[(3/25)×100]=12(字節)第7塊100-([(5/25)×100]+[(6/25)×100]+[(4/25)×100]+[(0/25)×100]+[(7/25)×100]+[(3/25)×100])=0(字節)其中,[]表示取整運算,[x]表示不大於x的最大整數。第4塊和第7塊的長度為0,它只在邏輯上存在,數據實際被分成了5塊。
然後按照圖6所示的方法,將待加密的數據依次填充到各塊中,得到填充結果。再將各塊依次串聯排列,按與填充次序相正交的次序從塊中提取數據,組成置換後的加密單元,置換後的數據如圖7所示。
置換操作的形式化描述如下首先,定義一些符號D密鑰的進位K密鑰L密鑰在D進位表示下的長度N明文字節長度{P[j]} 明文字節序列,j為序號,從0至N-1{Q[j]} 將明文置換後得到的字節序列{R[l,m]}明文被映射成的中間二維字節序列,l為列標,m表示行標,{R[l]}為子列(x-y)=1x>y0xy]]>(式2-1)設密鑰K是一個L位的D進位數(L和D是自然數),則K的D進位表示形式如下
K=i=0LkiDi]]>其中,0≤ki≤D-1,ki∈N(式2-2)設明文字節序列為{P[j]}j=0,1,…,N-1,其中P[j]為一個字節長的數據。
記映射規則V將一維字節序列{P[j]}映射為二維字節序列{R[l,m]},其中,字節子序列{R[l]}的長度記為|R[l]|,且規定如下|R[l]|=[N(kl+)/i=0L(ki+)]0lL-1N-l=0L-1[Nkl/i=0Lki]l=L]]>(式2-3)上述計算式中,[]表示取整運算,[x]是不大於x的最大整數。本發明針對置換加密的改進在於引入平滑係數γ,控制{R[l]}序列變化幅度與平均長度之間的比例。映射規則V描述如下R[l,m]=P[mL+l-i=0L((m-|R[i]|)(m-|R[i]|)-i=0l(m+1-|R[I]|))]]]>其中,l=0,1,…,L,m=0,1,…,|R[l]| (式2-4)記映射規則U,將二維字節序列{R[l,m]}映射為一維字節序列{Q[j]},其規則描述如下Q[j]=R[l,m](j=0,1,…,N-1),且l=i=0l(j+1-s=0i|R[s]|),m=j-i=0L|R[s]|(j+1-s=0i|R[s]|)]]>(式2-5)至此,置換算法P可定義為映射V和映射U的疊加,P(·)=U(V(·))∶{Q[j]}=P({P[j]})=U(V({P[j]})) (式2-6)上述置換操作可用圖8來描述,根據密鑰確定加密單元的分塊規則,其間引入平滑係數,控制分塊的長度變化幅度與平均塊長的比例,在算法的交織特性和擾亂特性之間尋求平衡;平滑係數γ可以控制置換方法的交織特性和擾亂特性。交織特性是讓原本相鄰的數據儘可能的分散開。擾亂特性是讓原來的數據儘可能無規律的打亂,這樣就不容易破解,能提高抵禦「明文—密文」對的攻擊。這兩個特性在一定程度上存在對立,平滑係數γ即是它們控制參數,在兩者之間尋求折衷。
上述置換過程,平滑係數γ實際上取值為0。如果取γ等於5,那麼計算分塊的大小如下第1塊[(5+5)/(25+5×6)×100]=18(字節)第2塊[(6+5)/(25+5×6)×100]=20(字節)第3塊[(4+5)/(25+5×6)×100]=16(字節)第4塊[(0+5)/(25+5×6)×100]=9(字節)第5塊[(7+5)/(25+5×6)×100]=21(字節)第6塊[(3+5)/25+5×6)×100]=14(字節)第7塊100-18-20-16-9-21-14=2(字節)可以看到這時候,前6個塊的大小變化幅度比γ取0時要小,通過理論分析,這時置換算法的交織特性比較穩定,但是擾亂特性比較差。
進一步地,取γ為100。這時,前6個塊都為16位元組,第7個塊為4位元組。這時置換算法等同於一般的塊交織算法,其交織特性十分穩定,但是擾亂特性已喪失。
由上面的分析可以看出,調整平滑係數γ可以調節各個塊的變化幅度,從而在交織特性與擾亂特性之間尋求平衡。γ越大,交織特性越穩定,擾亂特性越差;反之,γ越小,交織特性越不穩定,擾亂特性越好。因而,要保持置換算法的交織特性,應當使分塊儘量的均勻。當然,這會弱化置換的隨機性,降低加密的強度。為此,本發明在分塊長度計算式(式2-3)中引入了平滑係數γ。γ直接影響著分塊的長度變化幅度與分塊的平均長度之間的比例。γ增大,各塊長度間的相對差異縮小,能提供更好的交織特性,但同時也降低了置換擾亂的效果。
在前面描述的例子中,明文序列P經過置換得到的新的序列P』如圖9所示,可以看到置換後的序列有規律的交織。假設其中的第五行數據丟失,則經過反置換後得到的序列如圖10所示。可見,一行的錯誤被分散到五行中,這樣在視頻解碼的時候,錯誤被分散,導致的視覺效果惡化被削弱,同時,如果採取錯誤隱藏,則錯誤分散之後,會更加有效。
流加密操作以比特為基本單位,針對置換加密之後的加密單元實施。以密鑰作為種子,使用流密碼生成器產生與加密單元等長的密碼本,然後用密碼本與待加密數據進行位異或運算,得到密文數據。可以採用RC4算法或其它通用的流加密算法,如A5等。RC4和A5算法均遵從圖1中所示的流密碼框架,只是定義了各自不同的偽隨機序列發生器,本發明對使用的偽隨機序列發生器的算法沒有特別的規定,具體實現時,可依據安全性要求和複雜度要求選用合適的偽隨機序列發生器。
本發明採用置換加密後,使媒體數據具有了良好的交織特性(交織是一種控制差錯的編碼思想,將數據交替排列,以分散突發性的誤碼錯誤)。實施時,相鄰的密文數據字節經過置換解密的映射後,會保持一定的距離。因此,當傳輸的密文數據發生相對集中的突發性錯誤時,經過接收端的置換解密操作,錯誤會被分散,從而視覺效果的惡化被削弱,同時,有利於接收端在解碼過程中實施錯誤隱藏技術,對視覺效果進行補償。
本發明採用的置換加密和流加密均不會引入數據位之間的相關性,這使得對一個數據位的解密不依賴於其它數據位的值。因此,當碼流在傳輸中出現誤碼時,接收端實施解密不會造成位錯誤的蔓延。本方案的這一特性特別適用於無線環境下的媒體保密傳輸。
本發明聯合使用流加密和置換加密能有效的抵抗已知明文的攻擊。設置換操作為P,流加密操作為S,兩個操作均為線性的,加密操作E可等效的視為C=E(P)=S(P(P))。當攻擊者獲得「明文—密文對」(C-P)後,由於不知道密鑰,難以計算P(P),也即難以獲得P或者S操作的「明文—密文對」,因此無法針對P和S直接實施已知明文的攻擊。
P和S指代置換解密操作和流解密操作,兩個操作的方法是公開的,但是實際流程是由密鑰決定的。因此,如果不知道密鑰,就無法實現這兩個操作,也就無法解密。
本發明的加密方法可視為置換算法和流加密算法的線性疊加,置換算法和流加密算法的先後次序不會影響加密和解密結果。本文為了方便描述,將置換加密放置於流加密之前、置換解密放置於流解密之後,但具體實現上,置換加密與流加密、置換解密與流解密的次序是可以調整的。流加密和置換加密是採用的同一密鑰,可以先流加密,再置換加密,這與先置換加密再流加密的結果是一樣的。相應地,要求解密端先置換解密,再流解密。
本領域技術人員不脫離本發明的實質和精神,可以有多種變形方案實現本發明,以上所述僅為本發明較佳可行的實施例而已,並非因此局限本發明的權利範圍,凡運用本發明說明書及附圖內容所作的等效變化,均包含於本發明的權利範圍之內。
權利要求
1.一種流媒體傳輸碼流的加密方法,其特徵在於,發送端進行加密發送的步驟包括S1、選取分包後的若干個流媒體數據包組成一個加密單元;S2、對加密單元中的數據分別進行置換加密和流加密;S3、對加密單元中的數據再次進行分包,並依次編號,記錄數據包在加密單元中的位置;S4、對分包後的數據包進行發送。
2.根據權利要求1所述的流媒體傳輸碼流的加密方法,其特徵在於所述的置換加密先根據密鑰確定加密單元的分塊規則,然後將加密單元中的數據依次填充入塊中,再將各塊依次串聯排列,按與填充次序相正交的次序從塊中提取數據,組成置換後的加密單元。
3.根據權利要求2所述的流媒體傳輸碼流的加密方法,其特徵在於在進行置換加密時,根據密鑰確定加密單元的分塊規則,通過控制分塊的長度變化幅度與平均塊長的比例,平衡加密媒體數據的交織特性和擾亂特性。
4.根據權利要求1、2或3所述的流媒體傳輸碼流的加密方法,其特徵在於所述的流加密以比特為基本單位,以密鑰作為種子,使用流密碼生成器產生與加密單元等長的密碼本,然後用密碼本與待加密數據進行位異或運算,得到密文數據。
5.根據權利要求1、2或3所述的流媒體傳輸碼流的加密方法,其特徵在於對採用H.264標準的視頻媒體數據,從網絡抽象層單元序列中選取連續的若干個網絡抽象層單元組成一個加密單元。
6.根據權利要求5所述的流媒體傳輸碼流的加密方法,其特徵在於在完成對一個加密單元分別進行置換加密和流加密之後,根據各網絡抽象層單元的原始長度,將加密數據依次填充到網絡抽象層單元中,並在每個網絡抽象層單元頭部標識網絡抽象層單元所屬的加密單元以及在所屬的加密單元中的偏移地址。
7.根據權利要求1、2或3所述的流媒體傳輸碼流的加密方法,其特徵在於對採用非H.264標準的視頻媒體數據,劃分與H.264網絡抽象層單元相當的數據片段,由連續的若干數據片段組成一個加密單元。
8.一種流媒體傳輸碼流的解密方法,其特徵在於流媒體傳輸碼流接收端解密流程包括T1、從網絡接收屬於一個加密單元的若干個數據包;T2、將數據包依據其在加密單元中的編號或位置排列重新組成加密單元;若一個加密單元中的數據包出現丟包,則對丟包數據位進行比特填充;T3、對所述加密單元中的數據分別進行流解密和置換解密;T4、將解密的數據組成流媒體數據包。
9.一種流媒體傳輸碼流的加密模塊,其特徵在於包括依次連接的包組合模塊、置換加密模塊、流加密模塊、分包與編號模塊;所述的包組合模塊選取分包後的若干個流媒體數據包組成一個加密單元;所述的置換加密模塊和流加密模塊對加密單元中的數據分別進行置換加密和流加密;所述的分包與編號模塊對加密單元中的數據再次進行分包,並依次編號,記錄數據包在加密單元中的位置,然後進行發送。
10.一種流媒體傳輸碼流的解密模塊,其特徵在於包括依次連接的包組合模塊、流解密模塊、置換解密模塊和數據組裝模塊;所述的包組合模塊從網絡接收屬於一個加密單元的若干個數據包,並將數據包依據其在加密單元中的編號或位置排列重新組成加密單元;若一個加密單元中的數據包出現丟包,則對丟包數據位進行比特填充;所述的流解密模塊和置換解密模塊分別對所述加密單元中的數據進行流解密和置換解密;所述的數據組裝模塊將解密的數據組成流媒體數據包。
全文摘要
一種流媒體傳輸碼流的加密解密方法及模塊,發送端選取分包後的若干個流媒體數據包組成一個加密單元;再對加密單元中的數據分別進行置換加密和流加密;對加密單元中的數據再次進行分包,並依次編號,記錄數據包在加密單元中的位置;對分包後的數據包進行發送。本發明針對分包後的流媒體數據分別進行置換加密和流加密,該密碼算法是對稱的,接收端收到媒體數據後,可採用原理相同的方法依次對包數據進行流解密和置換解密,最終得到解密的流媒體數據。本發明聯合使用流加密和置換加密能有效抵抗已知明文的攻擊,並具有良好的容錯性,而且不影響壓縮效率。
文檔編號H04L12/56GK1852088SQ20051010033
公開日2006年10月25日 申請日期2005年10月13日 優先權日2005年10月13日
發明者範雲松, 劉文予, 張帆, 錢莉 申請人:華為技術有限公司, 華中科技大學