MPEG是活动图像专家组(Moving Picture Experts Group)的缩写。根据MPEG2视频编码过程和加密过程的不同,主要分成三大类算法:

MPEG2视频直接加密算法、MPEG2视频选择性加密算法和MEPG2视频DCT系数加密算法。

MPEG2视频直接加密算法:

MPEG2直接加密算法是直接将视频看成二进制数据进行加密,如图所示:

详解基于MPEG2的三种视频加密算法

其中M代表了原始的视频流,K表示密钥,E表示编码加密后的视频数据。这种加密直接加密压缩的视频流数据,这里用DES进行加密实验。DES算法为密码体制中的对称密码体制,明文按64为进行分组,密钥长64为,密钥事实上是56为参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。理论上MPEG2视频直接加密算法有极高的安全性,DES算法有极高的安全性,它有56位长的密钥,而其穷举空间为256,要想破解攻击,如果一台计算机每秒检测1亿个密钥,需要23年的时间,这基本上是不可能破解的,到现在仍然没有一个有效的攻击手段,但是与安全性相对应的是加密的繁琐性,用DES算法加密视频需要大量的时间,这与视频本省的价值很难成正比。

DES算法简单概述,如图所示:

详解基于MPEG2的三种视频加密算法

假设输入的明文数据是64比特,请参考下图中详细的复述过程:

详解基于MPEG2的三种视频加密算法

MPEG2视频选择性加密算法:

MPEG2视频选择性加密算法是根据MPEG2视频编码特性的加密方法为主要方向,总体上是对视频的部分块进行加密,其方向大致分为三个方向:基于IPB帧结构特征的加密算法,仅加密头信息的方法和SECMPEG加密方法。

(1)基于MPEG2视频帧结构的选择性加密算法,最早提出的加密思想仅仅加密1帧,因为1帧包含了大量的视频信息,P帧和B帧主要是针对1帧进行预测的,如果加密了1帧会直接影响P帧和B帧,这也是算法的主要思想。之后有Agi和Gong研究证明,IPB帧的帧间相关性主要是由于P帧和B帧中的I-block所决定的,但只加密1帧的思想没有考虑到I-block的加密,因此这种仅加密1帧的视频加密算法是不能确保视频信息的安全的。在这之后也有人提出将二者同时加密的加密算法,这种算法保证了视频数据的安全性,但是由于完成这种算法的操作过于复杂,而且计算量很大使得视频加密算法的时效性很差,所以不满足视频加密的要求。同时也有人提出提高视频序列中1帧效率的方法,但是与上面的方法有着相同的不足之处,而且这种加密算法会明显增加视频加密后的数据量影响了视频的压缩率。

(2)基于加密头信息的方法就是将头文件信息金加密,使其变为随机序列,然后放回到原来的我i遏制,由于改变了视频序列的头文件信息使得接收方在不知道密钥时不能得到视频原有信息,从而实现视频加密。而且由于视频序列中头文件信息很少,而且可以很容易的进行加密操作,对相应的加密算法要求较低,并且计算复杂度很低,可以快速实现加密过程,并且不改变视频的压缩比。

(3)类似MPEG比特流算法。有meye人和Gadegast设计的一种新的似MPEG比特流,称之为SECMPEG。这种算法思想有很好的兼容性,可以根据不同级别的安全要求进行相应的设计,但是存在了一个相对来说比较明显的漏洞,这种类似MPEG比特流不能与MPEG格式兼容,需要相应解密器才能够实现。

MEPG2视频DCT系数加密算法:

MPEG2视频DCT系数加密算法是由Tang提出的DCT数据置乱算法引申出来的。在MPEG视频编码过程中使用DCT变数将视频数据有空间域转换到频域中,尽量去除数据的自相关性。而这种DCT系数加密算法的主要操作就将MPEG视频编码的得到的频域数据进行相应的加密操作,其加密方式主要包括以下几种方法:

1、保留直流系数不便,置乱其他的频域系数。

2、置乱所有的频域系数。

3、将直流系数分散保存,然后置乱其他的频域系数。

4、将多i个直流系数保存,然后整体打乱,置乱算法有频域系数。

但是将DCT系统数进行置乱后的结果是改变了能量大小排列,违背了之字型结构扫描的能量序列,导致加密后的视频的压缩比降低。在这之后Tosu等人对Tang的算法进行了改进,将64个DCT系数按照频带划分为3段,可以根据安全性和压缩比要求的不同,对不同的段置乱加密的加密算法,而且其效果有了很好的提升。