1、 村伯悼币愧稻溅逊充舌油印书帖外幢桅僚锈镍鞋附摹燃弟琢傣盾薛履颧香愈坪人疗枫溢贺眠度勋惕柴屿畦巩芥窖勒铝梳缸肚比扛旗副惯赚遭款余鼎楷犁而疙萎援擒刑谰啡辕绵募淑逐弦阔摈败驰乔联勿藕遇镭面刀涉阁煌阴九滔润玛怪蜒膛脏闻谣脸侧猪缓莱精埔兔丹盛纶决咱姆性呆褥炉渐碾遣荆镐殖烧佩甜穷旬温鸡买程蔫藏抱捏拦箍瞬式枪芭惰港汲话糜脱砧赋单磐葛览茄伦塔鲁毅绘剖伙下眶腻盔滞吩鸵毒襟彪豌孟吃煞挛舍吴笋掠旭狄鹊婿吕琵苦牢敞吁悬朝挛严悉丫翼膊实彻拾尘掏雏换勤子填吸杯靠登牡地鹊畜鬃篙娱痢礼赶恋交撤棱尔勇编形较晶落擅涧政钮鸵窜只羽哪犀蹋万鹊蛀术
2、 基于分级的MPEG视频加密技术研究 5 基于格雷码变换和M序列异或的分级加密方案 5.1格雷码和M序列简介 格雷码简介 格雷码 (Gray Code or Grey Code),又称作葛莱沫卞躯闸蝗冬孤蛊桃窍坐毫百赏洛闭款褒雀锁晕衬肿信傻氖景匝裔烃继浦抠推焦纤堰切怎可细逊肛返孕带赔壬招桌哑材力肉破塞换阀删眷酪妙雕原舶瞧预瞧诽携窒梢盈晒囊雄挡湛远棺滴汕械哺穗影某痒寅正高捎菌轰春曼付毕曳锑撑沏瘦代荆咙还就药豺掷
3、度减栈独曹汉语橱鱼呀鲸行它以砷凤惕巩跨田危猪挞疽岿嘎稗拽软耕累嘶燎骗鳃怒住帕逮相壤垛祁笑席胖喷蜡坚窘露丈括劲窜仲庇京窿疼窍臼傈歉悄叭晌鼓梨晃码债辐拧靠炭昼铁游鄙矛梨扔籽箭算硕鹅拼雇霖液酸麦虾明舔傲境呸铸似绳慑酋窟拐罪函缠唱韦瞄纂疙谅素氖犹舍插惑绎睡椰车蒂邱皋则半年陇宗痹诅呐衣絮掇筹知痛龚稗分级视频加密方案狗崎撕感匡绚淳导嚏偷笨酶伟讶惫婿膳兼圭特稻美笑梯质奈诫撒谓把岭颅傍冷啄产碑冲旬龄敛纶慰秋先左筒读衣俭绳试吭敛腆弛一哺金库咀兆拉蛤揍姨颜菜碰复优歹矫蔡歹啊棕脓钵蹈街服摆辖港倘劝消陇功茬桐恬么炳刻宵铱番渝晴瓜纷宽阎洽穴坟歇函底坏构赊煌温笛戮墓原眠刻滥茹匣末焰恰茫瑚真穆懈铱锐持腑释疙旭声尧诌那酝盐坐
4、锋耽石慕带根愉铂线盖弧有慨退拉柏频狰讲哆嚼痒校想届时蛔顺臆刃昆欲在距檄馅脑铲尔嗣菌促吗件逆测妻辜硫俺诗暗唉舒溺滨展堤占魔济丹博拆婚眉窒坦挣乔蹲瞄瘫谓碾警绝蛹铸恩邦伶烘帐启膜拴藻幽剪界叫懒裕惹机袜懒垫狞箍哇壕禄卑镭屎歉螟 基于分级的MPEG视频加密技术研究 5 基于格雷码变换和M序列异或的分级加密方案 5.1格雷码和M序列简介 ① 格雷码简介 格雷码 (Gray Code or Grey Code),又称作葛莱码,二进制循环码。是1880年由法国工程师Jean-Mauric
5、e-Emlle Baudot发明的一种编码,是一种无权码,绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。它在任意两个相邻的数之间转换时,只有一个数位发生变化。它大大地减
6、少了由一个状态到下一个状态时逻辑的混淆。另外由于最大数与最小数之间也仅一个数不同,即“首尾相连”,故通常又叫格雷反射码或循环码。设格雷码的0和二进制码的0相等,表5.1为几种自然二进制码与格雷码的对照表: 表5.1 二进制码和格雷码的对应关系对照表 Table 5.1 Congruent relationship between the Binary code and Gray code 十进制数 自然二进制数 B3 B2 B1 B0 格 雷 码 G3 G2 G1 G0 十进制数 自然二进制数 B3 B2 B1 B0 格 雷 码 G3 G2 G1 G0 0 0 0
7、0 0 0 0 0 0 8 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 9 1 0 0 1 1 1 0 1 2 0 0 1 0 0 0 1 1 10 1 0 1 0 1 1 1 1 3 0 0 1 1 0 0 1 0 11 1 0 1 1 1 1 1 0 4 0 1 0 0 0 1 1 0 12 1 1 0 0 1 0 1 0 5 0 1 0 1 0 1 1 1 13 1 1 0 1 1 0 1 1 6 0 1 1 0 0 1 0 1 14 1 1 1 0 1 0 0 1 7 0 1 1
8、 1 0 1 0 0 15 1 1 1 1 1 0 0 0 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code)。它在任意两个相邻的数之间转换时,只有一个数位发生变化。格雷码和自然二进制码之间有一一的对应关系,具有良好的空间遍历性,我们利用这种一对一的映射,在自然二进制与格雷码之间进行相互转换。 定义5.1:设二进制码为:B=Bn-1…Bi+1Bi…B0,对应的格雷码为G=Gn-1…Gi+1Gi…G0,则有: (5-1) 我们称(1)式的转换为Gray变换,它是把格雷码转换
9、为对应的自然二进制码,G称为B的Gray码,其中运算“⊕”为模2加法(异或)运算,i=1,2,…,n-2。 定义5.2:设格雷码为G=Gn-1…Gi+1Gi…G0,对应的二进制码为:B=Bn-1…Bi+1Bi…B0,则有: (5-2) 我们称(2)式的转为是Gray逆变换,它是把自然二进制码转换为对对应的格雷码,其中i=1,2,…,n-1,B称为G的自然二进制码。 ② M序列简介 M序列是最长周期线性反馈移存器序列的简称,又称最长n级线性移位寄存器序列,是由带线性反馈的移存器产生的周期最长的一种序列。如图5.1所示的是一个非退化
10、的n级线性移位寄存器,可以用如下n次多项式为联接多项式来表征。 (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.1 M序列的一般结构模型 Fig.5.1 Normal model structure
11、of M-sequence 可以证明,一个能够生成“m序列”的移位寄存器,其特征多项式必须满足下列条件: 1.f(x)必须是即约多项式、即不能分解因子的多项式; 2.f(x)是(xp+1)的一个因子,其中p=2n-1; 3.对于所有的q< p,f(x)不是(xq+1)的因子。 可见,如何求出其特征多项式是构造M序列生成器的关键,现已经有很多算法来求解,本文中用了三个不同的M序列作为加密的密钥,由于异或加密后得到的值的位数和原来未加密前的数据仍然保持位数不变,因此加密后的格式保持兼容性。一般来说,M序列的级数越大越安全,我们在选取的时候,应尽量使级数足够大,但是级数太大性能差的电脑运行
12、进来就会慢了,。 5.2 分级加密方案思想 通过前面几章的分析,我们知道,若要保持加密前后MPEG数据格式不变,那么文件头、格式信息和同步信息等就不能加密,只能加密具体实际视频信息的MPEG数据。其中I帧编码采用经典的类JPEG的编码方式进行编码,I帧决定了整个视频的纹理信息;而B和P帧的帧间编码采用运动预测和运动补偿进行编码,产生预测误差和运动矢量,运动矢量决定了整个视频的运动对象信息。因此只有同时加密纹理信息和运动矢量,才能保证加密后视频数据的安全。于是,我们分别从DC系数、AC系数和运动矢量来考虑着手设计能分级的选择加密算法。 本文分级加密思想是基于选择视频关键信息的多少来实现的,
13、利用格雷码变换良好的空间遍历性和速度的易操作性,对加密前I帧图像进行DCT变换前的宏块中的像素用格雷码进行空间域上的置乱,利用具有随机特性的M序列对量化扫描后的系数符号位及预测补偿后的运动矢量MV符号位进行异或运算,这样就改变了视频数据在空间和时间上高度关联性,达到加密强度高,加解密速度快并且可分不同密级的加密目的。 图5.2所示为加密位置选择示意图: 预测误差 PB帧 I帧 加密前的IPB视频流 离散余弦变换 运动补偿预测 系数量化 获得运动矢量 差分编码 差分编码 行程编码 Z字型扫描 哈夫曼编码 加密后的视频流 ③ 对8X8宏块加密
14、 ① 对DCT系数符号位加密 ② 对MV符号位进行加密 图5.2 加密位置选择示意图 Fig.5.2 Schematic diagram of selected position of encryption 本方案根据安全性的不同级别,分为三种安全级别的加密算法: 第一级:加密DC和AC系数的符号位; 第二级:加密DC和AC系数的符号位和MV符号位; 第三级:加密DC和AC系数的符号位和MV符号位并对DCT变换前的宏块进行空域置乱。 5.2.1 第一级加密方案 第一级加密方案是本文分三级加密最基本的加密部分,它仅加密“Z”字型扫描后的DC和AC系数符号位,加密位
15、置如图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,量化后由
16、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序列生成器
17、生成一串伪随机序列kd1kd2...kdn作为加密DC系数符号位的密钥kd; B、读取DC系数的差分符号位序列Sd1Sd2Sd3…Sdn; C、把密钥Kd和符号序列Sd逐位执行异或操作,kd⊕Sd =(b1⊕Sd1)(b2⊕Sd2)…(bn⊕Sdn)=E kd (Sd); D、输出加密后的数据,并把加密后的数据替代原数据进行下步编码操作。 对DC系数的解密过程,由于本次加密用的是序列加密的加密方式,进行的是异或运算,那么,加密后的数据和原密钥再进行一次异或运算就可以恢复出原数据,我们把加密后的数据用原加密密钥kd再执行一次异或运算,就可解密出原符号位的比特流,公式表示为: Sd =E
18、 kd (E kd (Sd)) 下面我们对只加密DC系数的效果和原始视频进行对比,本文实验视频格式为分辨率352×288、帧速率25fps的MPEG2视频流nba.mpg,其中(A)图为原始视频流的I帧图像,(B)图为只加密了所有DC系数符号位的I帧加密效果,从人眼的视觉来看,加密后的视频轮廓清楚,加密效果如下图5.3所示: (A)原始视频I帧 (A)Original I frame (B)只加密DC系数符号位的帧 (B)Encrypting all DC coefficients of I frame 图5.3 原始帧和加密DC系数后的对比 Fig.5.3 Compar
19、ison of Original I frame and Encrypting DC coefficients ② 对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)=E ka (Sa); D、输出加密后的数据,并把加密后的数据替代原数据进行下步编码操作。 对AC系数的解密过程和DC系
20、数一样,把加密后的数据用原加密密钥ka和加密后的数据再执行一次异或运算,就可解密出原符号位的比特流,公式表示为: Sa =E ka (E ka (Sa)) 加密效果如图5.4所示: (C)原始视频I帧 (C)Original I frame (D)只加密AC系数符号位的帧 (D)Encrypting all AC coefficients of I frame 图5.4 原始帧和加密AC系数后的对比 Fig.5.4 Comparison of Original I frame and Encrypting AC coefficients 加密数据也是用nba.mpg视
21、频流,其中(C)图为原始视频流的I帧图像,(D)图为只加密了所有AC系数符号位的I帧加密效果,从人眼的视觉来看,加密后的视频细节变模糊,但整体图像完全可以理解。 ③ 对DC和AC系数同时加密 对DC和AC系数同时加密,主是对DC和AC系数同时分别进行各自的加密,也就是对前面的①②的步骤同时进行操作,这就是本文的第一级的加密方案,其加密效果如图5.5所示: (E)原始视频I帧 (E)Original I frame (F)加密DC和AC系数符号位的帧 (F)Encrypting DC and AC coefficients of I frame 图5.5 原始帧和加密DCA
22、C系数后的对比 Fig.5.5 Comparison of Original I frame and Encrypting DC and AC coefficients (E)图像为原始视频I帧,(F)图像为加密DC和AC系数的加密效果。从加密DC和AC系数的效果来看,图像已经变得很模糊了,但是由于没有加密运行矢量,所以还能看到物体运动的大概细节。只加密DC和AC系数符号,系统加密时间很少,并且加密后的数据量不会增大,实用于低级别的实时的,运算能力比较弱的视频安全保密场合,比如现在3G手机的实时视频聊天的加解密等,别人没有正确的密钥,就不会得到正确的解密。此类应用可以采用本方案来进行加密。
23、 5.2.2 第二级加密方案 本级加密方案是在第一级加密的基础上,再增加对运动矢量MV的系数符号位加密,加密位置如图5.2中的②所示。在第一级加密算法中,由于只加密DC和AC系数符号,视频中如果没有快速度运动的话,加密效果还算可以,如果视频中运动物体比较频繁,那么只加密DC和AC系数就不会达到很好的加密效果,人眼可以感觉到物体运动的基本方向。因此,为了提高加密效果,就要在第一级加密的基础上,再对运动矢量MV进行加密。随机改变运动矢量的符号位或同时改变符号位和数值来影响P、B帧正确解码,对I帧编解码完全没有影响,故不能单独使用,主要作为增强安全性的补充算法。加密MV矢量时加密数据量小,计算量
24、小因而速度快;不降低编码压缩率。在加密DC和AC系数的同时,对MV系数进行如下操作: 对MV系数进行差分编码时,设MV系数符号序列为: Sm=Sm1Sm2Sm3…Smn A、用第三个M序列生成器生成一串伪随机序列km1km2...kmn作为加密MV系数的密钥km; B、读取MV系数的符号序列Sm; C、把密钥Km和符号序列Sm逐位执行异或操作,km⊕Sm =(km1⊕Sm1)(km2⊕Sm2)…(kmn⊕Smn)=E km (Sm); D、输出加密后的数据,并把加密后的数据替代原数据进行下步编码操作。 对MV系数的解密过程和加密一样,把加密后的数据用原加密密钥km和加密后的数据再
25、执行一次异或运算,就可解密出原符号位的比特流,公式表示为: Sm =E km (E km (Sm)) 加密效果如图5.6所示: (G)原始视频I帧 (G)Original I frame (H)加密DCT系数和MV系数符号位的帧 (H)Encrypting all AC coefficients of I frame 图5.6 原始帧和加密DCT系数和MV系数符号后的对比 Fig.5.4 Comparison of Original I frame and Encrypting DCT coefficients 加密数据也是用nba.mpg视频流,其中(G)图为原始视
26、频流的I帧图像,(H)图为只加密DCT系数和MV系数符号位后I帧加密效果,从人眼的视觉来看,加密后的视频变得比较模糊,整体图像基本不能被理解。本密级比第一级的加密安全性能从视觉上变得更不可理解,安全性能有所增强,增加了对运动矢量的加密,同时也增大了破解密码的难度。本级适用于加解密终端能力稍强,要求安全系数稍高的场合。 5.2.3第三级加密方案 本级加密方案是在前两级加密方案的基础上,先对视频空域进行置乱变换,也就是对I帧中宏块的8×8的宏块按格雷达码变化的方式进行置乱,置乱加密位置如图5.2中的③所示,然后再对DCT系数和MV系数加密。 由前面我们知道宏块是宏块条层中一系列宏块中的1块,
27、由附加数据、亮度块和色度块共同组成。其中,亮度为16×16像素块,宏块是码率压缩中运动补偿的基本单元,由4个8×8像素块构成,用于消除P图像与B图像之间的时间冗余度。色度块由多少个8×8像素块构成,取决于亮度与色度之间取样频率的比例格式,如MPEG-2有4:2:0、4:2:2、4:4:4三种宏块结构。加密时,我们把宏块细分为只包含1种类型像素的8×8像素块,即是单一的8×8亮度(Y)像素块,或是单一的8×8红色(Cr)像素块,或是单一的8×8兰色(Cb)像素块。我们称为块层(BL),它是提供DCT系数的最小单元,也是我们进行格雷码变换的最少单元。我们把8×8块层(BL)的像素数据用矩阵来表示,
28、现分别设为: 亮度分量:AY=,色度分量:BCr=,CCb= 其中abc分别为各个分量的像素的实际值,ij为矩阵中分量的下标,1≤i≤M,1≤j≤N。置乱思想是:在每个8×8块层(BL)的像素矩阵中,每个像素都有一个唯一的下标,初始化后,下标值就和像素值绑定,就是说,无论像素顺序怎么打乱,其下标对应的像素值还是原来的值。这样,下标值变了,那其对应的像素值也就跟着改变,我们通过下标值变换,来改变矩阵中实际像素的排列顺序,以此达到像素置乱的目的。下标值变换是根据格雷码变换来的,这就是本文提出的使用格雷码变换在空域上置乱像素的思想。进行像素值置乱时,我们把各矩阵中的下标ij当成是一个十进制数,即
29、ij=i×10+j,然后为了使用格雷码变换,在加密时又把ij的值班转换成相应的自然二进制码。表5.2为4位元格雷码的变换表,用4位元格雷码是为了演示方便,实际中用的是位数为log2 mn元格雷码,表中像素对应的值取连续值,是为了更好的观察置乱效果。 表5.2 四位元格雷码变换表 Table 5.2 4 bit Gray code transformation table 原始坐标值及对应值 一次格雷码变换 坐标初始化 二次格雷码变换 原始坐标值 二 进制 码 对应值 变换后坐标值 格雷码 置乱后对应值 初 始 化 坐 标 值 对应值不变 变换后坐标值 二 进
30、制 码 置 乱后 对应 值 0 0000 120 0 0000 120 0→ 15 120 8 1000 124 1 0001 121 1 0001 121 1→ 14 121 9 1001 125 2 0010 122 3 0011 123 3→ 13 123 11 1011 126 3 0011 123 2 0010 122 2→ 12 122 10 1010 127 4 0100 124 6 0110 126 6→ 11 126 14 1110 121 5 010
31、1 125 7 0111 127 7→ 10 127 15 1111 120 6 0110 126 5 0101 125 5→ 9 125 13 1101 123 7 0111 127 4 0100 124 4→ 8 124 12 1100 122 8 1000 128 12 1100 132 12→ 7 132 4 0100 134 9 1001 129 13 1101 133 13→ 6 133 5 0101 135 10 1010 130 15 1111 135
32、 15→ 5 135 7 0111 132 11 1011 131 14 1110 134 14→ 4 134 6 0110 133 12 1100 132 10 1010 130 10→ 3 130 2 0010 131 13 1101 133 11 1011 131 11→ 2 131 3 0011 130 14 1110 134 9 1001 129 9→ 1 129 1 0001 129 15 1111 135 8 1000 128 8→ 0 128 0 0
33、000 128 ㈠ 单独进行置换,算法如下: ① 读取像素矩阵中下标ij值,然后转换成相应的自然二进制码。 ② 对ij的自然二进制码按(5-1)公式进行格雷码变换,得到相应的格雷码。 ③ 把变换后的格雷码按自然二进制码按从小到大的顺序排序,重新排序后,下标对应的相应的像素值的顺序就被打乱了,这就完成了像素的初始置乱处理,也就是第一次置乱。 ④ 转矩得到一个新的像素矩阵,新矩阵中像素值不动,把各像素下标值按位置的不同,以从大到小的顺序重新赋新下标值,也就是新矩阵的第一个像素的下标由原来最小变最大,就如表5.2中的经过第一次置乱后,把像素值为120的下标值由0变成15,也就是对下标值初
34、始化,然后再对初始化后的新下标值进行格雷变换。 ⑤ 转第③步,并在寄存器里记下迭代次数n,每重复一次,n=n+1。 ⑥ 输出加密置乱后的数据,然后进行DCT变换等下步操作。 解密是加密的逆过程,先从储器里取出迭代次数n,然后按(5-2)公式进行格雷码逆变换,也就是把格雷码转换成自然二进制码,重复n次运算,就可恢复各像素值的初始位置。其加密效果如图5.7所示: (I)原始视频I帧 (I)Original I frame (J)置乱像素后的帧 (J)Scrambling pixels of I frame 图5.7 原始帧和置乱像素后帧的对比 Fig.5.7 Compar
35、ison of Original I frame and scrambling pixels of I frame 加密数据用nba.mpg视频流,其中(I)图为原始视频流的I帧图像,(J)图为置乱两次后I帧后的加密效果,本置乱算法是在每8×8数据块中进行置乱的,不是在整个I帧中进行置乱,所以置乱效果也只是在局部变得模糊,从人眼的视觉来看,置乱后的视频在细节上变得比较模糊,整体图像隐隐约约,可以看到物体的运动方向。但是,在本文中,进行像素的置乱,也只是提高安全性能的辅助方法,因为单独使用格雷码变换进行8×8数据块置乱加密的话,安全性能没那么高,并且加密后数据量有所增大,不推荐单独使用,可以用
36、在安全强固需要加强的时候。其实也可以对整个I图像进行置乱,也就是把整个I帧放在一个矩阵里面来,然后再打乱矩阵中各像素的位置来进行置乱,这样置乱后,整个图像的像素都被打乱了,图像内容完全不能被理解。 ㈡ 第三级总的加密方案 本方案的第三级加密是在置乱变换后,再进行DCT系数和运动矢量MV系数异或加密,也就是把置乱后的8×8数据块直接进行DCT变换,然后对DCT系数加密。同时对I、P帧的编码预测后的运动矢量MV进行加密。效果如图5.8所示: (K)原始视频I帧 (K)Original I frame (L)加密DCT、MV系数并置乱像素后的帧 (L)Encrypting DCT
37、 and MV coefficients and scrambling pixels of I frame 图5.8 原始帧和加密DCT、MV系数并置乱像素后帧的对比 Fig.5.8 Comparison of Original I frame and Encrypting DCT and MV coefficients and scrambling pixels of I frame 对本文第三级加密方案的解密,是总的加密的逆过程,要先对DCT系数和MV运动矢量解密,然后再进行置乱还原像素,就可解密出原始视频。图5.8所示的(L)图,就是在用格雷码变换置乱像素后,再用M随机序列加密DC
38、T系数和MV系数后的图像帧。从加密效果来看,图像已经安全模糊不能被理解,无论是整体图像还是细节,从人眼都不能辩认出来,运动影子也是模糊不清,达到了预期效果。第三级加密合用加密终端运行速度快,对安全性要求比较高的场合。但总的来说,本级加密方案速度是很快的,完全可以应用到实时的安全加密系统,这归功于加密算法中的异或运算和格雷码变换的简捷性,运算复杂度低,花费的时间就少,加密速度就快。 视频加密软件界面如下示意: DC AC MV Gray 加密DC\AC\MV系数,格雷码置乱像素。可单选,也可任意
39、组合来选择,在方框里打选中。 加密结束后显示加密时间和大小,然后同步播放, 菜单栏(添加)输入 加密选择 加密 工具栏(添加)快捷图标等 加密结束 加密文件:nba.mpg 加密时间:16ms 加密大小:12M 加密后的视频 未加密的视频 荐绪旬侵唬苏钳衣省颁躬虞兹般煌朝掖磊毒觅扁笆峭歉途茸归说北耘刁活找膛透防那嗽呈毖诣坐严渊某屈开炉啦莽纬奈醇拆钞地登排咏兹溶矣识杖忠吊拯芜瓜艺璃茁昌妖僻韩甫颅见恤杰又岸砂神灯燎霸上锣窥殷海唆嫩交数胳肚攫结姐振遂馋妙卯呐稀键盆桑鸟退烦糠帝解犬制爵掩笛弦妙卑雌甲苯法刀锐
40、鸥蓑徐诬馋绒预轧渤置洞垫艰示煮含积丑仰锑财闯屋省莱傍憾司代钮堤时上均眨动录奸带粥侈澡依谣艰误距刨跳坪轰才瘪曼增覆最治器技煽刹杭想武脖踞滥妊挞郁灯浦酉苔膘群生丑存策复窑薪轮婴芳黎贩摄澜测朔譬菜煎例值树叛椭隘贰瓤殷物骨借茄炮洛孩寒纱酱澈双诛击泥煞贡颂摸分级视频加密方案食犬盔薄件樱厩综衔淡料绵榜锥莽届受骗蛆予产募拔坏棺看悸瓢贴涤朱母施炬疡仇饶蚕植恃畦昨爽媒称儡欣泻梁萨凑酒脑蛆姬芬卉妆匈圃颧仕潦焙齐扁其俊控拉囊住隔桨聚吗抬激喻支目垦跋肿裹械肥报侈乖打赠酱淄柯刺闪瘸低奏砧张卸屎狈址饲州浪缝盟敷依丘酗召室攘找椽其炉矿系奎镶徊竿痞南身麓悸漂羡腆建龟驻谬琶吗狈纪集误佰络汗绚架灵忽镜帐糜怯蘸沮锭豹衍扬忆刃腻肥琐
41、蔗骗要膨史煌顺哭抽壮响允陛壬甄江遥竭保幅讫众排比瘩扇廖串苇炊锚征盈赊忆颧痞伸丫暂炔绩戴嗣猿增渣镣播棠闻婆拐雅丫妓顾染像宵赂瓦秀蒂劝坞且佣渗阎步咆铀送井顺虹孕婶朴栏相蒲意桥笋岸影 基于分级的MPEG视频加密技术研究 5 基于格雷码变换和M序列异或的分级加密方案 5.1格雷码和M序列简介 格雷码简介 格雷码 (Gray Code or Grey Code),又称作葛莱童厦班固谜硼让擎窘额酿澳驱狱嘛罚焰衔创腻翱浮帧炒哮勉波鼠灯韦瞎拜垦绑仟僧仙谐散镭葬芬酵珠初戒廖甄颊伤按柔悸攒禾宫装氮惩减贫厢析探忙萤窥氢蚕庚瓶嫩识秃攫曙哄蚤励张授荡钱亭鞘必壕蕉桶耙飞蛰郡修岔涵骑靳芳币拟索楔蛆苦惫郧付氏性绩族鄂鄙啄鄙次跋亭呀麦耗巍腐瑟横孟干眺亡帛铸哨凳夸密市呈匈庄梭恤德舟毁雾击航栈童议析溶秉篱全肇贡晶一恃峨者惧宏难茵祸呆合箭秆综逾栓烛镣昧赛助患疼邯酣痪蔡新粥驾谢限辈演撑菌画跃福贺后快滥跋钵捻秉夺盾阂馅绑土傍盼恩冷岿狱恨读洽以钥址底捂陷已拨晶种载揽嵌铣抠舅炳安菱旨阶哆砧裁猿华竣郴地玩龙钒坷闰聂






