由于缺少安全措施来保证多媒体数据的安全性,多媒体用户间传递的信息是有风险的,尤其是通过公用网络(如Internet)处理敏感信息时,那么提供可靠的安全措施是必须的、十分迫切的。近年来,随着混沌理论在安全通信方面得到了广泛的研究,接下来,我给大家介绍一种基于混沌理论的H.264编码的实时加密技术。

一、Logistic原理说明

Logistic映射是一维离散混沌系统,运算速度快,方程反复迭代可以产生较好的混沌序列。产生的混沌序列对初始状态和系统参数极其敏感。Logistic映射的定义为:

基于Logistic映射的混沌实时视频加密技术

其中,控制参数u介于(0,4),x(n)在(0,1)之间,Logistic映射的大量研究已经表明,当u达到极限值,即u=3.5699456时,系统的稳态解周期为∞。当3.5699456<u≤4时,Logistic映射呈现混沌状态,所以为了实现混沌态,在实际应用时,u的取值范围应设定为:

基于Logistic映射的混沌实时视频加密技术

二、H.264编码原理说明

H.264编码器的实现如图所示。

基于Logistic映射的混沌实时视频加密技术

H.264编码器仍然使用变换域预测的混合编码。输入的帧或场Fn以宏块为单位被编码器处理。首先按帧内或帧间预测编码的方法进行处理。采用帧内编码时,其预测值PRED是由当前片中前面已编码的参考图像经MC,运动补偿,后得出的,其中参考图像用Fn-1’表示。预测值PRED与当前块相减,产生的残差块Dn经量化、变化后产生一组量化后的变换系数X,再经熵编码(与解码所需的一些头信息)如预测模式量化参数、运动矢量等,一起组成一个压缩后的码流,经NAL,网络提取层,供传输与存储使用。

三、加密算法设计

1、Logistic混沌序列的产生

用Logistic映射公式对x(n)进行m次迭代,生成混沌序列。

序列产生:

1)取x(i)=0.x(i)1x(i)2x(i)3x(i)4…x(i)k-2x(i)k-1x(i)k,取初值i=0。

2)令m(i)=∑x(i)j,m_av(i)=m(i)/k。

3)对x(i)进行Logistic映射,迭代m(i)次,记录x_record(i)=x(m(i)),令x_record(i)小数点后的位序列为x_record(i)1x_record(i(2))x_record(i)k。在(1)k,范围内,对任意i,若(i-1)%m_av(i)=0成立,记录x_seq,16*i-16+j,= x_record(i)j,令m(i+1)=∑x_record(i)k(m_av(1)=m(1)/(k/m_av(0))i=i+1。

4)重复上述步骤3,至n=128止。

2、视频加密实现

输入YUV,亮度和色差信号,测试序列,把视频图像分成若干N×N大小的块,对每块进行DCT,离散余弦变换,变换和量化,得到DCT量化系数矩阵分别为DCT_COEFF_DC和DCT_COEFF_AC,在输入到输出码流前,用混沌序列对预测模式进行加密,在本文中,选择的加密部分为:

(1)对亮度块预测模式进行加密。

(2)对运动矢量差分值进行加密。

(3)对色度块预测模式进行加密。

(4)对残差块相关信息进行加密。

基于Logistic映射的混沌实时视频加密技术

3、亮度块预测模式加密

本文中主要对帧内预测模式进行加密,对亮度信号而言,预测块P用4×4子块或者16×16宏块的相关操作,4×4亮度子块有9种可选预测模式,独立预测每个4×4的亮度子块,16×16亮度块有4种预测模式,用以预测整个16×16亮度块,色度块也有4种预测模式,类似于16×16亮度块预测模式。

在H.264码流中,对于每个4×4块,用1比特prev_intra4×4_pred_mode标 志 和3比 特rem_intra4×4_pred_mode信息表示预测信息,当pred_intra4×4_pred_mode=1时表示使用最可能的预测模式,pred_intra4×4_pred_mode=0,表示使用参数rem_intra4×4_pred_mode指明的信息,在这里我们对rem_intra4×4_pred_mode为3的比特信息直接进行加密。

对于16×16的亮度模块,其帧内预测模式分别用0~3表示,故可知,在写入H.264比特流中的信息中,其包含2比特的信息,我们可以用Logistic映射产生的位序列元素直接对其进行加密。

4、色度块预测模式加密

对于色度块的预测模式intra_chroma_pred_mode,也有四种情况分别用0~3表示,其采用Exp-golomb的ue(v)方式进行编码,鉴于ue(v)编码的特殊性,为保证格式的兼容,我们不对整个码字进行加密而只是加密其模式1和模式2。由于模式1和模式2的变长码字分别为:010和011,因此在用Logistic映射产生的位序列元素对其进行加密时直接加密其最后一位。

5、MVD(运动矢量差分)的加密实现

MVD采用Exp-golomb的se(v)方式进程编码,代表实际信息的k bit后缀对于任意k个bit的组合都是有效的。在本文中我们用Logistic映射序列直接对该码字的后缀suffix进行加密。

6、CAVLC熵编码加密

CAVLC(基于上下文的自适应的可变长编码),用于亮度和色度残差数据的编码。在CAVLC中,上下文模型的选择主要体现在两个方面,非零系数编码所需表格的选择及拖尾系数后缀的更新。CAVLC编码涉及到,对非零系数数目,TotalCoeffs,以及拖尾系数数目(TrailingOnes)的编码,每个拖尾系数的符号的编码,除拖尾系数之外的非零系数的幅值(Levels)的编码,最后一个非零系数的前零数目的编码,每个非零系数的前零个数的编码。

本文根据H.264 CAVLC加密算法及特征提出了一种基于Logistic混沌映射的实时加密算法。通过基于混沌映射提供的巨大的加密序列,基于编码特征有选择地对编码进行加密,满足了一定的安全性和实时性的要求,且本文提出的算法简单,对视频的压缩比并没有影响。

小知识之H.264

H.264是ITU-T以H.26x系列为名称命名的视频编解码技术标准之一。国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。