MPEG音頻加密算法

隨著Interbet和www的飛速發(fā)展,多媒體信息安全問題對于多媒體商務(wù)活動越來越重要。新型的多媒體應(yīng)用需要新的數(shù)據(jù)加密技術(shù),近年來,在這方面的研究取得了一些成果,主要針對視頻數(shù)據(jù)和圖像數(shù)據(jù),為此我們基于隨機置亂提出一個MPEG音頻數(shù)據(jù)的快速加密算法。

一、MPEG音頻加密算法

在MPEG-1音頻編碼系統(tǒng)中,根據(jù)應(yīng)用的不同場合,可以選擇系統(tǒng)的不同層。隨著層號的增加,編碼器的復雜性和編碼性能一起增加,其中層N解碼器能對層N以及N以內(nèi)所有層編碼的比特流數(shù)據(jù)進行解碼。

在ISO/IEC 11172-3標準中,—共規(guī)定了以下三個層次。

層I:此層包括從數(shù)字音頻輸入到32個子帶的基本變換,按固定分段方式將數(shù)據(jù)分割為幀,按心理學模型決定自適應(yīng)比特分配。

層Ⅱ:此層提供比特分配、比例因子、樣點的附加編碼。與層I編碼器采用不同的分幀方式。

層Ⅲ:此層引入混合濾彼器組以提高頻率分辨率屯并增加一個不同的非均勻量化器、自適應(yīng)分段和量化值的熵編碼。

其中層I組成了量基本的算法,而層Ⅱ和層Ⅲ則提供了功能的增強。所有三層編碼器都基于子帶濾波,并利用了兩個心理學模型中的一個控制量化器和編碼。音頻數(shù)據(jù)一般通過分析濾波器組分成32個等寬的子帶數(shù)據(jù)。對于44.IKHz的CD音質(zhì)的數(shù)字音頻數(shù)據(jù)而言,每一子帶的帶寬為44100/32~89 Hz。

