基于DRM隐密信息传输系统的实现

2012-01-15 00:51薛亚辉王剑王晓西
关键词:字节频谱信道

薛亚辉,王剑,王晓西

(中国传媒大学 广播电视数字化教育部工程研究中心,北京 100024)

1 引言

随着数字化技术的飞速发展,信息安全问题成为了一项热门研究领域。最初,加密与解密被认为是实现信息安全的方法。然而,由于密文是无任何规律的比特流,容易被识别而受到攻击,因此采用此方法存在很大缺陷。在此情况下,信息隐藏技术被深入研究并广泛应用于军事及商业的信息通信中,它主要研究利用人的感觉器官对数字信息的感觉冗余,如何将秘密信息隐藏在另一个公开的信息中,然后以一种只有接收者才知道信息存在的秘密途径传送出去,其中,公开的信息可以是图像、音频或者多媒体。对于信息隐藏而言,攻击者难以从众多的公开信息中判断是否存在机密信息,增加截获机密信息的难度,从而保证机密信息的安全。

最初人们对信息隐藏的研究大多选择静态图像为载体,后来逐渐发展到音频和视频。针对音频信息隐藏算法,是利用人耳对音频的某些特征的改变不敏感的特性来设计,充分利用这些特性来嵌入信息。嵌入后隐藏媒体与音频媒体几乎没有任何外部差别,难以被发现。

实现隐秘信息传输,目的是不让第三方识别出数据传输的存在,退一步讲,即使信号被截获也能够确保信息的不可破译性,从而实现数据的隐蔽传输。所以要选择合适的数据传输体制以及隐蔽措施来达到传输隐秘信息的效果。本文采用将隐藏信息以特定封装方式嵌入AAC(高级音频编码)音频信号中,通过DRM(数字调幅广播)系统将其发射出去,被接收端接收之后进行解码之后,再进行提取信息的工作。此系统主要是在短波信道中使用的,短波主要以天波方式传播,电离层是其天然的“中继系统”,而电话线路可能被切断,地面中继系统和卫星中继系统可能发生故障,而电离层很难长时间被破坏,这点尤其在军事通信中意义不言而喻。再加上DRM这样一个“光明正大”的传输系统作为掩体,能够更隐秘的安全的将这些信息传递出去,减小被截获或者被攻击的可能性。能够将信息嵌入AAC音频文件,利用的是频域量化值的听觉冗余来进行隐藏工作的,是在满足心理声学模型计算的门限下完成的,所以可以达到不可闻的目的。

2 DRM技术系统[1]

DRM系统是适用于频率在30mHz以下,即工作在长、中、短波段的数字调幅广播标准。如图1所示是发射系统结构原理方框图,它描述了不同等级信息的一般流程。传输系统主要包括四个模块:源编码模块、复用模块、信道编码模块和OFDM(Orthogonal Frequency Division Multiplexing)模块。在接收端,除了接收机实现与信号的同步,其他大致是发射端的逆过程。

图1 发射系统结构原理方框图

基于此系统,隐密信息在发射端进行的主要过程是:音频信号转化成数字形式,之后进行信源编码以此达到削减比特率的目的,在信源编码过程中将隐藏信息以某种算法嵌入音频信号;经过信源编码的数据和其他组成有效负载的数据复用到一起,其中,复用器将保护等级与所有数据和音频业务结合起来;复用后的数据流须进行能量扩散,限制全0或全1码的长度,使传输信号的频谱均匀化;之后对有效负载的复用数据进行信道编码以增强健壮性;信道编码器定义并将数字化编码信息映射到QAM单元中;单元交织器将连续的QAM单元扩散到时域和频域呈现准随机特性的位置以提高系统抗信道突发差错的能力;经过上述处理之后,通过导频发生器插入导频通过IFFT调制得到OFDM符号的有效部分。为了抵抗多径衰落,采用有效部分的前缀作为保护间隔,保护间隔与有效部分共同组成OFDM符号。一个DRM信号由15到24个OFDM帧组成,OFDM符号除了承载控制和数据信息的有效子载波外,部分子载波和部分符号用来承载导频单元,包括频率参考单元、增益参考单元和时间参考单元,他们主要应用于帧同步、时间同步、信道估计等方面。在OFDM传输帧中,这些单元用已知的固定相位和幅度调制,而且在帧中的位置也是确定的。

DRM发射系统的多路复用由主业务信道(MSC)、快速访问信道(FAC)和业务描述信道(SDC)组成。MSC由4个音频业务或数字业务经复用而成的,它包含了所要发射的音频、图像和数据信息。FAC和SDC信道携带配置信息以及如版本、可选频率等业务信息。FAC通道用来提供快速搜索的业务信息,包括接收机能够有效地开始解复用的用关心到参数信息。SDC通道提供如何解调MSC、如何找到相同数据的其他数据源,以及在复接器中为业务提供属性等信息。

