随着Interbet和www的飞速发展,多媒体信息安全问题对于多媒体商务活动越来越重要。新型的多媒体应用需要新的数据加密技术,近年来,在这方面的研究取得了一些成果,主要针对视频数据和图像数据,为此我们基于随机置乱提出一个MPEG音频数据的快速加密算法。

一、MPEG音频加密算法

在MPEG-1音频编码系统中,根据应用的不同场合,可以选择系统的不同层。随着层号的增加,编码器的复杂性和编码性能一起增加,其中层N解码器能对层N以及N以内所有层编码的比特流数据进行解码。

在ISO/IEC 11172-3标准中,—共规定了以下三个层次。

层I:此层包括从数字音频输入到32个子带的基本变换,按固定分段方式将数据分割为帧,按心理学模型决定自适应比特分配。

层Ⅱ:此层提供比特分配、比例因子、样点的附加编码。与层I编码器采用不同的分帧方式。

层Ⅲ:此层引入混合滤彼器组以提高频率分辨率屯并增加一个不同的非均匀量化器、自适应分段和量化值的熵编码。

其中层I组成了量基本的算法,而层Ⅱ和层Ⅲ则提供了功能的增强。所有三层编码器都基于子带滤波,并利用了两个心理学模型中的一个控制量化器和编码。音频数据一般通过分析滤波器组分成32个等宽的子带数据。对于44.IKHz的CD音质的数字音频数据而言,每一子带的带宽为44100/32~89 Hz。

