一种基于高效视频编码的选择性混合加密算法
2018-02-20
(哈尔滨工程大学信息与通信工程学院,黑龙江哈尔滨150001)
高效视频编码(high efficiency video coding,HEVC)[1]又称H.265,是最新的视频编码标准。相比其前身H.264/AVC[2],HEVC支持超高清分辨率的视频,在相同视频质量上其可提供2倍的数据压缩率,或在同样比特率下可大幅提高视频质量。鉴于此,越来越多的多媒体视频运用或系统采用HEVC作为视频编码解码的标准。
随着互联网的不断发展,视频在社会生活各层面广泛应用,其安全性也愈发受重视,视频加密技术应运而生。视频加密算法可分为全部加密算法与选择性加密算法[3]。全部加密算法将视频文件看作数据,使用传统加密算法,如采用高级加密标准(advanced encryption standard,AES)[4]加密完整的视频流,这种算法计算复杂度高、耗时长,且易使加密后视频与标准码流格式不兼容。选择性加密算法则通过对视频数据中的关键信息进行加密,效率高且易保持兼容性,目前已逐渐成为视频加密算法的主流研究方向[5]。根据加密和 解密过程中使用的密钥是否相同,加密算法又可分为对称加密算法(symmetric cipher)和非对称加密算法(asymmetric cipher)。对称加密算法开源且算法相对简单、高效快速、加密强度较高,因此在信息安全领域得到广泛应用。根据加密数据的处理手段不同,对称加密算法可分为分组密码(block cipher)和流密码(stream cipher)。分组密码是将明文分为固定长度的比特组,即“块”,通过对称密钥对每块进行固定加密变换。其中确定性算法分组密码将明文消息编码表示的数字序列划分成固定大小的组,在密钥的控制下对各组分别进行加密变换,从而获得输出数字序列。目前常用的分组密码有AES、数据加密标准(data encryption standard,DES)[6]等,分组密码由于其分块加密的特性,适用于大容量数据加密。但DES由于密码长度有限易于被暴力破解,后来针对每个数据块进行3次DES加密,形成DESede,其加密性能大为提高。
鉴于以上分析,兼顾高效视频编码(HEVC)压缩率高、高级加密标准(AES)与DESede算法混合加密安全性及选择性加密的兼容性等特点,在HEVC编码结构的基础上,编码读取YUV视频且对每一帧的Y,U,V分量数据分别采用AES或DESede算法进行混合加密,以保证加密方法的兼容性与安全性。
1 加密算法
1.1 YUV
YUV是一种颜色模型,基于YUV的颜色编码是流媒体的常用编码方式,可作为彩色图像信道的一部分来使用[7]。YUV在编码彩色图像或视频时考虑人类感知,允许色度分量的带宽减少,相比RGB色彩空间,其能让传输错误或压缩效应更有效地被人类的感知所掩盖。
YUV色彩空间定义一个亮度分量Y和2个色度分量U与V,其中亮度分量Y和色度分量U与V是分离的,Y分量表示灰度信息,U,V分量分别表示图像色彩和饱和度。常见的YUV编码格式有YUV444,YUV422和YUV420,由于人类视觉的感知特性,色度分量比例减少并不会对视觉感知产生太大影响。
1.2 AES加密算法
高级加密标准(AES)是2001年由美国国家标准与技术研究所(NIST)提出的电子数据加密规范。AES算法作为Rijndael算法的一个变体,其加密块固定为128位,密钥长度可以是128,192或256位。密钥长度决定加密轮数,128位密钥的加密轮数为10轮,192位密钥的加密轮数为12轮,256位密钥的加密轮数为14轮[8]。随着加密轮数的增大,加密强度增强,安全性提高,计算的复杂度亦提高。图1所示为128位加密流程框图。每128位的明文分为一个明文块,将明文块按列主序组成一个4×4的矩阵,每轮加密包括固定的4个步骤:字节替换(sub bytes);行左移(shift rows);列混合(mix columns);轮密钥加(add round key)。其中第一轮只进行轮密钥加,最后一轮没有列混合,每一轮加密得到的结果,称为状态(state)。
图1 128位AES加密算法流程框图Fig.1 Flow diagram 128 bitAES encryption algorithm
字节替换即利用AES定义的S盒将状态中的元素通过查表替换为S盒中的元素,规则是将状态字节的高4位取为行,低4位取为列,取行列值对应S盒中的元素替换当前元素。将状态矩阵循环移位进行行左移,其中第一行位置不变,第二行左移一位,第三行左移两位,第四行左移三位。再把行左移后的矩阵和系数矩阵相乘进行列混合,最后将每轮的密钥与状态矩阵进行异或操作,完成一轮加密。AES算法仅使用运算-乘法(*)和异或(⊕),加密的核心步骤是列混合,即在伽罗华域(GF)(28)上实行多项式间的除法运算[9],如
其中0≤c≤3。
1.3 DESede加密算法
DES将数据每64位分成一组进行处理,其中有效密钥长度为56位,8位为奇偶校验位。在加解密过程中,将64位明文打乱重排,分作32位的左右两组,根据密钥进行16次非线性变换。多轮的混合操作与密码交换使明文和密钥完全融合,成为一个不可逆的算法,具有较高的安全性[10]。变换公式如
其中:Li,Ri分别为左右两组数据;1≤i≤16别为;Ki为密钥;f为用于加密的非线性函数。
f函数首先将每组的32位扩展为48位,再分别与子密钥进行异或,将结果拆分为8组,每组6位,再利用S盒做替换,最终根据逆选择置换表进行逆初始变换,得到分组的密文。子密钥则是将56位有效密钥打乱排列后重新分为两组,进行循环左移变换得到,其公式如
其中:Ci和Di为打乱后的两组密钥;Si为循环左移变换,在i=1,2,9,16时,Si循环左移1位,取其他值时则循环左移2位。随着超级计算机的出现,计算能力大大提升,56位密钥难以抵挡强力攻击。
为解决DES密钥过短的问题,DESede使用3组DES密钥K1,K2和K3,每组密钥均为56位,以提升加密能力,其加密算法如
其中:C表示密文;P表示明文;EK()和DK()表示加密解密过程。其加密算法原理如图2。对明文先用密钥K1加密,再用密钥K2解密,最后用密钥K3加密。3个密钥相互独立,加密强度最大时,3个密钥互不相同,相当于用168位的密钥进行加密,虽仍易受到中间相遇攻击,但需2128步才会被攻破,安全性得以提高。在对安全性要求不高的情况下,令K1=K3,此时密钥为 112位[11]。当K1=K2=K3时,DESede算法退化为DES算法。
图2 DESede加密算法原理Fig.2 Principle of DESede encryption algorithm
1.4 混合加密算法
文中选取128位AES算法与112位DESede算法。相较而言,DESede算法的计算耗时比AES算法要长,而Y的数据量一般比U,V的数据量大,故选择用AES算法对Y分量加密,用DESede算法对U,V分量加密,由此两部分构成加密混合加密算法。混合加密算法原理如图3。在HEVC编码器中,对读入的YUV文件每一帧分别调用进行加密。Y,U,V分量分别存储,其中Y分量采用AES算法(加密算法1)加密,U,V分量采用DESede算法(加密算法2)加密,再对加密后的Y,U,V各分量进行HEVC编码,最终得到加密视频。由于采用对称加密算法,加密后的数据格式保持不变,播放器能够正常播放未解密的视频,兼容性得以保证。
图3 混合加密算法原理Fig.3 Principle of hybrid encryption algorithm
2 实验结果与分析
实验视频序列为akiyo,football和foreman,采用的配置文件为encoder_lowdelay_main.cfg,量化QP参数为30。测试序列的实验平台内存为4.00 GB,CPU为Inter(R)Core(TM)i7-6560U CPU@2.20 GHz。
针对3种视频序列akiyo,football和foreman,分别采用加密Y分量、UV分量及混合加密3种算法对其进行加密,其第10帧加密结果如图4。图中:(a)~(d)为akiyo视频序列;(e)~(h)为football视频序列;(i)~(l)为foreman视频序列。从图4可看出:只加密Y分量时,图像的基本信息得到很好的隐藏,但色彩比较单一,纹理不复杂的区域还可看出轮廓;仅加密U,V分量时,色彩信息得到隐藏,视觉体验不佳,但可看到基本的视频信息;进行混合加密时,原图的基本信息得以隐藏,加密效果良好。
图4 加密算法结果Fig.4 Results of encryption algorithm
视频序列加密前后的峰值信噪比(PSNR)可表征加密算法的安全性,PSNR越小,加密算法安全性越好。PSNR定义如下
其中:I(i,j)表示原始图像像素值;I′(i,j)表示加密后图像;M,N表示图像尺寸;I(i,j)max表示信号的峰值。对式(5)取对数,将PSNR值换算成标准单位,dB。
表1 3种方案下视频序列加密前后的PSNR值,dBTab.1 PSNR of video sequence values before and after encryption under three schemes,dB
计算不同方案下3种视频序列加密前后的峰值信噪比(PSNR),结果如表1。从表1可看出:单纯加密U,V分量对PSNR值的影响不大,加密效果不理想;单纯加密Y分量的PSNR值出现减小,但降低幅度不大,平均降低10 dB;混合加密的效果最佳,PSNR值最小,降低幅度最大,平均降低18 dB。说明本算法具有良好的感知安全性。
3 结 论
传统视频加密方法计算量大且无法保证兼容性,提出一种基于HEVC的选择性混合加密算法,以HEVC编码器中读入的YUV视频帧数据为加密对象,用AES算法对Y分量加密,DESede算法对U,V分量加密的混合加密算法。由于HEVC编码的高效性,加密的数据量减小,从而可减小其计算量。分别采用加密Y分量、UV分量及混合加密3种方案对3种视频数据akiyo,football和foreman进行加密。结果表明,提出的混合加密算法兼顾兼容性与安全性,且在其中一个算法被攻破的情况下,还能保持视频部分信息的加密状态。基于HEVC的选择性加密算法今后还需在以下方面深入研究:
1)采用其他加密算法,如混沌加密等进行加密处理;
2)将HEVC编码器中的DCT系数、熵编码算法等与YUV加密结合起来,考虑对多个位置进行加密。