DRM提供三种信源编码方案:MPEG-4 AAC高级音频编码,用于普通的单声道和立体声广播;MPEG-4 CELP码激励现行预测编码,用于非音乐内容的高质量语音编码;MPEG-4 HVXC谐波矢量激励编码,用于非常低的比特率的单声道语音广播。根据以上三种编码的用途,此系统采用的是AAC编码方案。由于隐藏信息是在进行音频编码的过程中进行嵌入工作的,因此在本文第三部分重点介绍AAC编码原理。

3 AAC编码[1]

3.1 AAC编码流程

AAC是一种基于感知原理的音频压缩编码,它充分利用人耳的听觉掩蔽特性来降低音频的主观冗余度。AAC编码流程框图如图2所示。

图2 AAC编码器方框图

AAC系统提供了三层框架:主框架,低复杂度框架,可分级取样频率框架。由于此方案是以DRM系统为基础的,DRM系统中,信源编码采用的是MPEG-4 AAC编码标准,其AAC码流对象采用的是1999年发布的第二版AAC标准中所定义的带有错误鲁棒(Error Robust)工具的低复杂度对象(Low Coplexity)AAC码流对象采用的是低复杂度对象,即“AAC ER-LC”,该类型的AAC码流适合在噪声较大的无线信道中传输,能够较大程度的保证解码输出的音频质量[2]。这一框架不包含预测和预处理模块,TNS阶数有限。

在图2给出的编码框图中,并不是每个模块都是必需的。其中滤波器组、比例系数模块、量化器、无噪声编码/解码模块和码流格式化是不可少的。下面将对AAC编码各个模块分别进行说明。

(1)滤波器组。滤波器组是将输入的PCM时域信号变为系统内部的频域信号。在编码器中,AAC使用改良离散余弦变换(MDCT)将信号变换得到频域信号,输出频谱系数,频谱系数将在后面的过程中进行量化和编码。对于变换长度,在AAC中可以使用2048个样值或256个样值。

(2)比例系数模块。在编码器中,采用比例系数将归一化的频谱非归一化。

(3)量化器。在编码器中,数据率的真正降低是通过量化处理的。在AAC中采用非线性量化,采用内环和外环两层迭代循环得到最佳量化。内层循环目的调节量化器步长,外层循环用来放大比例系数频段。把频谱划分为几个频谱组,每组共享一个比例系数,这些频谱组就称为比例系数频段。隐藏信息就是在此步骤中进行嵌入的,具体做法在下文给出。

(4)编码。在AAC中,量化后的频谱值、差分比例系数、方向信息等使用霍夫曼编码。

3.2 AAC音频帧[3]

AAC文件的音频数据是以帧为结构单位的,在嵌入及提取信息时需要用到AAC音频帧的特点,AAC音频帧的特点如下:

(1)比特率:AAC可用于任何比特率。400ms的音频超级帧字节组合可以产生20kb/s的AAC比特率单元;

(2)采样频率:12kHz和24kHz;

(3)变换长度:为保证一个音频帧在时间上相应于80ms或40ms,同时变换长度为960而不是传统的1024.这是为了调协AAC帧长度,以便整个音频帧能够组成一个持续期为400ms的音频超级帧。

(4)音频超级帧:5个(12kHz采样频率)或10个(24kHz采样频率)音频帧组成一个音频超级帧,其长度为400ms。

3.3 AAC音频超级帧[3]

在DRM信源编码中,使用的是UEP(不等差错保护)。为适应UEP信道编码,使用固定长度的帧和UEP是必要的。因为AAC是使用可变长度帧的编码方案,几个长度可变的音频帧将组合起来成为一个音频超帧,但音频超帧的比特率和帧长度保持恒定。同时由于信道编码方案是基于音频超帧的,所以该音频超帧包含了较高保护等级和较低保护等级两部分。较高等级的保护赋予比特流中较敏感的信息部分,较低等级的保护赋予比特流中较不敏感的部分。AAC音频超级帧(以24kHz采样为例)存储格式如下如图3所示:

图3 AAC音频超帧格式

AAC头包含用来获得存贮在音频超帧中nframes个AAC帧帧长度的信息。所有的帧长度都得自帧边界的绝对位置。这些帧边界连续的存贮于头中,每个帧边界占用12个比特。帧边界用字节从AAC比特序列开始进行测量,如果nframes=10,那么就增加4个填充位。在头中保存了nframes-1个帧边界。在解码时,可以根据AAC头信息判断每帧的长度、高保护部分的长度、低保护部分的长度进行提取并解码。

高保护部分包含一个紧随在nframes个高保护块之后的头,nframes是每个音频超帧中包含的音频帧的数量。