与目前的JpEG和b4PEG标准有所不同,MPEG数字音频压缩算法很大层度上依赖于心理声学模型,把掩蔽效应(maslc:ing effects)引入编码过程。掩蔽效应是人的听觉系统(HAS)的一个生理特性,入耳对一个声音的听觉灵敏度因为另一个声音的存在而降低的现象称为掩蔽效应。人们在安静环境中听一个声音可以听得很清楚,即使这个声音很低,而在一个声音嘈杂的闹市,要听清楚附近的人说话都很困难。实验结果表明,HAS对声音的分辨能力是有限的,并与频率相关,这可以用临界带宽(cntical ba.nd-width)。在一给定频率的噪声掩蔽阈值(noise-masking
thn:shold~l和其邻近的有限带宽的频率带的信号能量有关。

MPEG音频编码算法通过将输入音频信号分解成32个子带来逼近临界带宽,然后根据在每一子带所能承受的量化噪声对其进行量化。每一子带根据其掩蔽特性分配一定的位数。在层I的MPEG-I音频编码器中,位分配用[0,2...15]中的一个数字表示。如果位分配不为零,就计算出一个比例因子,并分配给这个子带。这个比例因子用于把量化的样点值扩展到正确的范围。每一比例因子用6位来表示[0…62]。位分配、比例因子以及量化的样点值就构成了重要的MPEO音频数据流。

在MPEG音频编码标准中,提供了两个心理声学模型,其中心理声学模型2比心理声学模型l要复杂,对掩蔽效应的计算也更为准确。

在通过分析滤波器组进行分析时,每32个输入样点数据被变换成32个子带样点数据,但是,滤波器系数至少要依赖于最近的5 12个样点。由于滤波器的相应曲线并非理想,会引入一定的混叠(aliasing)效应,尤其是在予带的边界附近一例如,输入一个纯正弦波信号,会在两个子带中输出非零值。在解码器的合成滤波器组,等值的相反的混叠效应会抵消前面的混叠效应。因为混叠效应是对称的,不过对于设计MPEG音频加密算法而言,利用这一混叠效应,可以增强加密效果。

尽管32个样点值组成了MPEG音频编码器中的最小处理单元,输入PCM音频数据值被分割成帧,以便处理更加有效。在MPEG-1层I编码器中,一个帧包括384个样点值,其中分为12组,每一组包括32个子带样点数据。除了位分配x比例因子和子带样点以外,每一帧中包括一个帧头以及可选的CRC误差检测码,还可能包括其他附加数据。

尽管基于相同的滤波器组,层I和层Ⅱ以及层Ⅲ编码器的帧大小和计算复杂度是不一样的。层Ⅲ由于引入了MDCT (ModifiedDiscrete Cosine Transform),进一步把一个子带细分以提高频率分辨率,而且层Ⅲ编码器增加了Huffman变长熵编码方案,提高了压缩率。这些性能上的提高,从概念上是比较复杂的,也提高了编码器的复杂度。

二、MPEG音频数据的快速加密算法

本文提出的MPEO音频加密方法基于密钥控制的随机捧列,加密过程在NIPEG音频编码的最后一步,即在帧封装阶段。得到的加密数据流仍然能被一般的MPEG音频解码器所读取和播放,当然所能昕到的已经与原音频数据完全不同了。为了解密,只要把经过加密的MPEG音频数据流经过帧分解,然后进行反排列即可。

1、随机捧列

在传统的迭代乘积密码系统中,捧列算子的主要任务就是对明文数据块中的元素进行重排(有时也可以称为“置乱”)撕使得密文块看起来是随机的。不过,这些排列算子一般事先定好,而与密钥无关。一个加密算法由设计者规定好一个排列方法,在所有相同的系统中,排列方法不变。指出这觋显是一个可能的缺陷,使得某些迭代乘积密码系统特别容易受到差分密码分析的攻击。而基于密钥的排列的安全性能会由较大改善。在基于密钥的排列算法中,由一个或多个参数作为密钥,参数能够唯一地确定排列的性质。

基于密钥的排列可以在频域或时间,空间域进行。通过空间域图像撵列进行加密,而MPEG视频加密算法则是典型的频域算法。从另一个角度来考虑,排列操作可以是局部的,或是全局的。属于全局排列,其排列操作对整幅图像进行。而则是局部算法,因为在这一算法中,排列算子的操作是在每一个8X8的块上进行的。局部算法的优点是速度快,空间需求低,如的算法仅需维护一个长度为64的排列表(permutation list)且认为,对图像的加密操作不宜仅在小的数据块级别上进行,特剐是如果每一数据快相互独立加密,就更为不妥。原因是这样即使图像内容被打乱,图像的结构仍然可以被分辨出来。这一结论对于空间图像加密算法仍然是适用的。

另外一个安全问题的考虑是排列表的长度实际决定了密钥空间的大小,数据块的加大,也就同时增大了密钥空间。所以数据块的大小必须仔细选择,在保证安全性的前提下,提高加密算法的运行效率,减少对存储空间的需求。

对于在多媒体应用中的音频数据加密算法,根据我们的试验,作用于局部的数据块的随机排列算法的效果是令人满意的。经过局部的频域和时间域分段随机排列算法加密后的波形从视听者的角度已经没有原音频信号的痕迹了,当然,从保密的角度而言,经过时间域加密的波形从形状上还有原波形的痕迹,这是不够安全的,高级的破译者可能很快就可以从波形上找到语音。从另一个角度讲,对于任意的非语音声音信号,单从残留的这些痕迹也很难找到正确的波形。因此,我们认为,在多媒体音频数据的加密算法中,采用局部随机排列方式是合适的。我们在算法的设计中,作用的数据快大小是可以分层次调节的,这也符合了MPEG音频数据压缩的数据结构和MPEG音频数据格式的层次结构。

2、频域与时间域

时间域的排列加密算法实现较为简单,因为不需要使用一般频域算法所必须的FFT变换或其他时间域到频域的转换滤波器组,计算量相对较少。然而,直接在时间域的随机置乱算法得到的多媒体音频数据如果进行MPEG压缩,一般效果很差。一方面压缩率大大降低了,另一方面由于多媒体数据被随机置乱广MPEG音频编码器在使用滤波器组和心理声学模型进行数据编码的时候,主要是保持听觉效果即生理特性,有可能会给加密数据引入较大的失真。频域算法如果设计不当,同样存在降低压缩率的问题cloi.m。另外,频域算法需要时间域到频域的转换计算,所需时间耗费较大,不过由于多媒体数据压缩算法一般是在频域进行的。如果频域加密算法与压缩算法结合进行,就不会增加太多的计算量。在频域算法中,进行加密计算的步骤很重要,算法的时机就不是太好,因而影响了MPEG视频压缩系统的效率。频域算法的优势是在频域中,每一点的变化对整个数据集合都会产生一定的影响。如在MPEG视频数据压缩算法中,8X8豹数据块经过DCr变换得到的DCT系数中的一个发生改变,会通过IDCT逆运算体现在所有的64个象素点中。时间域算法如果在象素级进行随机置乱而不是比特级,一般不会达到这种效果。换一种说法就是,频域算法加密效率比较高。

3、加密算法说明

基于上面的讨论,本文提出了一个MPEG音频信号的可调节加密算法框架。在以下的叙述中,我们将以MPEG层I音频编码器为例,其中忽略了声道信息,在立体声音频中,左声道和右声道是对称的,其数据组织形式相同。层Ⅱ和层Ⅲ的MPEG音频数据类似,并不影响算法的基本结构。

加密过程在帧封装之前进行。这就可以保证加密算法不会引入任何的数据容量的膨胀或质量下降。这一加密算法是在频域进行的,因为MPEG音频压缩编码器的第一步就是将时间域音频信号使用分析滤波器组变换到频率域。另外,为了操作的方便,我们把帧作为基本的数据单位。在每一帧中,分为32个子带,每一个子带取一个频率样点组成一组,共12组。根据在MPEG音频编码器的心理声学模型进行的掩蔽效应的计算结果,每一个子带分配一个位分配数和一个比例因子,并据此实现量化。由于每个子带的位分配很可能不一样,并且有些子带可能位分配为零,即被忽略掉了。所以如果我们直接把384个样点数据进行置乱羹就很难处理位分配和比例因子,因而无法组织成一个合理的MPEG音频数据流。我们的处理方法是按子带进行随机置乱,每个子带的位分配数随同子带样点一定进行置乱,这样就保证了样点数据的比特数目和位分配数字相匹配,而且位分配数为零的子带同样可以参加置乱。

相应的比例因子信息也要参加置乱。适用同一置乱表,如果和样点数据和位分配数的置乱表不一样,可以进一步加强置乱效果,不过这样就需要满足比例因子的置乱符合位分配数的非零要求的条件,即只有在子带置乱后的位分配数非零的子带,才能分配比例因子。这一捧列形式属于禁位捧列,即某些位置是不许某些元素占据的。不过,在置乱后,由于有些子带并不存在,位置信息就会丢失,也就
无法正确的恢复到正确的位置,而如果一起置乱,就可以避免这一问题。

以上构成了我们的基本算法。根据我们的初步实验结果,对一般的多媒体应用而言,我们的加密算法提供了令人满意的效果。

我们可以通过对同一子带内的数据加以置乱以进一步提高安全性。即把12个数据组打乱。这组成了我们的加密算法的又一层次铒最后,我们还可以在一定的周期内,比如每N帧数据,对帧进行打乱。周期N是一个可调节的参数,可以用来平衡安全级别、加密延迟以及算法复杂度三者的关系。这一层次的加密算法实际上可以归为全局算法。

加密算法的密钥用来产生随机排列表,实际上就是相应的随机数生成器的SEED。为了对付可能的明文攻击,我们可以随机地更换产生随机排列表的密钥,办法是使用一个我们称之为SUPERKEY的密钥来控制产生一个密钥序列,这一序列可以随时在规定的间隔内输出密钥,用于产生最后的实际随机捧列表。这样密钥管理就非常简单。省去了大量的密钥存储空间。不过,这样做的代价是会使加密算法增加一定的计算量,因为随机排列表必须实时产生,而不宜事先计算好存起来备用。为了避免太大的时间耗费,我们应当尽可能不要过于经常的更换密钥。

小知识之MPEG音频

MPEG音频属于宽频带压缩处理标准,根据其压缩算法不同 ,对它确定了—、二、三层共3个层次的算法。