您好,欢迎访问三七文档
基于分级的MPEG视频加密技术研究5基于格雷码变换和M序列异或的分级加密方案5.1格雷码和M序列简介①格雷码简介格雷码(GrayCodeorGreyCode),又称作葛莱码,二进制循环码。是1880年由法国工程师Jean-Maurice-EmlleBaudot发明的一种编码,是一种无权码,绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。它在任意两个相邻的数之间转换时,只有一个数位发生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。另外由于最大数与最小数之间也仅一个数不同,即“首尾相连”,故通常又叫格雷反射码或循环码。设格雷码的0和二进制码的0相等,表5.1为几种自然二进制码与格雷码的对照表:表5.1二进制码和格雷码的对应关系对照表Table5.1CongruentrelationshipbetweentheBinarycodeandGraycode十进制数自然二进制数B3B2B1B0格雷码G3G2G1G0十进制数自然二进制数B3B2B1B0格雷码G3G2G1G0000000000810001100100010001910011101200100011101010111130011001011101111104010001101211001010501010111131101101160110010114111010017011101001511111000在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(GrayCode)。它在任意两个相邻的数之间转换时,只有一个数位发生变化。格雷码和自然二进制码之间有一一的对应关系,具有良好的空间遍历性,我们利用这种一对一的映射,在自然二进制与格雷码之间进行相互转换。定义5.1:设二进制码为:B=Bn-1…Bi+1Bi…B0,对应的格雷码为G=Gn-1…Gi+1Gi…G0,则有:111nniiiGBGBB(5-1)我们称(1)式的转换为Gray变换,它是把格雷码转换为对应的自然二进制码,G称为B的Gray码,其中运算“⊕”为模2加法(异或)运算,i=1,2,…,n-2。定义5.2:设格雷码为G=Gn-1…Gi+1Gi…G0,对应的二进制码为:B=Bn-1…Bi+1Bi…B0,则有:111nniiiBGBGB(5-2)我们称(2)式的转为是Gray逆变换,它是把自然二进制码转换为对对应的格雷码,其中i=1,2,…,n-1,B称为G的自然二进制码。②M序列简介M序列是最长周期线性反馈移存器序列的简称,又称最长n级线性移位寄存器序列,是由带线性反馈的移存器产生的周期最长的一种序列。如图5.1所示的是一个非退化的n级线性移位寄存器,可以用如下n次多项式为联接多项式来表征。20120()nniniifxccxcxcxX(5-3)这多项式称作特征多项式,X的值并无实际意义,仅用来指明Ci的值。如果n级线性移位寄存器所产生的序列,周期p=2n-1,那么这个序列就是M序列。设n级移位寄存器的初始状态:a-1,a-2,a-3,a-4,…,a-n,经过一次移位后,状态变为a0,a1,…,a-n+1,经过n次移位后状态变为a-n-1,a-n-2,…,a1,a0。M序列通过线形反馈移位寄存器产生如图5.1所示:图5.1M序列的一般结构模型Fig.5.1NormalmodelstructureofM-sequence可以证明,一个能够生成“m序列”的移位寄存器,其特征多项式必须满足下列条件:1.f(x)必须是即约多项式、即不能分解因子的多项式;2.f(x)是(xp+1)的一个因子,其中p=2n-1;3.对于所有的qp,f(x)不是(xq+1)的因子。可见,如何求出其特征多项式是构造M序列生成器的关键,现已经有很多算法来求解,本文中用了三个不同的M序列作为加密的密钥,由于异或加密后得到的值的位数和原来未加密前的数据仍然保持位数不变,因此加密后的格式保持兼容性。一般来说,M序列的级数越大越安全,我们在选取的时候,应尽量使级数足够大,但是级数太大性能差的电脑运行进来就会慢了,。5.2分级加密方案思想通过前面几章的分析,我们知道,若要保持加密前后MPEG数据格式不变,那么文件头、格式信息和同步信息等就不能加密,只能加密具体实际视频信息的MPEG数据。其中I帧编码采用经典的类JPEG的编码方式进行编码,I帧决定了整个视频的纹理信息;而B和P帧的帧间编码采用运动预测和运动补偿进行编码,产生预测误差和运动矢量,运动矢量决定了整个视频的运动对象信息。因此只有同时加密纹理信息和运动矢量,才能保证加密后视频数据的安全。于是,我们分别从DC系数、AC系数和运动矢量来考虑着手设计能分级的选择加密算法。本文分级加密思想是基于选择视频关键信息的多少来实现的,利用格雷码变换良好的空间遍历性和速度的易操作性,对加密前I帧图像进行DCT变换前的宏块中的像素用格雷码进行空间域上的置乱,利用具有随机特性的M序列对量化扫描后的系数符号位及预测补偿后的运动矢量MV符号位进行异或运算,这样就改变了视频数据在空间和时间上高度关联性,达到加密强度高,加解密速度快并且可分不同密级的加密目的。图5.2所示为加密位置选择示意图:预测误差PB帧I帧加密前的IPB视频流离散余弦变换运动补偿预测系数量化获得运动矢量差分编码差分编码行程编码Z字型扫描哈夫曼编码加密后的视频流③对8X8宏块加密①对DCT系数符号位加密②对MV符号位进行加密图5.2加密位置选择示意图Fig.5.2Schematicdiagramofselectedpositionofencryption本方案根据安全性的不同级别,分为三种安全级别的加密算法:第一级:加密DC和AC系数的符号位;第二级:加密DC和AC系数的符号位和MV符号位;第三级:加密DC和AC系数的符号位和MV符号位并对DCT变换前的宏块进行空域置乱。5.2.1第一级加密方案第一级加密方案是本文分三级加密最基本的加密部分,它仅加密“Z”字型扫描后的DC和AC系数符号位,加密位置如图5.2中的①所示。数据经DCT变换后,8×8块的左上角集中了大部分的低频分量,经过量化后,许多DCT系数变成0。其中F(0,0)(即第一行第一列元素)代表了直流(DC)系数,即8×8子块的平均值,要对它单独编码。由于两个相邻的8×8子块的DC系数相差很小,所以对它们采用差分编码DPCM,可以提高压缩比,也就是说对相邻的子块DC系数的差值进行编码。8×8的其它63个元素是交流(AC)系数,采用行程编码。量化输出的结果是根据zig-zag顺序线性排列的:〈DC,AC1,AC2,AC3,......AC63〉,DC表示空间块的平均亮度,AC包含了图像的细节信息。假定视频数据为V,量化后由8×8的宏块组成,宏块设为mb,表示为V={mb1,mb2,...mbi,...mbn},每个mbi由64个DCT系数组成表示为mbi={DCi,AC1,AC2,AC3,...AC63}。由于对DC系数进行差分编码,所以我们对它的编码后的差分值进行加密,这里设DC系数差分符号序列为:Sd=Sd1Sd2Sd3…Sdn而对AC系数来说,编码后产生的符号1为行程,符号2为AC系数值Level,所以在这里我们选择了加密它的系数值符号,设AC系数值的符号序列为:Sa=Sa1Sa2Sa3…San①对DC系数的加密首先,我们对DC系数进行加密,算法如下:A、用一个M序列生成器生成一串伪随机序列kd1kd2...kdn作为加密DC系数符号位的密钥kd;B、读取DC系数的差分符号位序列Sd1Sd2Sd3…Sdn;C、把密钥Kd和符号序列Sd逐位执行异或操作,kd⊕Sd=(b1⊕Sd1)(b2⊕Sd2)…(bn⊕Sdn)=Ekd(Sd);D、输出加密后的数据,并把加密后的数据替代原数据进行下步编码操作。对DC系数的解密过程,由于本次加密用的是序列加密的加密方式,进行的是异或运算,那么,加密后的数据和原密钥再进行一次异或运算就可以恢复出原数据,我们把加密后的数据用原加密密钥kd再执行一次异或运算,就可解密出原符号位的比特流,公式表示为:Sd=Ekd(Ekd(Sd))下面我们对只加密DC系数的效果和原始视频进行对比,本文实验视频格式为分辨率352×288、帧速率25fps的MPEG2视频流nba.mpg,其中(A)图为原始视频流的I帧图像,(B)图为只加密了所有DC系数符号位的I帧加密效果,从人眼的视觉来看,加密后的视频轮廓清楚,加密效果如下图5.3所示:(A)原始视频I帧(A)OriginalIframe(B)只加密DC系数符号位的帧(B)EncryptingallDCcoefficientsofIframe图5.3原始帧和加密DC系数后的对比Fig.5.3ComparisonofOriginalIframeandEncryptingDCcoefficients②对AC系数的加密算法如下:A、用另一个M序列生成器生成一串伪随机序列ka1ka2...kan作为加密AC系数符号的密钥ka;B、读取AC系数的符号2的值,也就是AC系数Level值的符号序列:Sa=Sa1Sa2Sa3…San;C、把密钥Ka和符号序列Sa逐位执行异或操作,ka⊕Sa=(ka1⊕Sa1)(ka2⊕Sa2)…(kan⊕San)=Eka(Sa);D、输出加密后的数据,并把加密后的数据替代原数据进行下步编码操作。对AC系数的解密过程和DC系数一样,把加密后的数据用原加密密钥ka和加密后的数据再执行一次异或运算,就可解密出原符号位的比特流,公式表示为:Sa=Eka(Eka(Sa))加密效果如图5.4所示:(C)原始视频I帧(C)OriginalIframe(D)只加密AC系数符号位的帧(D)EncryptingallACcoefficientsofIframe图5.4原始帧和加密AC系数后的对比Fig.5.4ComparisonofOriginalIframeandEncryptingACcoefficients加密数据也是用nba.mpg视频流,其中(C)图为原始视频流的I帧图像,(D)图为只加密了所有AC系数符号位的I帧加密效果,从人眼的视觉来看,加密后的视频细节变模糊,但整体图像完全可以理解。③对DC和AC系数同时加密对DC和AC系数同时加密,主是对DC和AC系数同时分别进行各自的加密,也就是对前面的①②的步骤同时进行操作,这就是本文的第一级的加密方案,其加密效果如图5.5所示:(E)原始视频I帧(E)OriginalIframe(F)加密DC和AC系数符号位的帧(F)EncryptingDCandACcoefficientsofIframe图5.5原始帧和加密DCAC系数后的对比Fig.5.5ComparisonofOriginalIframeandEncryptingDCandACcoefficients(E)图像为原始视频I帧,(F)图像为加密DC和AC系数的加密效果。从加密DC和AC系数的效果来看,图像已经变得很模糊了,但是由于没有加密运行矢量,所以还能看到物体运动的大概细节。只加密DC和AC系数符号,系统加密时间很少,并且加密后的数据量不会增大,实用于低级别的实时的,运算能力比较弱的视频安全保密场合,比如现在3G手机的实时视频聊天的加解密等,别人没有正确的密钥,就不会得到正确的解密。此类应用可以采用本方案来进行加密。5.2.2第二级加密方案本级加密方案是在第一级加密的基础上,再增加对运动矢量MV的系数符
本文标题:分级视频加密方案
链接地址:https://www.777doc.com/doc-3746456 .html