高保护块根据UEP类型包含从每个AAC帧开始的一定量的字节。其后跟随着对应于AAC帧的一个8位的CRC校验。

AAC帧的较低的保护字节(没有存贮在较高保护中的保留字节)连续的存贮在较低保护部分中。

4 关键技术

4.1 隐密信息的嵌入

信息嵌入工作选择在图2中量化部分进行。AAC编码中频域经过滤波器组、TNS处理后,需要进行量化之后进行存储,AAC的量化是非均匀量化,在各个频带内的量化采用不同的比例因子,因此量化后的微小差异不会引起该频带的听觉效果。因此可以将每一个采样值的最低位用代表隐密数据的二进制位替换,此方法嵌入和提取信息算法简单易实现,速度快,并且因为嵌入工作是在满足心理声学模型条件下进行的,对AAC音频文件本身的音质问题几乎没有影响。

进行实验的载体信号是一段采样频率为48kHz、PCM编码的单声道wav格式音频信号。在DRM标准中,AAC编码的采样频率为12kHz和24kHz,一个音频超帧的长度为400ms,由5(12kHz)个或者10(24kHz)个音频帧组成,在此选择24kHz。一个音频超帧隐藏20个字节的信息,每个音频帧隐藏2个字节,当每超帧隐藏的信息不够20字节时以0代替。

嵌入信息的基本步骤如下:

(1)将wav文件进行分帧,每帧内的采样点数为19200,因此读取19200个采样点进行下面的处理。

(2)对读取的信号进行减采样,将原信号的48kHz的采样率降到符合标准的24kHz。减采样之后降为9600个采样点

(3)分别对每个音频帧进行编码。读取960个采样点,将其通过滤波器组进行时域到频域的转换。

(4)将滤波器输出的频谱系数通过其他可选模块之后,进入量化器对数据进行处理。信息嵌入工作是在量化的内层循环中完成的,读取两个字节长度的二进制隐藏信息数据流,将其嵌入量化后的频谱系数。如果被隐藏信息的比特位为“1”,则将量化后的频谱值的最低位修改为“1”,反之,改为“0”。若最后一段嵌入信息不足20个字节,则用“0”补齐。同时可先将被隐藏文件的字节数、数据包的总数目、当前包序号、8位CRC校验等信息嵌入到载体二进制数据流中。然后内层循环不断调节量化器步长,直到量化数据满足分配的比特数。外层循环用来放大比例系数频段,尽量满足心理声学特性的要求。由于此过程是在满足心理声学特性要求下完成的,因此难以“听”到隐藏信息。

(5)一直重复以上五个步骤,直到被隐藏的信息全部隐藏完毕,最后通过码流格式器,输出AAC码流到AAC文件。

通过以上步骤可以看出来,第一,对于时间长度固定的载体音频信号,若采样率提高,每帧信号的采样点就增多,则嵌入的信息也会相应增加,因此隐藏信息容量比较灵活;第二,因为是将隐藏信息比特流替换原来的频谱系数的最低位,所以数据嵌入之后,将不会改变原始文件的大小;第三,由于其嵌入过程是满足心理声学特性的要求,所以很难察觉到载密信号的变化。

4.2 隐藏信息的提取

在接收端,如图4所示,首先将接收到的DRM信号经混频电路后从模拟中频455kHz下变频为12kHz,然后将此信号经过PC机的声卡采样(采样率为48kHz),经过模数转换后交由运行在PC机上的第三方的DRM软件接收机(Dream)对信号进行频率校正和信道均衡,并进行解调、解码等处理,得到包含隐藏信息的AAC音频文件。下面以Visual C++ 6.0为平台,开发了基于PC的隐藏信息提取软件。

图4 接收端流程

隐密数据的准确提取是信息提取环节面临的一个挑战。在提取信息过程中,会遇到一种对隐密信息提取存在干扰的情况:

1.传输过程中难免因为信道恶劣产生一些误比特的状况,则会导致有嵌入信息的帧反而通不过校验而被丢弃。

2.没有嵌入信息的普通音频帧也许会因为虚假标识位而通过步骤四的校验,这时会收到无效数据。

图5 提取信息流程框图

其中,前者可以通过引入信道纠错算法解决,这里只说明本文如何解决第一种情况。本方案中,采取“双保险”,不仅在嵌入端和提取端确定标志位的值来表明此帧是否含有隐密信息,同时采用CRC校验来判断此标志位是否是虚假标志位,在提取端,将每帧提取出来的11个字节的隐藏信息进行CRC校验,产生8比特的CRC校验位,并判断是否和提取出来的CRC校验位相等,通过此双重保险的做法,能更有效更准确的提取信息,防止误读。提取过程基本上是嵌入过程的逆过程,图5给出了提取信息流程的框图。

以上提取过程框图的每一步具体做法如下:

(1)初始化。初始化包括初始化解码器,初始化与解码器相关资源和缓存,为解码器分配存储空间。

(2)载密文件由超帧组成,每个超帧都有相对应的头信息,这些头信息是由SDC传送的。读取这些头信息并赋值给相应的参数。超帧头中包含当前音频超帧的字节长度,声道配置模式,AAC编码采样频率,SBR标识位。其中,声道配置方式有单声道,立体声,联合立体声,较高保护部分的字节长度。SBR标识位标识是否采用了SBR技术,SBR技术一种频带恢复技术,它是一种在低比特率情况下获得完全音频带宽的音频编码增强方法,在DRM系统中,往往将其与AAC编码联合使用。

(3)按照头信息中指定的超帧长度,读取长度为iTotalFrameSize个字节的载频信号交给函数DecASF进行解码。解码过程几乎和编码过程相似。

(4)HaveInfo为标志位,由DecASF函数对其进行赋值。若其值为“1”,则表示当前音频超帧含有隐藏信息;反之,若其值为“0”,表示当前音频超帧没有隐藏信息,重新从步骤2开始,读取下一个音频超帧头进行解码。

(5)若判断当前音频超帧含有隐藏信息,则将读取出来的20个字节的隐藏信息进行CRC校验,若CRC校验正确,则解析提取出来的隐藏信息;反之,则以当前音频超帧不含隐藏信息的情况来处理,即从步骤2重新开始。

(6)若CRC校验正确,则开始解析当前提取出来的隐藏信息。隐藏信息的存储格式如下。

图6 超帧中隐藏信息格式

·last_len:存储最后一包隐藏信息长度。

·info_total_count:存储数据包总数,其中不包括重复的数据包。

·cur_count:存储当前包序号,由于隐藏信息内容不一定是按照原始顺序隐藏的,所以需要此参数确保提取信息按原始顺序存储。

·fn_extract_info:存储隐藏文件后缀名。

·hideinfomation:存储隐藏信息比特流,12个字节为一组,每组第一个字节为标志位,如果成功提取出一包数据,将相应位置的标志位设为“1”,表示该位置的隐藏信息已经提取出来,以防重复提取;反之,若为“0”,表示该组隐藏信息未提取。

·suc_count:计数器,存储成功读取数据包的数目。每成功读取一包数据,suc_count加1。

首先以指定的后缀名创建文件。其次根据cur_count判断hideinfomation中相应位置的标志位是否为“1”,若不为“1”,则判断当前包序号cur_count是否等于数据包总数info_total_info,若不等,则将11个字节的隐藏信息内容全部提取并存储,同时将hideinfomation中相应位置的标志位置为“1”,suc_count加1;若相等,则根据last_len指定的长度提取相应长度的信息并储存。

(7)判断suc_count是否等于info_total_count,若相等,则表示信息提取完整,提取信息工作结束;若不等,继续从步骤二开始。

5 结束语

在Visual C++ 6.0开发环境下,开发了基于PC的隐藏信息提取软件。该方案已经调试通过,并用软件发射机及第三方的接收机进行验证,在音质及运行效率等方面满足要求。

目前,此系统还存在一些不足。首先,短波信道的传输条件相对恶劣,会存在较为严重的误码和丢包状况。为保证信息的正确传输,当前的处理措施是通过反馈信道请求重传,大大降低了信息传输的实时性。一个改进方案是将隐藏信息比特流先进行某种编码,如喷泉编码[3],然后再进行嵌入工作。其次,该方案能容纳的信息量较少,不适合大量数据流的隐密传输。若音频信号采样率为44kHz,每960个采样点嵌入20个字节的信息量,则嵌入率为4kHz。如何有效提高可嵌入的信息容量,是未来改进的重要方向。

参考文献:

[1]李栋.数字多媒体广播[M].北京:电子工业出版社,2010.

[2]杜伟韬,杨占昕.AAC编码器的滤波器组——原理与实现[J].北京广播学院学报(自然科学版),2005,3.

[3]张乐伟,戴葵.DRM发射机的设计与实现[D].哈尔滨工程大学,2008.

[4]A Shokrollahi.Raptor codes[J].IEEE Trans.on Information Theory(S0018-9448),2006,52(3):2551-2567.

猜你喜欢
字节频谱信道
No.8 字节跳动将推出独立出口电商APP
信号/数据处理数字信道接收机中同时双信道选择与处理方法
一种用于深空探测的Chirp变换频谱分析仪设计与实现
No.10 “字节跳动手机”要来了?
轻量级分组密码Midori64的积分攻击
一种无人机数据链信道选择和功率控制方法
动态频谱共享简述
基于导频的OFDM信道估计技术
遥感卫星动力学频谱规划
一种基于GPU的数字信道化处理方法