为了满足无线视频应用的需求,考虑到无线移动设备的有限电量和处理器的能力,根据H.264视频编码的结构特性,提出了一种可分级的轻量级视频信息安全的加密算法,该算法可以任意选择亮度量化变换系数的加密数量,同时对运动矢量符号进行加密。
一、已有的视频加密算法
将视频数据看作普通的二进制数据直接加密的方法,加密与压缩两者不具有相容性,这类算法称为直接加密算法,密码算法采用如DES、AES、RSA等现代密码体制来加密。包括对原始数据的直接加密和对压缩后的数据进行的加密。采用现代密码学体制算法直接加密视频数据,具有较高的安全性,但由于加密数据量大,加密效率低,也带来了高计算复杂度和视频格式不相容的缺点。因此,这种算法更适合用于多媒体数据存储等安全性要求很高、实时性要求不高、可操作性要求低的应用中。
在视频压缩编码过程中加密部分视频数据,加密和压缩具有兼容性,这类算法称为选择性加密算法。通过选择加密视频数据,可以降低加密的数据量,提高加密效率。根据视频压缩编码原理来选择关键数据进行加密,可以使得安全性和压缩效率达到更好的平衡。例如对I帧进行加密,加密数据格式信息,对DCT系数的加密以及运动向量的加密。提出对多媒体的频率域数据选择性置乱和加密的一般性方法。Wen等提出了使用定长编码FLC(Fixed Length Code)和变长编码VLC(VariableLength Code)同时进行加密的方法。可感知加密方法,即加密过程降低数据的质量,但是数据内容仍然可以理解,这类加密方法适合商业的视频应用。本文针对视频无线应用的特点,提出了一种可分级的轻量级视频加密算法,弥补了现有加密算法的不足。
二、一种可分级的轻量级视频加密算法
1、加密算法要求
由于视频数据具有编码结构特殊、数据量大、实时性要求高等特点,传统的数据加密算法,很难满足实时性要求,而且会改变数据格式等,这就要求对多媒体数据采用特殊的加密方式。加密算法在实际应用还需满足以下几个条件:
1)安全性和不可见性
安全性和不可见性是视频信息加密的最基本要求。通过加密使得原视频数据被置乱确保视频信息的安全,即使视频信息被截获了,所能看到的图像也是混乱而不可理解的。不同应用场合对安全性的要求也是不同的,对于安全性级别要求较高的政治军事等应用场合,就必须设计安全性极高的加解密算法增加破译的难度。然而对于普通的商业应用,÷般认为当破译密码所需付出的代价大于直接购买多媒体数据版权所需的代价时,密码系统是安全的。一般安全性需要的高低和处理的复杂度是成正比的。
2)压缩比不变性
压缩比不变性是指加解密前后的数据量保持不变。由于存储设备和网络带宽的限制,视频数据必须经过压缩后再进行存储和传输,故压缩比是视频压缩标准中一个重要的性能指标。在设计加解密算法时,应考虑到加密后对压缩码流的影响。使用具有压缩率不变性的算法加密,在存储过程中不改变数据占用的空间,在传输过程中保持传输速度不变。因此,理想的多媒体加密算法应该具有压缩率不变性。然而,加密和压缩本身是矛盾的。在编码的过程中设计加密算法,往往影响视频的压缩效率。视频加密技术应该尽可能的保证压缩比不降低。
3)实时性
为了视频信息能够实时传输和存取,加解密算法的使用不能给传输和存取带来过大的延迟。如果加解密算法的使用给传输和存取带来的延时过大,那么解码器就无法顺畅地解码,这样也就失去了视频传输的意义。因此,要求加解密算法不能过于复杂,具有快速性的特点,这样可以满足多媒体数据的实时性要求,保证加解密过程对编解码时间的影响应尽量小。
4)安全等级可控性
通过调节加密参数,可以较好的控制加密强度。设计加密方案能够自适应改变加密强度来满足不同的应用场景。
2、加密算法描述
由于无线移动设备有限的电量和处理器的能力,设计的加密方案要尽量加密最少的数据量以保证更好的压缩效率和更低的代价。因此安全的选择加密方案需要满足两个要求:被选择加密的数据流要对视频内容的可理解性具有高度敏感性,同时被选择的数据应该与其他剩余信息独立。加密方案根据视频压缩编码原理和视频本身的数据格式来选择加密,这样不用处理大量数据,只处理关键数据,对安全性和压缩效率可以达到更好的平衡。在加密过程中,需要尽量简化加密算法,减少运算量,减小密钥的开销,降低对计算机有限资源的占用,减少因加密造成的延迟,避免时间的过多耗费。
本文提出了一种可分级的轻量级视频信息安全的加密算法,该算法可以任意选择亮度量化变换系数的加密数量,同时对运动矢量符号进行加密。在视频编码的过程中,根据加密安全级别的不同需求,有选择地对熵编码前的亮度量化变换系数进行加密。对于输入的视频帧,可以分为帧内编码和帧间编码。帧内编码首先进行帧内预测,然后对预测结果进行变换、量化、熵编码输出,同时将恢复图像作为重建帧,为后续图像进行运动估计的参考。帧间编码则首先通过参考图像进行运动估计,然后对补偿后的残差采用与帧内编码相似的处理。
直接加密DCT变换之前的系数,会对编码效率影响很大。量化是一个有损的变换,在量化之后进行加密,后续的操作不会损失系数信息,可以保证加密后的数值可以得到正确的解密。经过分析,在进行熵编码之前的量化变换系数是解码的关键信息,适合加密,且加密不会过多增加编码后的比特流。因此选择量化变换系数进行加密。加密过程中保持数据格式信息(文件头信息、帧头信息和宏块头
信息等)不变。
此外,宏块是由亮度块和色度块采样组成的。由于人眼对亮度信息较色度信息更加敏感,而且压缩后文件中亮度、色度信息分开保存。而且运动估计过程只对亮度分量进行,色度分量的运动则由亮度分量的运动矢量得到。考虑到图像恢复时可以忽略色度信息而仅使用亮度信息进行恢复,此时对图像中色度信息的加密将完全失去作用。因此可以只考虑亮度信息进行加密处理,以减轻加密运算给编码器带来的负担。
从编码过程来看,宏块要同时进行纹理编码和运动编码。变换量化编码决定了图像的纹理,运动向量决定了运动对象的信息。纹理信息和运动向量信息分别进入熵编码后输出,两者是独立编码的。如果纹理信息被加密,而不加密运动信息,视频的运动轨迹还是可见的,运动对象的外形很容易得到。因此对运动矢量差值的进行加密,为了不增加编码负担,仅对运动矢量差的符号进行加密。
在H.264的视频编码过程中,有四种类型的量化变换系数。帧内宏块4*4和16*16两种模式,帧间宏块的编码模式最终都转化成4*4模式。对于帧内宏块16*16模式,DC系数是一个4*4数组(定义为T1),每个4*4的亮度块中剩余的15个值组成AC系数(定义为T2)。在所有的帧内宏块和帧间宏块的4*4编码模式中,有15个AC系数(定义为T3)和1个DC(定义为T4)。因此,可以建立一个量化变换系数的四元组{TI,T2,T3,T4}。在实际的编码过程中,4*4模式适合图片细节的编码,而16*16模式更加适合平滑区域的编码。在编码过程中,一般4*4模式比16*16模式使用的频率要高。在设计的加密算法中,T4一定被加密,T1、T2和T3适当地进行选择加密。这是因为DC系数独立于其他的AC系数,所以DC系数和AC系数的加密可以相互独立的,也可以进行自由的组合。
一个密码系统由明文、密文、加密算法和解密算法、密钥五部分组成。明文(T)经过加密算法(E)、生成密文(C)、密钥(K)是唯一能控制明文与密文之间变换的关键。分组加密算法包括DES、AES等算法,流密码(序列密码)算法的特点是对各个明文数据进行变时传输,它通过用一个短的密钥产生伪随机序列。分组密码算法和流密码算法相比,分组密码运算复杂,流密码系统操作快,易于实现。
本文采取如下式1)的加密方法,密文是原文和密钥经过异或操作获得的。
T4系数一定被加密,T1、T2和T3可以自由地组合加密,加密进程可以描述如下:
这里kl、k2和k3分别是T1、T2和T3的密钥,α,β,γ分别是选择加密T1,T2,T3用于加密的数域,例如Tl(a):T1[O],r1[1],…,Tl[a -1]。也就是说,算法可以根据加密安全级别和实际的应用需求自适应地调节α,β,γ的值。
然而,在熵编码过程中,零系数的总数量和非零系数的顺序是编码的重要内容。亮度量化变换系数作为熵编码的输入数据,在加密时,如果改变这些值将会对编码器的压缩比产生很大的影响。为了
保持熵编码的统计特性和压缩比不变性,当量化变换系数的值为零时,不进行加密操作。
加密操作后,当密文恰好等于零时,解码器遇到零时,会跳过零值,而不进行解密,这时解码的流密钥将会发生错位混乱。即使授权用户用正确的密钥解密,也会出现解密错误,从而导致了严重的
解码错误。为了解决这个问题,加密算法和解密算法按照如下公式3)的方式实现,I这里Ti和Ci代表第i位的明文和密文,ki是第i位的流密钥。
编码器对每个加密后的密文检测,当发现加密后的密文是零时,用密钥和密文值恢复出原文。这样,在解码器解密非零系数后,当遇到解密之后值为零时,就认为传输来的密文就是正确的明文。
同时,采取如下的算法对运动矢量差的符号进行加密:
用1)式的方法生成伪随机序列PS
三、实验结果
为了评估所提出算法的性能,用不同类型的QCIF序列对提出的算法进行测试。考虑到移动应用的低比特率和低延迟的特点,采用H.264的基本层进行编码。在加密的过程中,没有改变格式的同步信息。这样,任何H.264的播放器都可以解码,但仅有解密密钥的播放器可以正确播放视频流。
1、安全性
加密的主要目的是使得非授权的用户得不到清晰的视频图像,因为可以用两种途径来评估加密的效果,解码后视频的可视质量和客观的PSNR值。我们仅以提出的算法在最小的,中间的以及最大限度三种情况为代表进行测试,使用(α,β,γ,1)四元组来进行表示加密的参数情况。
以各种测试视频序列为例,表1列举各种测试序列在四元组(0,O,0,O)、(O,0,0,1)、(8,7,7,1)和(16,15,15,1)这四种情况下的PSN R值比较。图1显示了foreman和bus测试序列的解码视觉效果图。
加密算法随着(α,β,γ,1)值的增加可以完成更好的安全性能。在网络带宽和处理能力允许的情况下,(α,β,γ,1)的值越大,系统的安全性越高。此外,系统采用了传统的流密码算法进行加密,可以确保算法的安全性。
在实际应用中,本文提出的可分级的加密方案可以根据应用的需求以及要保护数据的敏感程度,来选择不同的安全等级,使得视频图像的不可理解的程度随安全等级的不同而变化。同时,该方法中的各个安全等级依次递增,高安全等级的加密操作包含低安全等级的操作,这样易于在传输过程中动态地改变安全等级,而不会出现由于安全等级的改变,使得应用不同安全等级的数据,在加解密时出现冲突,以致解码端不能正确解密。
2、压缩比
保持实时视频系统中的压缩比,是视频加密算法的一个重要指标,用R来表示压缩比增加率,R=(加密后的文件大小一原始文件大小)/原始文件大小。表2显示了不同视频测试序列在上述四种情况下的加密前后的R值比较。
从比较结果得出,提出的算法使得比特率的增加不大,在实际应用的需求下,通过选择合适的参数可以降低比特率的增加。由于加密算法没有扰乱文件的DCT系数的统计关系,而且加密采取的是位操作,因此可以保持编码长度,使得加密后的压缩文件大小的增加不大。
3、带宽代价
加密后的编码比特率并没有大幅地增加。由于移动设备电源电量有限,算法使用了比快密码速度快而且硬件复杂度低的流密码算法进行加密。而且,编码选取了加密过程中重要的极少部分数据进行加密,因此加密算法的计算复杂度相对较低,可以满足移动视频应用的要求。
“无线应用”(wireless application),是指在无线网络承载的基础上的各种软件应用,可以是大型软件,例如移动办公、电子医疗;也可以是小型软件,如:听歌、看电影、聊天工具等。