與目前的JpEG和b4PEG標準有所不同,MPEG數(shù)字音頻壓縮算法很大層度上依賴于心理聲學模型,把掩蔽效應(yīng)(maslc:ing effects)引入編碼過程。掩蔽效應(yīng)是人的聽覺系統(tǒng)(HAS)的一個生理特性,入耳對一個聲音的聽覺靈敏度因為另一個聲音的存在而降低的現(xiàn)象稱為掩蔽效應(yīng)。人們在安靜環(huán)境中聽一個聲音可以聽得很清楚,即使這個聲音很低,而在一個聲音嘈雜的鬧市,要聽清楚附近的人說話都很困難。實驗結(jié)果表明,HAS對聲音的分辨能力是有限的,并與頻率相關(guān),這可以用臨界帶寬(cntical ba.nd-width)。在一給定頻率的噪聲掩蔽閾值(noise-masking
thn:shold~l和其鄰近的有限帶寬的頻率帶的信號能量有關(guān)。

MPEG音頻編碼算法通過將輸入音頻信號分解成32個子帶來逼近臨界帶寬,然后根據(jù)在每一子帶所能承受的量化噪聲對其進行量化。每一子帶根據(jù)其掩蔽特性分配一定的位數(shù)。在層I的MPEG-I音頻編碼器中,位分配用[0,2...15]中的一個數(shù)字表示。如果位分配不為零,就計算出一個比例因子,并分配給這個子帶。這個比例因子用于把量化的樣點值擴展到正確的范圍。每一比例因子用6位來表示[0…62]。位分配、比例因子以及量化的樣點值就構(gòu)成了重要的MPEO音頻數(shù)據(jù)流。

在MPEG音頻編碼標準中,提供了兩個心理聲學模型,其中心理聲學模型2比心理聲學模型l要復雜,對掩蔽效應(yīng)的計算也更為準確。

在通過分析濾波器組進行分析時,每32個輸入樣點數(shù)據(jù)被變換成32個子帶樣點數(shù)據(jù),但是,濾波器系數(shù)至少要依賴于最近的5 12個樣點。由于濾波器的相應(yīng)曲線并非理想,會引入一定的混疊(aliasing)效應(yīng),尤其是在予帶的邊界附近一例如,輸入一個純正弦波信號,會在兩個子帶中輸出非零值。在解碼器的合成濾波器組,等值的相反的混疊效應(yīng)會抵消前面的混疊效應(yīng)。因為混疊效應(yīng)是對稱的,不過對于設(shè)計MPEG音頻加密算法而言,利用這一混疊效應(yīng),可以增強加密效果。

盡管32個樣點值組成了MPEG音頻編碼器中的最小處理單元,輸入PCM音頻數(shù)據(jù)值被分割成幀,以便處理更加有效。在MPEG-1層I編碼器中,一個幀包括384個樣點值,其中分為12組,每一組包括32個子帶樣點數(shù)據(jù)。除了位分配x比例因子和子帶樣點以外,每一幀中包括一個幀頭以及可選的CRC誤差檢測碼,還可能包括其他附加數(shù)據(jù)。

盡管基于相同的濾波器組,層I和層Ⅱ以及層Ⅲ編碼器的幀大小和計算復雜度是不一樣的。層Ⅲ由于引入了MDCT (ModifiedDiscrete Cosine Transform),進一步把一個子帶細分以提高頻率分辨率,而且層Ⅲ編碼器增加了Huffman變長熵編碼方案,提高了壓縮率。這些性能上的提高,從概念上是比較復雜的,也提高了編碼器的復雜度。

二、MPEG音頻數(shù)據(jù)的快速加密算法

本文提出的MPEO音頻加密方法基于密鑰控制的隨機捧列,加密過程在NIPEG音頻編碼的最后一步,即在幀封裝階段。得到的加密數(shù)據(jù)流仍然能被一般的MPEG音頻解碼器所讀取和播放,當然所能昕到的已經(jīng)與原音頻數(shù)據(jù)完全不同了。為了解密,只要把經(jīng)過加密的MPEG音頻數(shù)據(jù)流經(jīng)過幀分解,然后進行反排列即可。

1、隨機捧列

在傳統(tǒng)的迭代乘積密碼系統(tǒng)中,捧列算子的主要任務(wù)就是對明文數(shù)據(jù)塊中的元素進行重排(有時也可以稱為“置亂”)撕使得密文塊看起來是隨機的。不過,這些排列算子一般事先定好,而與密鑰無關(guān)。一個加密算法由設(shè)計者規(guī)定好一個排列方法,在所有相同的系統(tǒng)中,排列方法不變。指出這覡顯是一個可能的缺陷,使得某些迭代乘積密碼系統(tǒng)特別容易受到差分密碼分析的攻擊。而基于密鑰的排列的安全性能會由較大改善。在基于密鑰的排列算法中,由一個或多個參數(shù)作為密鑰,參數(shù)能夠唯一地確定排列的性質(zhì)。

基于密鑰的排列可以在頻域或時間,空間域進行。通過空間域圖像攆列進行加密,而MPEG視頻加密算法則是典型的頻域算法。從另一個角度來考慮,排列操作可以是局部的,或是全局的。屬于全局排列,其排列操作對整幅圖像進行。而則是局部算法,因為在這一算法中,排列算子的操作是在每一個8X8的塊上進行的。局部算法的優(yōu)點是速度快,空間需求低,如的算法僅需維護一個長度為64的排列表(permutation list)且認為,對圖像的加密操作不宜僅在小的數(shù)據(jù)塊級別上進行,特剮是如果每一數(shù)據(jù)快相互獨立加密,就更為不妥。原因是這樣即使圖像內(nèi)容被打亂,圖像的結(jié)構(gòu)仍然可以被分辨出來。這一結(jié)論對于空間圖像加密算法仍然是適用的。

另外一個安全問題的考慮是排列表的長度實際決定了密鑰空間的大小,數(shù)據(jù)塊的加大,也就同時增大了密鑰空間。所以數(shù)據(jù)塊的大小必須仔細選擇,在保證安全性的前提下,提高加密算法的運行效率,減少對存儲空間的需求。

對于在多媒體應(yīng)用中的音頻數(shù)據(jù)加密算法,根據(jù)我們的試驗,作用于局部的數(shù)據(jù)塊的隨機排列算法的效果是令人滿意的。經(jīng)過局部的頻域和時間域分段隨機排列算法加密后的波形從視聽者的角度已經(jīng)沒有原音頻信號的痕跡了,當然,從保密的角度而言,經(jīng)過時間域加密的波形從形狀上還有原波形的痕跡,這是不夠安全的,高級的破譯者可能很快就可以從波形上找到語音。從另一個角度講,對于任意的非語音聲音信號,單從殘留的這些痕跡也很難找到正確的波形。因此,我們認為,在多媒體音頻數(shù)據(jù)的加密算法中,采用局部隨機排列方式是合適的。我們在算法的設(shè)計中,作用的數(shù)據(jù)快大小是可以分層次調(diào)節(jié)的,這也符合了MPEG音頻數(shù)據(jù)壓縮的數(shù)據(jù)結(jié)構(gòu)和MPEG音頻數(shù)據(jù)格式的層次結(jié)構(gòu)。

2、頻域與時間域

時間域的排列加密算法實現(xiàn)較為簡單,因為不需要使用一般頻域算法所必須的FFT變換或其他時間域到頻域的轉(zhuǎn)換濾波器組,計算量相對較少。然而,直接在時間域的隨機置亂算法得到的多媒體音頻數(shù)據(jù)如果進行MPEG壓縮,一般效果很差。一方面壓縮率大大降低了,另一方面由于多媒體數(shù)據(jù)被隨機置亂廣MPEG音頻編碼器在使用濾波器組和心理聲學模型進行數(shù)據(jù)編碼的時候,主要是保持聽覺效果即生理特性,有可能會給加密數(shù)據(jù)引入較大的失真。頻域算法如果設(shè)計不當,同樣存在降低壓縮率的問題cloi.m。另外,頻域算法需要時間域到頻域的轉(zhuǎn)換計算,所需時間耗費較大,不過由于多媒體數(shù)據(jù)壓縮算法一般是在頻域進行的。如果頻域加密算法與壓縮算法結(jié)合進行,就不會增加太多的計算量。在頻域算法中,進行加密計算的步驟很重要,算法的時機就不是太好,因而影響了MPEG視頻壓縮系統(tǒng)的效率。頻域算法的優(yōu)勢是在頻域中,每一點的變化對整個數(shù)據(jù)集合都會產(chǎn)生一定的影響。如在MPEG視頻數(shù)據(jù)壓縮算法中,8X8豹數(shù)據(jù)塊經(jīng)過DCr變換得到的DCT系數(shù)中的一個發(fā)生改變,會通過IDCT逆運算體現(xiàn)在所有的64個象素點中。時間域算法如果在象素級進行隨機置亂而不是比特級,一般不會達到這種效果。換一種說法就是,頻域算法加密效率比較高。

3、加密算法說明

基于上面的討論,本文提出了一個MPEG音頻信號的可調(diào)節(jié)加密算法框架。在以下的敘述中,我們將以MPEG層I音頻編碼器為例,其中忽略了聲道信息,在立體聲音頻中,左聲道和右聲道是對稱的,其數(shù)據(jù)組織形式相同。層Ⅱ和層Ⅲ的MPEG音頻數(shù)據(jù)類似,并不影響算法的基本結(jié)構(gòu)。

加密過程在幀封裝之前進行。這就可以保證加密算法不會引入任何的數(shù)據(jù)容量的膨脹或質(zhì)量下降。這一加密算法是在頻域進行的,因為MPEG音頻壓縮編碼器的第一步就是將時間域音頻信號使用分析濾波器組變換到頻率域。另外,為了操作的方便,我們把幀作為基本的數(shù)據(jù)單位。在每一幀中,分為32個子帶,每一個子帶取一個頻率樣點組成一組,共12組。根據(jù)在MPEG音頻編碼器的心理聲學模型進行的掩蔽效應(yīng)的計算結(jié)果,每一個子帶分配一個位分配數(shù)和一個比例因子,并據(jù)此實現(xiàn)量化。由于每個子帶的位分配很可能不一樣,并且有些子帶可能位分配為零,即被忽略掉了。所以如果我們直接把384個樣點數(shù)據(jù)進行置亂羹就很難處理位分配和比例因子,因而無法組織成一個合理的MPEG音頻數(shù)據(jù)流。我們的處理方法是按子帶進行隨機置亂,每個子帶的位分配數(shù)隨同子帶樣點一定進行置亂,這樣就保證了樣點數(shù)據(jù)的比特數(shù)目和位分配數(shù)字相匹配,而且位分配數(shù)為零的子帶同樣可以參加置亂。

相應(yīng)的比例因子信息也要參加置亂。適用同一置亂表,如果和樣點數(shù)據(jù)和位分配數(shù)的置亂表不一樣,可以進一步加強置亂效果,不過這樣就需要滿足比例因子的置亂符合位分配數(shù)的非零要求的條件,即只有在子帶置亂后的位分配數(shù)非零的子帶,才能分配比例因子。這一捧列形式屬于禁位捧列,即某些位置是不許某些元素占據(jù)的。不過,在置亂后,由于有些子帶并不存在,位置信息就會丟失,也就
無法正確的恢復到正確的位置,而如果一起置亂,就可以避免這一問題。

以上構(gòu)成了我們的基本算法。根據(jù)我們的初步實驗結(jié)果,對一般的多媒體應(yīng)用而言,我們的加密算法提供了令人滿意的效果。

我們可以通過對同一子帶內(nèi)的數(shù)據(jù)加以置亂以進一步提高安全性。即把12個數(shù)據(jù)組打亂。這組成了我們的加密算法的又一層次鉺最后,我們還可以在一定的周期內(nèi),比如每N幀數(shù)據(jù),對幀進行打亂。周期N是一個可調(diào)節(jié)的參數(shù),可以用來平衡安全級別、加密延遲以及算法復雜度三者的關(guān)系。這一層次的加密算法實際上可以歸為全局算法。

加密算法的密鑰用來產(chǎn)生隨機排列表,實際上就是相應(yīng)的隨機數(shù)生成器的SEED。為了對付可能的明文攻擊,我們可以隨機地更換產(chǎn)生隨機排列表的密鑰,辦法是使用一個我們稱之為SUPERKEY的密鑰來控制產(chǎn)生一個密鑰序列,這一序列可以隨時在規(guī)定的間隔內(nèi)輸出密鑰,用于產(chǎn)生最后的實際隨機捧列表。這樣密鑰管理就非常簡單。省去了大量的密鑰存儲空間。不過,這樣做的代價是會使加密算法增加一定的計算量,因為隨機排列表必須實時產(chǎn)生,而不宜事先計算好存起來備用。為了避免太大的時間耗費,我們應(yīng)當盡可能不要過于經(jīng)常的更換密鑰。

小知識之MPEG音頻

MPEG音頻屬于寬頻帶壓縮處理標準,根據(jù)其壓縮算法不同 ,對它確定了—、二、三層共3個層次的算法。