视频加密

2024-07-25

视频加密(精选7篇)

视频加密 篇1

目前,采用基于HTTP的动态自适应流媒体技术面向智能手机、平板电脑、智能电视机顶盒以及PC等提供多屏互动的视频服务已经成为互联网视频服务的主流模式。互联网视频服务的广泛开展,亟需有效的技术手段抑制网络视频盗版问题,保障互联网视频服务运营可管可控。内容加密封装是互联网视频内容版权保护的关键技术之一,互联网视频的加密内容封装格式,加密后的内容应包含内容标识及获取许可证所必须的信息。根据不同的应用场景,需要定义不同的加密内容封装格式,目前主流的加密封装格式包括基于ISO基础媒体文件格式的通用加密格式(CENC)、基于HTTP动态自适应流媒体协议(MPEG DASH)的加密内容封装格式、Apple公司的加密内容格式(HLS)。

1 视频封装格式概述

目前主流的视频压缩编码格式是H.264/AVC,H.264/AVC是ITU-T VCEG和ISO/IEC MPEG共同开发的视频处理标准,ITU-T作为标准建议H.264,ISO/IEC作为国际标准14496-10(MPEG-4第10部分)高级视频编码(AVC)。H.264的算法在概念上可以分为两层:视频编码层(Video Coding Layer,VCL)和网络提取层(Network Abstraction Layer,NAL),NAL层为视频内容提供了与网络无关的统一接口,支持多种网络情况下的传输。

视频信号以H.264编码压缩到NAL单元中,NAL层之上是根据不同的内容封装格式或传输格式对NAL单元的打包。例如视频流可以被打包到PES包中,PES包又被封装成188 byte大小TS包作为TS流输出;视频流也可以被打包成Sample,然后增加头部信息等封装成MP4文件,如图1所示。

因此对于视频内容的加密,可以有多种选择。例如对VCL层视频编码数据的加密,如对编码的DCT系数进行加密,对熵编码的数据进行加密等;在编码层对NAL层不同类型的帧选择性加密,如HLS的NAL层加密;在视频封装层对数据进行加密,如对TS包进行加密(HLS的全文加密),或对MP4文件的sample进行加密(基于14496-12基本文件格式的CENC加密和PDCF打包格式);解决方案层的加密,如MPEG-DASH加密。

视频加密方案的具体选择需要结合视频来源的内容格式来考虑,如果视频来源是ES基本码流,则选择在编码层对NAL单元加密可以提供与上层封装及切片无关的加密方案;如果视频来源是已经封装好的内容格式,例如TS包或MP4文件,则应该根据具体的封装格式选择相应的加密方案(后文在叙述中较多使用了标准中的代码描述)。

2 DASH加密

2.1 DASH概述

基于HTTP的动态自适应流媒体DASH以媒体流模式提交媒体内容,其控制只依赖于客户端。客户端通过HTTP协议从标准的Web服务器请求数据,服务器不需要做适应于DASH的配置。23009-1中定义了从标准HTTP服务器到HTTP客户端间媒体内容分发和缓存所需的格式,主要包括MPD和媒体分片格式。MPEG-DASH的加密格式在23009-4中描述[1,2]。

2.2 MPD文件

媒体内容编码和提交版本,以及适合的描述形成媒体表述(MPD文件),MPD文件层次机构如图2所示。

1)媒体内容由单独或多个时间上连续的媒体内容时期(periods)组成。

2)每个period都由一个或多个媒体内容组件组成,例如不同语言的音频组件和视频组件。媒体内容组件由媒体内容组件类型标识,例如音频或视频。

3)每个媒体内容组件可能有几个不同的编码版本,即媒体流。每个媒体流继承媒体内容的属性,包括媒体内容period、编码参数、编码率等。

4)段可以被分为子段,每个子段包含若干个完整单元,客户端可以发起请求来请求子段。

DASH中不同媒体内容组件的所有编码版本共享相同的时间线。媒体内容里的单元被定位到全局通用的时间线,同步不同的媒体单元,便于相同媒体组件在不同编码版本之间切换。

客户端可以在一个Adaptation Set的不同Representation之间切换。切换过程为:首先播放到这个Representation的段或子段的结尾,然后播放新的Representation的下一个段或子段。

2.3 数据加密

ISO/IEC 23009-4定义了DASH的内容保护框架,用于获取媒体段的解密方法以及解密参数。MPD文件提供加密接口,定义key/IV的获取方式,并支持多个加密系统加密同一份内容。

1)加密方式

DASH段加密有两种方式:基础段加密方式和基于许可证的DRM方式。

(1)基础段加密

DASH中基础的段加密方式采用AES-CBC算法实现,使用HTTP(S)实现密钥传输。DASH的客户端能够识别出每个段的KEY和IV,并发起请求获取KEY实现媒体段的解密,如图2所示。

(2) DRM系统加密

DASH支持基于许可证的DRM系统。在这种方式中,客户端获取许可证,通过许可证获取KEYID,并通过KEY和MPD中包含的加密信息实现媒体段的解密。每个DRM系统可以采用该系统的许可证和KEYID的映射方式。

2)段加密

DASH中媒体分块如果是加密的,其加密相关信息通过ContentProtection来指定。

内容加密方法定义:通过SegmentEncryption@schemeI-dUri指定,DASH规定客户端应该强制支持AES-128 CBC加密,可选支持AES-128 GCM加密。

Key/IV的获取:MPD优先从License元素获取key/IV信息,如果License元素不存在,则从CryptoPeriod和CryptoTimeline获取key/IV信息。

许可证获取:对于基于许可证的内容保护系统,通过License元素可获取许可证URL,DASH支持相同内容的多个内容保护系统加密。

密码有效期:每个加密段都同一个密码有效期关联,同一个密码有效期的加密段使用相同的key/IV,密码有效期的持续时间以段的数目为量度。

3)命名空间定义

MPD文件的开始处增加命名空间定义。内容保护的描述在命名空间urn:mpeg:dash:schema:mpd:2011中定义。SegmentEncryption,CryptoPeriod和CryptoTimeline在命名空间urn:mpeg:dash:schema:sea:2013中定义。

4)内容保护元素定义

(1) ContentProtection

DASH中媒体分块如果是加密的,其加密相关信息通过ContentProtection来指定,相关描述见表1。DASH中ContentProtection的@schemeldUri属性应为urn:mpeg:dash:sea:enc:2013。

@schemeIdUri:23009-4中规定@schemeIdUri属性为urn:mpeg:dash:sea:enc:2013。GY/T 277-2014中增加扩展@schemeldUri的值为ChinaDRM申请的唯一编号。

(2) SegmentEncryption

SegmentEncryption描述应用在所有密码有效期的段加密属性,相关描述见表2。

(3) License

License元素作用于整个密码有效期,ContentProtection内可以有一个以上的License元素。如果License缺省,则加密参数由cryptoPeriod和cryptoTimeline指定,相关描述见表3。

(4) CryptoPeriod通用属性

CryptoPeriod指加密参数的持续时间。CryptoPeriod代表一个单独的密码有效期,CryptoTimeline代表多个类似的CryptoPeriod,相关描述见表4。

(5) CryptoPeriod

CryptoPeriod定义一个密码有效期,提供key和IV,同时定义哪些段加密,相关描述见表5。CryptoPeriod唯一对应一个加密起始段,CryptoPeriod可能是有限的时间(即段的数量),也可能是无限制的(到当前Period结束)。

(6) CryptoTimeline

CryptoTimeline用来定义持续长度的多个CryptoPeriod,相关描述见表6。

2.4 数据认证

MPD文件提供获取附加认证数据(AAD)接口。认证框架同内容保护框架无关,即认证可应用在加密段,也可以应用在不加密的段。如果认证和加密同时进行,则操作模式应该是“认证,然后加密”,这种方式可确保认证独立于加密,认证数据不随加密参数的改变而改变。

MPD中增加段认证定义的步骤:

1)增加EssentialProperty或SupplementalProperty定义。其中EssentialProperty代表认证是必选的,Suppleme ntalProperty代表认证可选。

2) EssentialProperty或SupplementalProperty中@schemeldUri的取值应该为urn:mpeg:dash:sea:auth:2013。

3) EssentialProperty或SupplementalProperty中增加ContentAuthenticity元素。ContentAuthenticity中定义认证算法,和用来下载认证数据的URL模板。

DASH支持的认证算法包括SHA-256和HMAC-SHA1,见表7。

3 ISO媒体内容通用加密方法(CENC)

3.1 CENC概述

通用加密格式CENC是基于ISO/IEC 14496-12的一种加密格式,CENC加密标准在ISO 23001-7及补充文档ISO23001-7 Amendment 1中描述[3]。

3.2 加密机制

CENC加密对sample entry做如下替换:

1)在每个track中添加Protection Scheme Information Box(sinf),标识内容为加密内容。

2) Protection Scheme Information Box('sinf)中包含Scheme Type Box('schm'):定义相应的加密算法,其中scheme_type定义了加密类型,scheme_version定义模式版本。CENC加密方式中,模式类型为scheme_type='cenc',CENC采用AES-CTR算法加密;模式版本为scheme_version=0x00010000。

3) Protection Scheme Information Box('sinf')中应包含Scheme Information Box ('schi')。

4) Scheme Information Box ('schi')中包含Track Encryption Box('tenc'),描述该track的加密参数。

CENC通用加密格式定义的相关参数包含在如下box中:

1)内容保护系统的方案相关信息,例如许可证和授权获取信息,包含在ProtectionSystemSpecificHeaderBox('pssh')中。

2)用于每个track的加密参数(包括KID、初始化向量、加密标志位),包含在TrackEncryptionBox('tenc’)中。

3)用于samples groups的加密参数(包括KID、初始化向量、加密标志位)包含在SampleGroupDescriptionBox ('sgpd')中。

4)单独sample的加密参数(包括初始化向量,sub sample加密数据)包含在样本附加信息中,由SampleA uxiliarylnformationSizesBox ('saiz')和SampleAuxiliarylnformationOffsetsBox ('saio')引用。

3.3 加密方式

CENC定义了两种加密方式:全样本加密和子样本加密。全样本加密把整个sample作为一个完整的单元加密;子样本加密中的sample分为一个或多个su bsample,每一个subsample都由不加密区域和加密区域交替组成,Sample中的所有加密区域被看作一个逻辑上连续的块,计数器值的增加与切换NAL单元无关。

3.4 box定义

1) Protection System Specific Header Box ('pssh')

Protection System Specific Header Box('pssh')包含内容保护系统,回放内容必要的信息。封装在数据域中的信息可以提供解密密钥获取方式,对基于许可证授权的内容保护系统,信息头包括许可证服务器或授权中心的URL信息和嵌入的许可证等。通过为每个DRM系统分配一个“pssh”,CENC能够支持一份媒体文件被多个密钥和多个DRM系统播放。

SystemID:UUID,唯一标识对应的内容保护系统。GY/T277-2014中规定,将16 byte长度的SystemID的前8 byte设置为“ChinaDRM”,后8 byte保留为0x00。

DataSize:数据域的长度,以字节为单位。

Data:存储内容保护系统的特定数据,例如许可证服务器的URL地址等。

2) Track Encryption Box('tenc')

Track Encryption Box包含整个track的IsEncrypted flag、IV_size以及KID,这3个参数作为track中的sample的加密参数。对于每个track只有一个密钥的文件,Track Encryption Box允许基础加密参数在每个track定义一次,而不需要在每个sample做重复定义。

Track Encryption Box('tenc')的语法如下:

default_IsEncypted:加密标志位,标识track中samples的默认加密状态,可以包含如下取值,0x0表示没有加密,0x1表示采用AES_CTR 128加密。

GY/T 277-2014中将此项扩展为[5]:采用AES_CTR加密时,保护模式信息盒(sinf)中的模式类型盒(schm)中的模式类型scheme_type=‘cenc’;采用AES_CBC加密时,保护模式信息盒(sinf)中的模式类型盒(schm)中的模式类型scheme_type='cbc1';采用SM4_CTR加密时,保护模式信息盒(sinf)中的模式类型盒(schm)中的模式类型scheme_type='sm41';采用SM4-CBC加密时,保护模式信息盒(sinf)中的模式类型盒(schm)中的模式类型scheme_type='sm42’;取0x000002~OxFFFFFF表示保留。

default_IV_size:默认初始化向量的size,字节为单位,0表示IsEncrypted取值为0x0时,没有加密,8:64或16:128位初始化向量。

default_KID:track中所有sampls的默认加密密钥标识,允许每个文件或track有多个加密密钥。

加密track中的非加密sample将做如下取值:IsEncrypt-ed=0x0,IV_size=0x0,KID=0x0。

4 HLS中的内容加密

4.1 HLS概述

HLS是Apple公司推出的动态码率自适应技术,HLS内容格式在HTTP Live Streaming draft-pantos-http-live-strearming-10中描述[6]。

4.2 加密方式

HTTP Live Streaming中内容加密有两种,一种是对TS切片文件直接加密;另一种是对H.264编码文件中类型为1和5的NAL单元进行加密,其他类型的NAL单元不加密。

4.3 加密机制

HLS中媒体分块如果是加密的,其加密密钥通过1M3U8文件中的#EXT-X-KEY来指定,密钥文件由客户端从服务器请求认证获得。一个播放列表可以有一个以上的#EXT-X-KEY,同一个媒体段也可以有多个不同KEYFOR-MAT属性值的#EXT-X-KEY。如果播放列表仅有一个#EXT-X-KEY,则密钥文件的生命期从当前#EXT-X-KEY开始到播放列表结束;如果播放列表有两个或以上的#EXT-X-KEY,则密钥文件的生命期从当前#EXT-X-KEY开始到下一个#EXT-X-KEY结束。客户端每次申请密钥文件都会发起一个新的HTTP请求,设置过多的#EXT-X-KEY会增加授权服务器的负担。

#EXT-X-KEY的格式如下:

#EXT-X-KEY:<attribute-list>

属性包括METHOD,URI,IV,KEYFORMAT和KEYFOR-MATVERSIONS,属性说明见表8。

METHOD属性为NONE时,表示媒体内容未加密,这种情况下不允许出现URI,IV,KEYFORMAT,KEYFORMAT-VERSIONS等属性。

METHOD属性为AES-128时,表示媒体内容采用AES-128方式对TS切片文件直接加密,这种情况下URI属性必须出现,IV属性可以出现也可以不出现。

METHOD属性为SAMPLE-AES时,表示对媒体段的部分或全部ES流加密,ES可以为音频、视频或其他样本,每一种ES的具体加密方式依赖于媒体编码,这种情况下IV属性可以出现也可以不出现。

IV为十六进制整数,代表加密初始向量。采用AES-128方式加密时,如果IV属性存在,则必须使用IV作为初始向量实现加密;如果IV属性不存在,使用媒体段的序列码作为初始向量实现加密。

KEYFORMAT标识密钥在密钥文件中的存储方式。默认是“identity”。GY/T 277-2014中增加扩展,如果KEY-FORMAT=chinadrm’,表示URI中给出的ChinaDRM规定的获取许可证的相关信息,包括许可证服务器地址和内容标识。

1) TS层加密

如果属性METHOD的值为AES-128,并且播放列表中包含#EXT-X-I-FRAMES-ONLY标签(只包含I帧流),则整个媒体段使用AES-128 CBC加密。

如果属性METHOD的值为AES-128,并且播放列表中不包含#EXT-X-I-FRAMES-ONLY标签,则CBC不能跨越媒体段,每个媒体段单独使用AES-128 CBC加密,从而实现整个媒体段全部内容的加密。

上述的两种加密方式,对TS切片文件直接加密,这种加密方式在切片时实现,需要在网络电视台及CDN系统编码器中集成加密功能,实施复杂度大,成本高。

2) ES流加密

METHOD属性为SAMPLE-AES时,表示媒体在内容打包封装之前对ES流加密。ES层的加密对每个包含16 byte整数倍的数据块以AES-128 CBC方式加密。对于视频数据,媒体段从第一个16 byte数据块开始,每间隔10的整倍数的16 byte的数据块加密(即1,16,26,…),对于音频数据,所有的16 byte数据块都必须加密。

SAMPLE-AES加密方式加密后的ES流不受上层封装及切片的影响,因此可以在不影响网络电视台现有系统及CDN部署的情况下实现对视频内容的加密,满足网络电视台等对视频内容保护的要求。

(1)视频流的加密

ES类型为视频流时,H.264编码文件中类型为1和5的NAL单元必须加密,其他类型的NAL单元不加密,加密NAL单元的数据格式如下:

加密的NAL单元需要增加预防二义性的前缀,该前缀是未加密的。NAL单元中第1个字节的NAL_unit_type和随后的31个字节是不加密的,其后是加密的数据段,数据段的长度必须是16的整数倍(因此长度小于48 byte的NAL单元是不被加密的),被保护的数据段采用10%跳跃加密,即每16 byte的加密数据块,跟随9个16 byte不加密的数据块,以此类推。加密H.264流时,类型为1或5并且长度大于48 byte的NAL单元必须基于上述方式加密,加密完成后为这些加密单元加上前缀码;解密H.264流时,类型为1和5,且长度大于48 byte的NAL单元需要解密,首先移除前缀码,然后按上述方式定位加密数据并解密-

(2)音频流的加密

ES类型为AAC音频帧时,包含ADTS头的音频帧为加密帧。AAC的加密帧不需要增加预防二义性的前缀,AAC帧中7~9 byte的ADTS头,以及之后的首个16 byte不加密,其后是加密数据段,加密数据段的长度应该为16的整数倍,余下的0~15 byte不加密。AAC音频数据加密格式如下:

ES类型为AC-3音频帧时,全部的音频帧都加密。AC-3的加密帧不需要增加预防二义性的前缀,AC-3帧中的首个16 byte不加密,其后是加密数据段,加密数据段的长度应该为16的整数倍,余下的0~15 byte不加密。AC-3数据加密格式如下:

5 视频加密方案

提出的视频内容加密方案是在NAL单元层对视频内容进行加密。H.264编码的视频流是由连续的NAL单元组成。每个NAL单元包含标志位表示该NAL单元数据类型,常见的NAL单元数据类型见表9。

选择NAL类型为1和5的帧进行加密,加密后重新封装为新的NAL单元,其余NAL单元保持不变,如图3所示。

加密后NAL单元描述为:

forbidden_zero_bit:长度为1 bit,定义为0;H.264规范声明为1时说明有比特流错误或为错误语法。

NAL_ref_idc:长度为2 bit;00表示该NALU不是用来构造I帧预测的参考帧,这种NALU可以丢弃而不影响参考帧的完整性;非00用来保持参考帧的完整性。

NAL_unit_type:长度为5 bit;加密后的NAL单元类型采用自定义的值,加密前NAL_unit_type=1,则加密后NAL_unit_type=25;加密前NAL_unit_type=5,则加密后NAL_unit_type=26。

IV:为初始向量,在AES-128 CTR模式[114-115]下,该值用来计算counter的值。

Key_indicator:内容加密密钥标示,用以标示该NAL单元由哪个内容加密密钥进行加密。

6 总结

互联网视频服务的开展,亟需有效的数字版权管理技术支撑,保护运营各方的合法权益,保障互联网视频服务运营的可管可控。内容加密封装是互联网视频内容版权保护的关键技术之一,本文研究了主流互联网视频格式的内容加密封装技术,并在此基础上提出适应多码率、多格式、多切片加密封装需求的内容加密方案,为开展多元化、灵活的互联网视频服务提供有效的技术支撑。

摘要:基于HTTP的动态自适应流媒体技术面向多种智能终端提供视频服务是目前互联网视频服务的主流模式,内容加密封装是互联网视频数字版权保护的关键技术之一。对主流互联网视频格式的封装方法、加密方法进行分析,并提出基于网络提取层的视频内容加密方案。为互联网视频服务提供商实现视频内容保护提供技术支撑。

关键词:内容加密,数字版权管理,互联网视频,HLS,MPEG-DASH,CENC

参考文献

[1]Internet-draft,HTTP live streaming:draft-pantos-http-live-strea ming[S].2012.

[2]GY/T 277—2014,互联网电视数字版权管理技术规范[S].2014.

[3]ISO 14496-12,信息技术——音视频对象编码第12部分:ISO基础媒体文件格式[S].2005.

[5]ISO 23001-7,信息技术——MPEG系统技术第7部分:ISO基本媒体文件格式文件通用加密[S].2012.

[6]ISO 23009-1,信息技术——基于HTTP的动态自适应流媒体(DASH)第1部分:媒体展现描述与分段格式[S].2012.

[7]ISO 23009-4信息技术——基于HTTP的动态自适应流媒体(DASH)第4部分:分段加密与认证[S].2013.

视频加密 篇2

随着视频应用的日益广泛, 视频的安全性变得越来越重要。基于以往的标准, 人们研究了许多加密算法:有用传统密码技术进行全部加密的方法, 如DES算法、CSC算法和VEA算法, 这类算法虽然有较高的安全性并且不改变压缩比, 但是计算复杂度很高;有对DCT系数进行加密的方法, 如分段置乱算法, 这类算法虽然有较低的计算复杂度, 但是安全性低于全部加密的算法, 压缩比也有所改变;有在熵编码过程中进行加密的方法, 如多状态索引方法, 这类算法虽然计算复杂度低, 对压缩比的影响较小, 但在已知明文攻击情况下是不安全的。上述方法各有优缺点, 而且大多针对MPEG标准, 因此研究适合H.264特点的安全加密技术成为目前研究的热点。

针对现有视频加密算法的不足, 本文提出一种基于H.264的可感知加密算法。

1 加密数据元素的分析与选取

对H.264编码宏块语义层进行分析, 决定提取帧内预测模式字 (Intra Prediction Mode) 、运动向量差值 (Motion Vector Differ_ence) 和残差系数 (Residual Coefficient) 三类定长语法元素 (fix-length code) 进行加密操作[1]。

1.1 帧内预测模式字

根据每个宏块所属片组的不同, 每一个宏块都有几种编码预测模式。但帧内预测编码是所有片组编码类型中都支持的。对亮度像素块而言, 存在有Intra_4×4, Intra_8×8、Intra_16×16三种预测模式。Intra_4×4模式下有9种预测模式, 适用于对图像细节部分进行编码, Intra_16×16有4种预测模式, 适用于对平坦区域进行图像编码[2]。

采用Intra_4×4的编码模式字进行加密操作。每一个4×4块都是通过上方和左方像素预测而来, 如图1所示, a-p为待预测像素, 它利用相邻块中已经解码的A-Q像素来进行预测。对每一个4×4块, 总共有9种模式供选择[2], 其中除了DC模式, 另外8种预测模式的方向也在图1中。

图1 Intra_4×4预测示意图

Intra_4×4的编码预测模式总共有9种预测模式, 至少需要4个bit位来进行编码。在H.264的标准中, 利用一个“prev_Intra_4×4_pred_mode”字段来排除一种预测方式, 用另外3个bit位来表示余下的8种预测模式。因此, 只对后3个bit位进行加密扰乱, 这样的加密过程中, 不会影响到其他字段, 也不会产生额外的码流。

1.2 运动向量差值

如图2所示, 在P帧或B帧中, 每个宏块 (16×16像素) 可以有4种方式来进行分割:16×16、8×16、16×8、8×8。如图2 (d) 是采用8×8模式, 分为4个子宏块 (8×8像素) 。每个字宏块可以进一步进行分割:8×8、4×8、8×4、4×4。

每一个分区或者子宏块都有一个单独的运动向量MV (Motion Vector) , 用于引用前面参考帧的对应区域来对当前块进行预测编码。每个预测区的MV都需要相当数目的比特位来进行编码。为了进一步减少比特数, 可以利用邻近的MV之间的相关性进行预测编码。后一个MV可由前面已经编码的MV预测得到, 只需要对它们的差值MVD (Motion Vector Difference) 进行编码。在H.264中, MVD值是采用指数哥伦布 (Exp-Golomb) 进行编码的, 这是一种变长编码[3]。

指数哥伦布编码由前缀和后缀构成, 前缀为M个0后面跟一个1, 后缀为M bit的INFO, 其码形为:[M zero]1[INFO]。其中, M=floor (log2 (Code Num-1) ) 。若MVD<0, CodeNum=2|MVD|-1, INFO的大小为Code Num-2M。用加密函数来对INFO进行加密:y=Encrypt- (INFO) , 其中y为加密后的密文。

本文只对MVD的符号位进行加密, 对于每一个MVD值, 只需要对一个bit位进行加密操作。

1.3 残差系数

在H.264中, 残差块系数通过CAVLC和CABAC进行编码[4]。在进行CAVLC编码的过程中, 涉及到以下几个语义字段[2]:非零系数数目 (Total Coeffs) 、拖尾系数数目 (Trailing Ones) 、非零系数幅值 (Level) 以及最后一个非零系数前零的个数 (Total Zero) 和每个非零系数前零的个数 (Run Before) 。经过分析, 只有Trailing Ones和Level的符号位是属于定长字段[6], 因此提取这两个字段的符号位进行加密操作。如图3所示。

2 算法设计

分别引入三个不同的控制参数P1、P1、P3对预测模式字IPM、运动向量MVD和残差系数Residual Coefficien的加密强度进行控制[1], 具体方案为:以P1、P2的概率分别对IPM、MVD进行加密, 当P1、P2从0到1进行变化时, 相应地进行不加密到完全加密;以P3对Residual Coefficients系数符号位进行不加密到完全加密控制。

下面是算法的具体伪代码描述:

3 仿真结果与分析

3.1 实验环境

实验测试条件:H.264/AVC标准, JM10.2版本, 以IPPP方式进行编码, I帧刷新率为10, 帧率为30 F/s, 2GB内存, Intel T5670处理器, 并用VS2008完成对JM10.2代码的调试。实验中采用CIF格式的352288的foreman作为视频序列。

3.2 加密效果分析

单独加密IPM字段, 只是对亮度信息进行加密, 如图4中人脸和轮廓信息清晰可见;单独进行MVD加密的过程中, 如图5中, I帧图像完全不受任何影响, B、P帧的I bock也完全不受影响, 关键信息很容易泄露。单独对残差系数进行加密, 如图6, 与IPM一样, 图像的轮廓信息没有很好的隐藏。另外, 从对抗解密攻击能力上来看, 单独对一种加密元素进行分析加密空间更小, 也更容易实施破解。因此, 在视觉安全性要求比较高的场合, 应该联合对所有三种元素进行加密, 从图7可以看到, 随着加密强度不断提高, 视频图像可感知性不断下降, 在最强的加密强度下, 整幅图像完全被扰乱有很高的视觉安全性。各种方汉加密后PSNR值如表1所示。

3.3 安全性分析

在加密方案中, 保持视频格式的语义兼容性, 加密操作并不改变相关字段的长度。攻击者会很自然地通过单独猜解每个字段元素的值来进行Cipher-only Attacks[7]。最简单的方法是进行ECA攻击 (Error Concealment-based Attack) , 就是将所有FLC的值赋值为一个固定值进行破解。同时, 攻击者也可以通过相邻块之间的相关性来单独猜解每个FLC的值, 下面对其复杂性进行分析说明。假设在一个帧数据中所有FLC的数据为N, 加密的概率控制为p, 则在一帧数据中实际进行加密的FLC的数目为p N, 对一帧数据进行去块攻击的难度至少为O ( (CNPN2PN) 。对于每一个符号字段[5], 至少有两个取值 (0和1) , 如果是IPM字, 则有更多的取值可能。如果假设p>100N, 则有2PN>2100, 实际上, 在一个数据帧里面, FLC的数目要远远大于100, 该加密的方案在对抗Cipher_only Attacks攻击还是十分有效的。

3.4 性能分析

一个加密算法的计算复杂度主要取决于它要进行加密的数据量。本文加密的数据量主要包括IPM、MVD和残差系数。在一个宏块中, IPM和MVD符号位, 还有Residual Coefficient的符号位需要加密, 因此, 要加密的数据量同整个视频数据相比, 只占很小的部分。所采用的加密操作也仅仅是对相关的bit位进行“异或”操作, 所需的系统开销极小, 基本上不会对编解码带来影响。

本文研究了一种在H.264编码下进行Perceptual Encryption的方法, 通过对语法元素的分析和编码方式的研究, 选取了IPM、MVD和Residual Coefficient这三种定长字段的元素进行加密。通过引入概率参数来对每种类型的字段加密强度进行控制, 分析加密不同元素所带来的视频加密效果。实验结果表明, 单独加密其中任何一种元素, 都能对图像带来很大的干扰。但要获得很好的安全性, 必须联合加密三种元素。这种加密方案具有很好的安全性和实时性, 而且不会带来额外的码流, 保持了视频的压缩比不变, 并且可以调整不同的加密强度, 适用于各种应用的需求。

摘要:针对多媒体视频传输的安全性与实时性的要求, 提出一种基于H.264感知加密算法的视频加密方案。该方案将视频数据分为VLC (Variable Length Code) 和FLC (Fix-Length Code) 两类, 只选择FLC中对重构图像比较重要的元素进行加密操作。理论分析和仿真结果表明, 该加密方案具有安全性高, 低成本系统开销的特性。

关键词:视频加密,H.264编码标准,感知加密算法,FLC,安全性

参考文献

[1]刘萧.基于H.264编码的视频加密研究[D].杭州:浙江大学计算机科学与技术学院, 2010:18-29.

[2]毕厚杰.新一代视频压缩编码标准:H.264/AVC[M].北京:人民邮电出版社, 2005.

[3]李晓举, 冯战申, 胡友情.基于H.264 CAVLC熵编码的视频加密方案[J].计算机工程与应用, 2009, 45 (34) :114-117.

[4]包先雨, 蒋建国, 袁炜, 等.H.264/AVC标准中基于CABAC的数字视频加密研究[J].通信学报, 2007, 28 (6) :24-29.

[5]QAO L, NAHRSTEDT K.A new algorithm for MPEG videoencryption[C].In:Proceeding of the Frist International Con-ference on Imaging Science, Systems and Technology (CISST’97) , LasVegas, Nevada, 1997:21-29.

[6]LIAN S G, LIU Z, REN Z.Secure advanced video codingbased on selection algorithms[J].IEEE Transactions onConsumer Electronics, 2006, 52 (2) :621-629.

基于运动对象的快速视频加密方法 篇3

视频加密是保证视频在网络中安全传输的重要手段之一,在视频通信过程中具有重要作用[1]。而传统的加密算法难以满足数字视频的加密要求,这是因为后者主要强调算法本身的安全性,而对于前者,除了要考虑算法本身的安全性外,还需考虑视频加密算法的实时性与加密算法对视频输出速率的影响、网络传输过程中的格式兼容性和算法对视频传输过程中误码鲁棒性等多方面的影响[2]。因此,视频加密的关键是如何选择加密位置与加密算法,使得加密算法具有格式兼容性,并在安全性和实时性之间进行较好的折衷。这里,本文充分利用视频编码过程中生成的运动矢量信息,用其来检测运动对象,并结合快速的混沌与置乱加密算法,实现了一种基于关键宏块的快速视频加密方法。

1 基于运动对象的视频加密算法

为了保证具有海量数据的视频加密算法的实时性,并且使加密算法对视频编码输出速率影响极小化,本文将针对视频图像重建具有关键影响的关键宏块实施有选择性的加密。

1.1 加密宏块的选定

运动对象是视频中的重要的感兴趣区域。本文利用了视频编码过程中产生的运动矢量来提取运动对象。运动矢量的大小在一定程度上反映了块内图像内容的活动程度。一般的,运动矢量值越大则表示图像块运动越剧烈。同时,为了降低计算资源的消耗,运动对象的检测过程中的运动矢量信息可从视频编码过程中获得。这里,对于坐标为(i,j)的宏块,其运动强度定义为式(1)。

其中,分别表示宏块在x与y方向上的运动矢量。这里,如果一个帧间宏块有多个运动矢量,则其运动矢量为该宏块所包含分块运动矢量的平均值,即为式(2):

其中,表示某宏块所包含的分块总数。并且,本文将一帧视频的运动强度定义为式(3):

其中,Nx、Ny分别表示一帧视频在x与y方向上的宏块数。接下来,本文根据的值与宏块运动矢量之间的关系,由式(4)来确定视频图像的加密区域。

其中,δ为加密强度调节因子,其取值越大,所选择的加密宏块就越多,加密强度就越高。

1.2 宏块加密方法

当按上面的方法确定好需要加密的视频区域后,接下来,本文采用以下的加密算法对这些选定的宏块实施加密处理。

(1)加密运功矢量与DC系数的低位部分。首先,通过设置一维Logistic混沌映射[4](式5所示)的初始值X0与系统参数μ,生成长度小于TL的实数混沌序列RSi,其中RSi是由Logistic映射生成的连续k个Xl组成;

接下来,将由Logistic映射生成的实数混沌序列RSi按式(6)转化为二进制序列BSi;

最后,将需要加密宏块的所有QDCT的DCj系数和运动矢量,与混沌序列BSi按位异或,得到加密的系数和运动矢量,这里,为了防止加密后DC系数超出编码器的表示范围,同时为了降低加密对编码输出速率的影响,本文只选择加密DC系数的低位部分。

(2)置乱QDCT非零AC系数位置。在目前的视频编码标准中,通对QDCT块中的AC系数按一定的扫描规则扫描编码,直到最后一个的非零AC系数为止[3],并且每个非零AC系数将与其前面连续的"0"出现的次数,即游程值组成一个游程二元组,编码器对这个游程二元组进行变长编码。因此,对QDCT块非零AC系数的位置进行置乱是简单可行,并与标准兼容的。这里,假设Q(1≤Q≤63)是按编码器扫描规则排列的非零AC系数序列序号,定义随机数S(1≤S≤Q),对QDCT块中非零AC系数的位置进行置乱。由于该置乱只改变了QDCT块中非零AC系数的位置,并没有改变AC系数的值、游程长度和游程二元组的个数,从统计与编码理论上讲,该置乱对编码输出速率影响极小。

最后,将这些加密后的视频数据按视频编码标准要求封装成视频码流,这样就完成了整个加密过程。

2 性能分析

2.1 安全性分析

在本文中,首先采用了对关键宏块中的DC系数与运动矢量的低位部分实施混沌加密的加密方案。一方面,运动宏块中的DC系数与运动矢量都是视频码流中的关键数据,其破坏会引起视频节目严重降质;另一方面,对运动宏块中的DC系数与运动矢量的加密密钥来自非周期性Logistic映射,由于Logistic映射对初值有很强的敏感性,以及本文每次加密均选用不同的密钥,有力地保证了该加密方法的安全性。

然后针对选定的关键QDCT块中的非零AC系数的位置进行置乱。这里,每个QDCT块中的非零AC系数的个数是不同的,根据本文对不同视频节目的统计表明:对每个8×8大小的帧内编码的QDCT块,其中非零AC系数大约为8~17个,这里,不妨取下限8,则每个非零AC系数具有8种可能的取值,则每个QDCT的样本空间最少可达64,如果对于一部常见的70min标清视频节目(分辨率为720×576),如果仅计算其帧内编码图像块(不考虑帧间大范围加密的运动区域),其样本空间最少可达64×70×60×3×(720×576)/(16×16)×6=7,838,208,000。这样一方面,较大的样本空间增强了本文算法对于唯密文攻击的难度;另一方面,非零AC系数的位置置乱、DC系数与运动矢量的混沌加密破坏了视频的主观视觉信息,保证了本文算法对于唯密文攻击的安全性。

2.2 加密算法对码率的影响

本文加密方法可分为两部分,第一部分是加密帧内宏块的DC系数的低位部分和帧间运动宏块的运功矢量与DC系数的低位部分,其加密通过Logistic映射反复迭代生成一些较短的混沌序列,并通过这些较短的混沌序列生产加密密钥完成对运功矢量和DC系数的低位部分的混沌加密。显然,其运算开销非常小。由于这种混沌运算改变了部分系数的统计特性,因此其会在一定程度上降低视频的压缩率,但这部分系数只占所有需编码系数的很小一部分,且这种改变系数的统计特性,并不一定都是降低压缩率,因此,总体上讲,这种对少量系数的低位部分的混沌加密对编码输出速率影响较小。第二部分是采用置乱QDCT块中非零AC系数位置的加密方法,此方法并没有改变AC系数的值、游程长度和游程二元组的个数,从统计与编码理论上讲,该置乱对编码输出速率影响极小。综合这两方面的因素,本文算法对视频的压缩率影响可控制在一定的范围之内。

2.3 格式兼容性分析

本文所采用的加密算法没有修改视频数据的数据头和标识等信息。因此,在接收端或通信的中间环节,都能识别出正确的数据类型并且解码,只是解码后的视频图像会严重降质。因此,此加密算法满足通信过程中视频格式兼容性要求。

3 结束语

本文通过视频运动矢量的分析,着重对检测到的关键宏块的运动矢量、QDCT块的DC系数与非零AC系数实施加密,由于此加密过程选在量化之后,与变长编码同步进行,因此,此方法运算开销小,加密实时性好;且此方法针对视频图像重建具有关键影响的关键宏块实施有选择性的加密,实现了通过加密尽量少的数据,达到一定强度的视频加密效果。同时此方法具有对视频编码速率影响不明显,并与视频标准兼容的优点。

参考文献

[1]包先雨,蒋建国,袁炜,等.H.264/AVC标准中基于CABAC的数字视频加密研究[J].通信学报,2007,28(6):24-27.

[2]于俊清,刘青,何云峰.基于感兴趣区域的H.264视频加密算法[J].计算机学报,2010,33(5):945-953.

[3]Kwon S G,Choi W I,Byeungwoo J.Digital videoscrambling using motion vector and slice relocation[R]//Lecture Notes in Computer Science,2005,3656:207-214.

视频加密 篇4

1 视频加密的原理和方法

1.1 视频加密的密码学方法

最早的视频信号加扰方法是模拟视频加密技术,但这种方法安全级别很低。最早的高保密级视频加密技术是对全部视频数据流直接用密码技术加密和解密,故称为图像和视频加密的密码学方法,也称之为自然加密方法。国内大部分文献称之为传统加密方法。其原理如图1所示。

由于密码技术已有许多安全可靠的成熟算法,以二维或多维数据表示的图像和视频在传输和存储时都要映射成一维数据,若不考虑具体的数据特征,很适合直接应用已有的成熟密码技术加密。其研究基本是基于纯密码科学技术的研究,安全性评价取决于所用密码加密技术。在当前的大多数实用图像和视频加密系统中,图像和视频数据被等同为一维比特流而采用DES等算法加密。也有一些新的密码技术用于视频加密,同时在性能上有了进一步的改进。

是由于图像和视频信号数据量很大,所以这种加密方法计算量非常大,不仅浪费资源,而且难以保证实时性。由于许多图像信号特别是视频信号往往要求实时在线传输,且大多数应用都要求降低成本,从而限制了这种加密方法的应用。另外,若标志信息经加密无法识别,则不能实现在线传输和检索功能。

1.2 选择性加密方法

密码学方法虽然安全,但这种加密方法计算量非常大,往往难以实用。为解决这一对矛盾,人们研究了视频的信源特征,把密码原理与视频技术结合起来,取得了一些研究成果。有人提出一种针对图像和视频编码的部分数据加密思路。图2(a)表示密码学方法,对所有数据用密码技术加密;图2(b)表示部分数据加密方法,只对选择的重要数据加密。

在视频加密的算法中,除纯密码学方法之外,对选择性加密方法研究得比较多,其中又以对加密变换(DCT)系数的算法为多。主要有以下几种:

(1)仅对I帧加密算法

仅对I帧DCT系数块加密,具有扩散作用,使P、B帧利用运动补偿进行差值编码的相应块不加密也难以正确解码,达到了选择部分数据加密减少计算量的目的。该算法由于减少了加密数据量,因而节约30%~50%的加解密时间,提高了加、解密速度,且不改变原视频编码数据码流量大小,因而不影响压缩率。但这种算法不安全,场景变换和运动剧烈的P、B帧(P、B帧内的I块)会被正确解码,在保密要求高的场合不能单独使用。本算法可通过增加I帧频率来提高密级,但是I帧频率越高,计算量越大,速度就越慢。有人讨论了其改进方法,加密包括P、B帧中I块的所有I-block,但也存在问题:(1)在P、B帧中识别I块需要一定的额外开销;(2)在某些视频中,P、B帧中的I块数量与I帧中数量相近,因此,减少数据量不明显,还不如改用纯密码(Naive)算法。

(2)加密运动矢量算法

随机改变运动矢量的符号位或同时改变符号位和数值来影响P、B帧正确解码。对I帧编解码完全没有影响,故不能单独使用,主要作为增强安全性的补充算法。加密数据量小,计算量小,因而速度快;不降低编码压缩率,只适用于视频编码数据。

(3)DCT块系数分层加密算法

把DCT系数从低频到高频分为基本层(base layer)、中间层(middle layer)和增强层(enhancement layer)三部分。在0~63范围定义两个整数分界点(breakpoint),作为一个分界点组(breakpoint group),确定三部分之间的边界。定义第一个分界点为容损点(loss-tolerance breakpoint),第二个点为安全点(security breakpoint)。在这个算法中,只加密基本层和中间层,可以减少计算量;保证基本层传送,即使中间层和增强层丢失,接收方也能显示出主要信息。该算法可以让用户根据不同的安全性级别来选择分界点组合,在安全性、计算量、容错能力之间进行折中。对基本层和中间层加密的密码算法也可以另行选择。该算法只对部分DCT系数加密,减少了计算量。类似的选择性加密的算法有:仅加密DC系数或加密DC系数和少量低频AC系数、随机改变DCT系数符号等。

(4)仅加密头信息算法

将头信息加密,再与其他数据随机混合,使接收方难以按原数据结构区分结构信息和视频信息并解码。该算法不降低压缩率,计算量小。但是安全性较低,因为头信息所含信息量小,加密效率低,这种加密方式比较容易破译。为便于合法收方解码,需加入同步信息,或保留原来部分同步信息。

1.3 针对MPEG码流统计特性的算法

针对MPEG码流统计特性(Statistical behavior of MPEG)的算法称为VEA(Video Encryption Algorithm)算法。经压缩编码的码流因去除相关性,具有一定的随机性。将I帧(撇开头标志等特殊码流)分为8或16(通常16)大块(chunk),在任何chunk中,没有重复的字节模式。据此提出下面的VEA算法。

设一个I帧的某个chunk为如下形式:a1,a2,a3,a4,...,a2n-1,a2n。选择奇数号的字节组成奇队列(Odd List),选择偶数号的字节组成偶队列(Even List)。将两个新数据流异或。选择一种加密函数(例如DES)来加密偶队列a2,a4,...,a2n。得到的密文为:c1,c2,…,cn,E(a2,a4,…,a2n)。如果a2,a4,…,a2n没有重复模式(repeated pattern),说明具有足够随机性,a2,a4,…,a2n对a1a3,…,a2n-1的简单异或,是一次一密乱码本(one-time pad)加密,这是被公认为非常保密的。VEA算法密级就决定于函数E。

该方法只加密部分视频流,待加密数据分为两半,一半用密码方法(函数E)加密,另一半用简单异或,因此总体减少了计算量,提高了计算速度。该方法不影响压缩率,适用于压缩的视频编码数据,而且压缩效果越好,加密效果也越好。

1.4 DCT频域系数乱序算法

DCT频域系数乱序算法(Zig-Zag Permutation Algorithm)把DCT频域系数8×8块按随机的顺序映射成1×64矢量,而不按ZIG-ZAG顺序。有人首先提供了三步基本算法,但设计者自己指出,基本算法对已知明文攻击是脆弱的,因此提供了两种附加方法增强算法的安全性。

(1)对DC系数另用DES加密。

(2)产生两张不同的顺序置乱序列表,随机选用。

DCT频域系数乱序算法速度很快。但存在严重的安全性问题。两种附加方法也无法解决。已知明文攻击(Known-plaintext attack)和唯密文攻击(Ciphertext only attack)都可以成功破解该算法。另外,经过加密的MPEG流大小将显著增加,最大可增加46%,严重降低压缩率。

2 新的视频加密方法

针对视频数据具有层次结构性强、数据量大以及实时传输要求高的特点,本系统采用了一种新式的视频加密算法。其主要思想为:仅对视频码流中的少部分重要数据进行高强度的加密。因为视频码流中各部分数据的重要性不同,某些关键数据(如视频宏块中的直流分量值DC,交流分量值AC和位移矢量MV等)虽然数据量比较小,但是对视频码流的解码和视频图像的重建起着至关重要的作用,所以仅对这些少量数据运用AES、IDEA等加密算法进行加密,就可以取得对整个视频码流安全加密的效果。该视频加密算法原理如图3所示。

该视频加密算法具有如下特点:(1)独立于视频编解码器。(2)独立于密码学算法,用户可以根据自己的要求选择不同的加密算法,如DES、AES或IDEA等。(3)对不同关键数据的选取和组合,可以提供高、中、低三个不同的加密级别,用户可根据不同的保密要求和网络带宽进行选择。(4)计算量小、加密速度快、附加带宽少。

3 新的视频加密方法的实现

3.1 新的视频加密方法的硬件实现

图4所示是基于对上述新的视频加密算法而设计的一种采用嵌入式主处理器DM1105和加密配置芯片DM2016的数字视频加密系统。

DM1105主要应用于卫星、有线信号以及地面传输的数字电视、IP数据的接收,也可以用于8/16位CCIR656标准YUV视频信号的接收。DM1105内集成了DVB标准解扰算法,可以同时进行32路解扰,还具备遥控器接收功能,通过扩展还能够外接两个PCMCIA插槽。图5是DM1105应用的原理结构框图。

3.2 新的视频加密方法的软件实现

示例采用C语言实现基于嵌入式系统的AES加密运算。

(1)先定义sbox和pbox,并初始化,将它们放入code中:

(2)定义两个全局变量key_pbox和key_sbox,存储初始化后的子密钥:

unsigned long key_pbox[18];

unsigned long key_sbox[4][256];

(3)完成下列函数:

//AES初始化函数

void AES_Constructor(void);

void AES_Destructor(void);

//设置AES密钥函数

BOOLEAN SetKey(const unsigned char*key,int keylen);

//AES加密函数

BOOLEAN Encrypt(const unsigned char*in,int inlen,

unsigned char*out,int*outlen);

//AES解密函数

BOOLEAN Decrypt(const unsigned char*in,int inlen,

unsigned char*out,int*outlen);

……

(4)初始化嵌入式系统,用TESTKEY作为密钥进行初始化,对算法进行测试。

在编译优化后,对代码做进一步优化。首先使用TI集成开发环境的代码分析器(profiler)对代码进行分析。在CCS中可以统计某段代码的执行时间,这被称作剖析(profile)。代码剖析可以迅速地评估程序的性能以便优化代码。经过编译优化和代码优化后,AES算法在该嵌入式系统中具有高速数据处理能力,在保证安全性目标的同时,又不影响数字视频信号对通信实时性要求,从而有助于解决数字电视传输控制网络中实时数据加密和安全问题。

本文介绍了几种常用视频加密算法,分析了这几种算法的优缺点,提出了一种仅对视频码流中解码和视频图像的重建起着至关重要作用的少部分数据进行高强度加密的方法,并利用嵌入式芯片DM1105和加密配置芯片DM2016组成一个加密、解密系统来实现上述数字视频信号的加密。

摘要:几种常用数字视频信号加密技术的原理与方法,分析了这些加密方法的优点和存在的不足。提出了一种仅对视频码流中解码和视频图像的重建起着重要作用的少部分数据进行高强度加密的方法,这一方法可以取得对整个视频码流安全加密的效果。

关键词:数字视频,加密技术,嵌入式系统

参考文献

[1]张镭,张川,徐正全.基于H.323协议的视频加密网关的设计[J].计算机工程,2006(14):138-140.

[2]廉士国,孙金生,王执铨.几种典型视频加密算法的性能评价[J].中国图像图形学报2004(4):483-490.

[3]李伟,刘树波,徐正全.基于TM1300的嵌入式网络视频编码器的设计[J].武汉大学学报,2004(3):110-113.

[4]洪家平.嵌入式系统加密技术在数字电视中的应用研究[J].电子技术应用,2008(9).

视频加密 篇5

关键词:多规则小波变换,视频水印,鲁棒性

目前数字视频水印技术是信息安全和多媒体领域的一个研究热点。广播电视的数字化能更方便、更快捷地传播电视节目,促进电视业的快速发展。但在盗版日益猖獗的今天,传统的版权保护也受到冲击,如何防止大量视频作品被非法传播,也是广播电视数字化过程中需要解决的问题,而视频水印恰恰能为数字视频提供一种版权保护,其研究具有一定的现实意义[1]。

安全性和鲁棒性是视频水印技术的两个重要特性。鲁棒性是指加入水印信息的视频序列在经过信道噪声、滤波、剪切等一系列有意或无意的处理过程后,其水印信息仍能保持相对完整并能够被准确鉴别。安全性是指嵌入到视频中的水印信息应该是难以篡改或伪造,有助于对数字版权信息的保护。因此,一个好的视频水印算法应该具有以上几项特征,在一定范围内寻求一种最佳平衡点。

基于小波变换的视频水印就是通过一定的小波变换在源视频中加入版权等水印信息,保证了视频的鲁棒性,再对水印信息进行转换、置乱、加密等手段,使视频作品的版权信息具有一定的隐蔽性,从而起到监视广播、防止拷贝、作品认证等作用[2]。最后通过数字水印的提取和检测,可以验证视频作品的版权所有者,也可以检验视频水印的抗攻击性,使视频作品的版权得到有效的保护。

1 多维小波变换

小波变换是将信号从时域转换到变换域的一种变换,其变换尺度不同,所对应的频率范围也不同。因此,小波变换是基于变换域的一种有效的分析工具。原视频序列的低频和高频部分经过小波变换后,系数比较集中,有利于编码输出;同时,在一定窗口下可以获得多层的低频和高频信息,有效克服了傅里叶变换的局限性,更加适应人眼特征,小波变换在数字水印方面有着广泛的研究[3]。

将任意函数f(t)在小波基下展开,称为连续小波变换,表达式为

WΤf(α,τ)=1αf(t)ψ(t-τα)dt(1)

式中:WT是小波变换系数,ψ(t)是小波基,具有尺度α和平移τ两个参数。因此,时域函数f(t)经小波变换后投影到二维平面上,这有利于时域信号一些特征的提取。对上述变换公式进行离散化,有利于计算机进行分析处理,同时将一维变换拓展到二维,实现帧图像的小波变换,离散化变换式为

WΤf(j,k)=f(t)ψj,k*(t)dt(2)

式中:尺度的离散化α进行幂数级离散,即α=a0j,a0>0,j∈Z;位移离散化取τ=ka0jτ0,并满足Nyquist采样定理。当α=2j时,j增加1,尺度α增加一倍,对应频率减少一半,此时采样频率可降低一半而不会引起信息的丢失。

设某视频共有M帧图像,每m帧图像(Mm的整数倍)提取关键帧,对关键帧图像进行多维小波变换。帧图像经过一维小波变换后,形成一个低频带和一个高频带图像;对单个频带图像还可以再进行分解,又分解成一个相对的低频和高频带。进行L级小波分解,产生(3L+1)个不同频带,其中包含3L个高频带小波系数和一个低频带小波系数。小波重构后,可以得到一个多维的小波分解图像。二级小波分解如图1所示。

左上角LL2是二级小波分解后的最低频部分,HL2是经过水平方向高通、垂直方向低通滤波后的信息。同理,LH2是水平方向低通、垂直方向高通滤波后的信息,HH2是水平和垂直方向高通滤波后的信息。相同的处理过程可以在其他频带重复进行。

小波变换后的帧图像具有与源图像帧不同的特性,但数据总量相等,图像的能量主要集中在低频部分,而边缘和细节等信息主要集中在高频部分。

2 视频水印算法

2.1 水印图像置乱处理

在水印嵌入到视频之前,充分保证水印的私密性,往往对水印图像进行预处理,利用密钥对水印图像进行随机置乱。置乱算法采用基于行列的多次迭代处理,迭代的次数作为密钥,再通过伪随机序列对置乱后的图像进行加密处理,序列的初始值作为密钥二[4]。经过置乱、加密后的水印图像就可以通过水印嵌入模块隐藏在视频序列中,从而更好地保护数字版权不被侵犯。原始水印图像(大小为50×20的BMP图像)和置乱后的水印图像分别如图2和图3所示。

2.2 基于多规则的水印嵌入

对视频序列进行关键帧的提取和水印图像的置乱、加密等预处理后,再对二者分别进行多维小波变换,得到多分辨率下的小波系数,对不同频率段的小波系数进行多规则的水印嵌入融合,得到嵌入融合后的小波系数,经过小波重构后形成新的视频序列,加到源视频位置处,得到嵌入水印后的视频序列。

具体步骤如下:

1) 对视频序列进行关键帧的提取,得到m帧关键帧图像;对水印图像进行置乱处理,置乱次数作为密钥,得到预处理后的水印图像。

2) 对置乱后的水印图像进行一级小波分解,分别得到水平小波系数W(LH,i,j)、垂直小波系数W(HL,i,j)、对角分量小波系数W(HH,i,j)和低频分量小波系数W(LL,i,j)。

3) 对原视频序列图像X进行三级小波变换[5],得到水平小波系数X(LH3,i,j)、垂直系数X(HL3,i,j)、对角分量小波系数X(HH3,i,j)和低频分量小波系数X(LL3,i,j)。

4) 由于人眼对低频图像的失真比较敏感,基于水印的不可感知性,将水印嵌入到视频序列的水平和垂直小波系数位置,对于变换后的小波系数按照式(3)计算水印嵌入后的小波系数

Xk(i,j)=Xk(i,j)+α×W(i,j) (3)

式中:Xk(i,j)是第k帧视频序列、位置(i,j)上嵌入的水印小波系数值,XkW分别是视频帧和水印图像的小波变换系数,α是水印嵌入强度参数,其值应权衡不可见性和鲁棒性要求[6]。

5) 由于人眼对高频分量噪声的敏感度低于水平、垂直分量上噪声敏感度[6],所以将水印图像小波分解后的低频分量嵌入到原视频序列小波分解后的对角分量上,公式为

Xk(ΗΗ,i,j)=Xk(ΗΗ,i,j)+α1+α×W(LL,i,j)(4)

6) 由于低频分量包含了原始视频序列的大部分信息,在一定失真情况下,仍能保留主要成分,将水印图像经小波分解后的低频分量再次嵌入到原始视频序列图像的低频分量中,公式为

Xk(LL,i,j)=Xk(LL,i,j)+11+α×W(LL,i,j)(5)

7) 对不同频带得到的小波系数进行小波重构,得到嵌入水印后的视频序列[7]。

2.3 水印提取

在水印的提取过程中,采用不需要原始水印的盲提取算法。首先对含水印的视频帧和源视频帧进行L维小波变换,得到(3L+1)个低频、高频和中间频带小波系数。对于不同频带分别根据上文的步骤3)~步骤7)的逆变换提取出置乱后的水印图像的各层小波系数,进行小波逆变换,得到置乱的水印图像。提取到置乱后的水印图像后,通过相同的置乱密钥,最后还原成原始的水印图像。

3 实验结果与分析

本文采用标准的视频序列作为测试视频,该视频是64帧序列,大小是256×256,其中对于低频带的水印嵌入强度取α=0.2,原视频关键帧序列如图4所示,加入水印后视频关键帧如图5所示,对小波系数进行重构,提取的水印如图6所示,其中原水印是50×20的BMP图像。从主观视觉来看,加入水印的视频序列仍然比较清晰,而从中提取的水印可以很好地验证版权信息,安全性比较高。对于水印鲁棒性的测试,采用几种常用的针对视频的致命攻击,分别是噪声攻击、几何失真和压缩攻击[8]。

3.1 噪声攻击

试验中,用不同强度的高斯白噪声对嵌入水印的视频序列进行攻击。当峰值信噪比psnrvalue = 46.510 8时,从水印视频中提取的水印和原始水印相似度为NC = 0.997 4。添加高斯噪声后提取的水印的图像如图7所示,从主观视觉和实验数据来看,其鲁棒性比较好。

3.2 几何失真攻击

几何失真包括对图像的尺寸进行变化、剪切、删除或增加图像线条等操作。许多水印算法对这些几何失真都比较脆弱,容易丢失水印信息,因此水印图像在几何失真时候的鲁棒性检测非常重要。图8是对视频序列进行剪切后提取的水印,其信噪功率比和相似度分别是psnrvalue=46.510 8,NC=0.926 3。从主观视觉和相似度的数据来看,经过几何失真后提取的水印图像仍比较清晰,从而有效地保护了版权信息。

3.3 缩放攻击

现实中,为了节省存储空间和传输的需要,往往要对视频序列进行缩放处理,所以有必要考虑视频序列在嵌入水印后的抗缩放性能,使视频水印具有实际的应用价值。图9是对视频序列进行压缩比为50%后提取的水印图像,其峰值信噪比和相似度分别是psnrvalue=46.510 8,NC=0.999 1。从主观视觉和实验数据来看,经过压缩后提取的水印图像也比较清晰,从而表明该水印算法具有比较高的抗攻击性能。

4 结论

本文研究了基于小波变换域的视频水印算法,提出了基于多维小波变化的多规则视频水印嵌入和提取算法。该算法针对原视频序列每m帧提取一幅关键帧进行小波分解,这样占用内存比较少,而且计算量大大降低;关键帧图像和水印图像采用多规则融合的方法提炼小波系数,提高了数字水印的安全性和鲁棒性,解决了视频监视应用中对水印及视频片段的认证问题。水印的嵌入和提取都是基于小波的L维变换中进行,充分利用了多维小波良好的多分辨特性,利用融合技术提高水印的鲁棒性[9]。最后,实验仿真结果表明,本文算采用算法是可行的、有效的。

参考文献

[1]郭烽,张春田.应用于版权保护的视频数字水印[J].电视技术,2001,25(6):21-23.

[2]伍宏涛,张立和.视频水印技术发展分析[J].电视技术,2003,27(8):70-72.

[3]章毓晋.图像工程[M].北京:清华大学出版社,2006:87-90.

[4]霍菲菲,高新波.基于三维小波变换的视频水印嵌入与盲提取算法[J].电子与信息学报,2007(2):447-450.

[5]刘红梅,黄继武,肖自美.一种小波变换域的自适应视频水印算法[J].电子学报,2001(12):165-167.

[6]周国志,徐岩,任连涛,等.基于DCT的数字视频水印算法研究[J].电视技术,2006,30(9):81-83.

[7]ZHUANG H Y,LI Y,WU C K.A blind spatial-temporal algorithm basedon 3D wavelet for video watermarking[C]//Proc.IEEE InternationalConference on Multimedia and Expo.Xi’an:[s.n.],2004:1727-1730.

[8]范文杰,李灿平,刘志平.基于数字水印的H.264视频传输错误检测[J].电视技术,2006,30(S1):131-133.

视频加密 篇6

关键词:超混沌,RC4,视频加密

随着多媒体应用的快速发展,大量公开的和私有的图像和视频等多媒体信息被通过网络传输,这一领域的信息安全已得到商业和学术界的广泛关注。如何将多媒体信息进行安全地传送成为一个至关紧要的问题。视频加密是其首要的解决方法。

近年来,人们已经提出了多种视频加密算法。Lei Tang[1]提出了利用Zigzag置乱DCT(Discrete Cosine Transformation)系数的加密算法。Shi[2]提出了利用流密码加密DCT系数符号和运动矢量符号的MPEG视频流加密算法。Kezia[3]提出了基于Lorenz混沌映射的数字视频加密算法。

本文在上述加密算法的基础上,提出了一种将加密与压缩过程相结合的视频加密算法。利用超混沌系统生成四个伪随机序列,将其分别用作RC4的种子密钥,产生新的随机序列,用来加密DC系数、AC系数符号和运动矢量符号。

1 算法基础

1.1 超混沌系统

混沌是一种貌似无规则的运动,具有不可预测性、对初始值的敏感性等一系列特征,因而被广泛应用在图像/视频加密领域。然而,低维混沌系统因其参数少、密钥简单,在安全性方面存在明显不足。超混沌系统是一种特殊的系统,可以克服一般混沌系统的缺点。它具有多个参数、两个或两个以上正的Lyapunov指数和相对复杂的动力学行为。同时,它能够提高系统的抗破译能力,因此,本文采用基于超混沌的视频加密算法,将获得更高的安全性。

文献[4]在Chen氏系统的基础上,提出了一个新的超混沌系统,其定义如下

式中:a,b,c,d,k为系统参数;x1,x2,x3,x4为系统初始值;为经混沌系统后的输出序列。当a=36,b=-16,c=28,d=3,-0.7≤k≤0.7时,系统进入超混沌状态。

1.2 RC4

RC4是Ronald Rivest在1987年为RSA公司设计的一种流密码。它采用随机置换算法和对称密钥技术,具有密钥长度灵活可变、基于字节操作等特点。该算法简单、易于实现、加解密速度快。

整个RC4算法包含2个部分:密钥编排算法(Key Scheduling Algorithm,KSA)以及伪随机序列生成算法(Pseudo Random Generation Algorithm,PRGA)。KSA算法中的S盒包含N个元素(N=2n,通常n=256),遍历0到N-1,由种子密钥k对其进行置乱,得到新的S盒。PRGA算法在新的S盒间进行随机置换,产生加密密钥,即随机序列。从上述描述可知,RC4的安全性取决于种子密钥和内在的S盒,因此本文采用超混沌序列作为其种子密钥,提高算法的安全性。

2 算法设计

本算法方案[5]取在量化之后熵编码之前,为了减少运算量和密钥开销且不影响压缩效率,首先,如果选在量化之前对视频进行加密,经过量化后,很多系数会变成0,那么就会浪费分配好的密钥。其次,量化之前的加密,会破坏DCT系数自身的统计特性和ZigZag特性,故选择在量化之后对DCT系数和运动矢量符号进行加密,这样就不会对压缩比和码率产生较大影响,能获得非常好的加密效果[6]。

2.1 基于超混沌的改进RC4加密算法

RC4[7]是一个基于随机置换的对称密钥算法,其采用异或运算进行加密,若子密钥序列中出现重复子序列,密文被破解的几率就大大增加。传统的超混沌加密算法对抗差分攻击效果不好。针对上述问题,本文提出一种改进型的RC4加密算法,其主要思想是利用超混沌系统产生的随机序列作为RC4的种子密钥发生器,随机生成序列密钥,增加密钥的随机性[8]。其步骤如下:

步骤1,给定混沌系统的初始值x0,y0,z0,w0,通过四阶龙格-库塔算法迭代N0次得到新的初始序列x'0,y'0,z'0,w'0,这样可以消除混沌系统的暂态效应。

式中:i=1,2,…,k;abs()函数用来求整数的绝对值;floor()为向下取整函数;mod()为取余函数,分别对x'0,y'0,z'0,w'0序列进行离散化,得到新的伪随机序列xk,yk,zk,wk。

步骤2,分别对步骤1得到的xk,yk,zk,wk序列进行128 bit的截取,将其作为RC4的种子密钥进行新一轮的运算,产生新的密钥流x'k,y'k,z'k,w'k,将其用于最终的加密。

2.2 加/解密算法

由2.1节中产生的加密密钥流,w'k用来加密DC系数,x'k,y'k,z'k三个随机序列为

分别计算得到3个新的超混沌序列Xk,Yk,Zk,用来加密AC系数和运动矢量。

2.2.1 加密DC系数

图像/视频经过DCT变换后,使得低频部分集中了大部分的能量,因此,为了更好地破坏图像的可理解性,本文选择对低频部分的系数进行改变。同时保证减少密钥的开销,降低对压缩比的影响,又能达到相对较好的加密效果,本文采用下述算法对DC系数进行加密:

步骤1,得到宏块总数M,求满足条件(2t-1<M<2t)的t;

步骤2,将经过RC4加密所得混沌序列w'k中抽取t个混沌值{w'1,w'2,…,w't},并将t个混沌值小数部分的第三位放在一起,组成一个t位的随机数;

步骤3,重复步骤2得到M个随机数;

步骤4,用洗牌算法把这M个数映射到[1,M]上,产生[1,M]上随机但不重复的整数;

步骤5,用这M个整数组成置乱矩阵对DC系数进行置乱;

步骤6,重复步骤1~4,生成M',对置乱后的DC系数进行扩散。

2.2.2 加密非零AC系数符号

由于AC系数和DC系数之间的相关性,同时AC系数能反应出图像的细节,因此需要加密AC系数的符号位。考虑量化后的交流系数AC中,含有大量的0,如果全部加密,势必会增加密钥的开销,因此,本文选择加密非零AC系数的符号位,这样会大大简化计算复杂度,同时对熵编码后的压缩比不产生太大的负面影响。具体步骤如下:

步骤1,将式(5)产生的的混沌序列Zk根据式(6)计算

式中:sign()是符号函数,变换成GF(2)域中的二进制序列,这就得到了混沌序列的二值量化序列Z'k。

步骤2,将Z'k序列与非零AC系数按位异或,异或的结果作为AC系数的符号。

2.2.3 加密运动矢量符号

视频图像中的运动信息主要由运动矢量表示,因此对运动矢量进行加密,可以有效防止攻击者对P帧和B帧的破解。同时为了降低加密过程的运算复杂度,本文仅选择对运动矢量的符号位进行加密。因为运动矢量采用差分编码,加密其符号位可同时改变运动矢量的方向和大小。另外,运动矢量的编码是在压缩比不变的基础上,对符号位进行单独编码。其加密采用异或算法,与2.2.2中的加密方法一样。如果运动矢量大于等于0,它的符号用“1”表示;如果小于0,就用“0”表示。这样,所有运动矢量的符号可以组合成字节。利用式(3)、式(4)产生的序列Xk,Yk分别与x,y方向的运动矢量按位异或。

3 仿真结果

本算法利用MATLAB 2012a平台进行仿真实验,查看其加密性能。使用QCIF格式(352×288)的bus.yuv的视频序列进行测试。超混沌系统的初始值分别为[1.378,-0.581,1.649,1.528],迭代次数N0=25,控制参数k=0.4。实验结果如图1~图2所示。图1为bus.yuv第5帧截图,图2为加密后bus.yuv第5帧截图。

4 安全性分析

4.1 密钥空间分析

在本文算法中,分别应用DC系数加密、AC系数符号加密和运动矢量符号加密。因此密钥空间由4个初始密钥x0,y0,z0,w0和迭代次数N0组成。假设DC系数加密过程为P1,AC系数符号加密过程为P2,运动矢量x方向加密过程为P3,运动矢量y方向加密过程为P4,迭代次数N0为P5,则该算法密钥空间为P=P1×P2×P3×P4×P5。这里,每个参数精度都可达10-16,密钥空间可达10-80,在实际使用过程中,即使精度稍有降低,密钥空间也仍然很大,足以抵抗穷举攻击。

4.2 密钥敏感性分析

参数的敏感性直接影响到加密系统的密钥空间大小,因为参数越是敏感,实际有效的密钥量就越大,更能有效地抵抗穷举攻击。

一个优秀的密码系统应该对密钥具有极端的敏感性,并在一定程度上保证密码系统抵抗暴力攻击的安全性。因此,对本文算法进行密钥敏感性测试。给初始值加入一个1016的改变,将其作为加密密钥,用加密的结果与初始密钥得到的视频序列进行比较。由图3可以看出,初始密钥极微小的改变也会产生完全不同的加密结果。

4.3 直方图分析

图像的直方图可以显示像素在图像中的亮度水平分布。如图4所示分别为原始视频图像和加密视频图像的统计直方图。

根据原始视频图像和加密视频图像的直方图可以看到,加密后图像的直方图呈均匀分布状态,与加密前的完全不同。因此,攻击者无法根据视频图像的统计特性破译出原始视频,本文中算法足以抵抗统计分析攻击[9,10]。

4.4 相关性分析

原始数字视频相邻像素间通常具有较高的相关性。香农提出扩散和置乱两种方法可以抵抗基于统计分析的攻击,而加密算法的本质就是对视频像素进行置乱和扩散。理想的加密算法应该使加密视频相邻像素间零相关性[11,12]。

原始视频和加密视频一帧中相邻像素在垂直、水平以及对角方向上的相关系数可以由式(7)计算得到

本文从水平、垂直以及对角方向随机选取1 000对相邻像素对,分别进行相关系数计算。表1列出了不同方向上的相关系数值。图5分别显示原始视频和加密视频一帧垂直方向上两个相邻像素间的相关系数。

4.5 计算量分析

本加密算法仅加密视频流中少量的关键信息,在对非零AC系数符号、运动矢量系数符号加密时,仅用异或运算,计算量很小。故其加密或解密的速度是非常快的,计算量很低,适用于实时加密。

5 结论

本文结合超混沌系统和RC4的特点提出了一种安全的视频加密方案。因为超混沌系统对初始条件的敏感性,在加密视频过程中可以大大提高参数的安全性。将经过RC4加密的超混沌序列加密参考帧的DC系数、AC系数运动矢量。仿真结果和性能分析表明,该算法具有足够大的密钥空间和快速的加密效率,从而保证了视频的安全性。

参考文献

[1]TANG Lei.Methods for encryption and decryption MPEG video data efficiently[C]//Proc.4th ACM International Conference on Multimedia.New York:ACM Press,1996:219-229.

[2]SHI C,BHARGAVA B.Light-weight MPEG video encryption algorithm[C]//Proc.International Conference on Multimedia.New Delhi:IEEE Press,1998:55-61.

[3]HEPHZIBAH K,GNANOU F S.Encryption of digital video encryption based on Lorenz chaotic system[C]//Proc.16th International Conference on Advanced Computing and Commuication.Chennai:IEEE Press,2008:40-45.

[4]WANG Wei,LIU Fenlin,GE Xin,et al.Color image encryption algorithm based on hyper chaos[C]//Proc.2nd IEEE International Conference on Information Management and Engineering.Chengdu:IEEE Press,2010:271-274.

[5]王静波,周栩,许相莉,等.基于视频压缩标准H.264的视频加密算法[J].吉林大学学报:理学版,2009,47(1):75-81.

[6]CHEN Qiuqiong,ZHANG Zhenjuan.New video compression and encryption algorithm based on hyper-chaos[C]//Proc.9th International Conference on Fuzzy Systems and Knowledge Discovery.[S.l.]:IEEE Press,2012:1869-1873.

[7]刘宴兵,田四梅,唐浩坤,等.基于混沌的RC4流加密算法[J].计算机工程,2011,37(2):136-138.

[8]GINTING R U,DILLAK R Y.Digtal color image encryption using RC4 sream cipher and chaotic logistic map[C]//Proc.International Conference on Information Technology and Electrical Engineering.Yogyakarta:IEEE Press,2013:101-105.

[9]TONG Xiaojun,LIU Yang,ZHANG Miao,et al.A novel image scheme based on dynamical multiple chaos and baker map[C]//Proc.11th International Symposium on Distributed Computing and Applications to Business,Engineering&Science.[S.l.]:IEEE Press,2012:285-289.

[10]YAO Huazhen,JING Yatao.The design of video-conference encryption system based on H.264[C]//Proc.International Conference on Multimedia Technology.Ningbo:IEEE Press,2010:1-4.

[11]LEI Lihong,BAI Fengming,HAN Xuehui.New image encryption algorithm based on logistic map and hyper-chaos[C]//Proc.International Conference on Computional and Information Sciences.Shiyan:IEEE Press,2013:713-716.

视频加密 篇7

下一代互联网 (IPv6、Qo S) 以及无线移动通信 (3G、Wi Fi、Wi MAX、Ad-hoc) 推动了宽带、移动多媒体技术的发展, 基于多媒体编码技术的各种视频应用 (Pay-per-View, Pay-TV, Vo D, Video Conferencing) 也变得丰富多彩。但视频流数据存储和传输的广泛性和便易性等特点, 使其更容易受到破坏和攻击, 制约着众多商业应用的进程。基于某些视频应用的特殊性, 我们只需要对其中的部分数据进行加密, 使图像质量下降到人的视觉无法正常感知的程度, 使未经授权的用户不能正常获取视频的有效信息;另外通过一些密码学方法, 保证破解加密的代价大于购买版权的代价, 就能够满足不同商业应用的需求。

文中, 我们提出一种对H.264[1]编码的视频数据加密的方案, 通过引入一种新的宏块数据划分机制, 对视频数据进行分层次有差别的加密, 来解决视频在网络中传输的安全问题。

1 相关研究工作介绍

H.264是当前最新的视频编码标准, 它因为具有良好的网络特性和高效的编码效率, 在各种网络视频传输中得到广泛应用。国内外学者针对H.264视频加密领域做了大量的研究工作, 其中选择加密算法成了视频加密的主要研究方向。这类算法要求加密过程与视频数据的格式相结合, 并且可以根据安全性要求的不同, 选择加密不同的敏感数据, 这类算法通常具有较低的计算复杂度, 具有较强的数据可操作性, 适合更广泛的应用。

常见的选择加密方法可以分为三类:频域加密算法、空间域加密算法和熵编码加密算法。频域加密算法中常常对DCT系数进行加密, 文献[2]提出了一种在H.264标准下对DCT系数进行加密的方法, 它将DCT系数分为AC、DC两类, 分别进行加密操作。空间域加密算法针对帧内空间预测信息进行加密, 文献[3]对H.264的帧内预测模式进行了加密。熵编码加密算法是结合具体熵编码过程进行加密的方法, 文献[4]等人研究了基于CAVLC进行熵编码的加密方法, 而在文献[5]中, 提出了一种针对CABAC进行熵编码加密的方法。但是, 单一地对某种语法元素进行加密, 会使得安全性和加密视觉效果难以达到要求, 文献[4]中指出, 单纯地对预测模式和残差系数进行加密在视觉安全性不够理想, 而且也无法有效抵御置换攻击。而同时对多种语法元素进行加密虽具有更好的安全性, 但却会带来过大的系统开销。

为了使得选择加密算法能够支持不同场景下的商业应用, 新的研究趋势是考虑如何对加密的视频数据进行有效的分类, 通过提供不同的安全级别来对加密的强度进行控制, 从而满足不同的应用需求。在文献[6]中, 提出了一种强度可控的加密算法, 可以提供4种不同强度的加密控制。而文献[7]中, 提出了几种新的数据分类方法, 对不同的视频数据进行分类加密。但是上述几种方法在对加密强度的控制灵活性方面仍略显不足。

2 方案

要满足多媒体视频传输的实时性和安全性, 加密方案必须要提供以下特性:安全性、低成本的系统开销、网络友好性。本文主要通过两种方法来达到上述目标:一是对视频数据进行分类, 把视频数据按照不同的重要程度进行划分;二是利用不均等加密方案, 对重要数据进行较复杂的加密, 对不太重要的数据部分进行简单的加密。而在对视频数据进行加密的过程中, 通过合理的选择策略, 可以保持视频数据的语义格式不变。通过这种方式, 就可以较低的开销来获得很高的安全性, 并保持H.264编码本身良好压缩率和容错机制等特性。

2.1 基于宏块重要性的数据划分方法

在文献[6, 7]中介绍的几种加密数据的分类方法, 都是根据视频编码流中的语义元素来进行分类的, 这种单纯依靠语义元素进行数据的分类并不能真实反映出不同数据在视觉感知上的重要性。在真实情况下, 视频场景变化是不均匀的, 不同宏块数据在重构图像中所起的作用是不同的, 如果能对具有较高重要程度的宏块数据进行优先加密, 将会获得更好的加密效果。正是基于以上考虑, 我们利用文献[8]中提出的一种宏块重要性度量算法, 引入“失真度”来对宏块的重要程度进行评估。我们在对每个帧进行编码的过程中, 通过计算每个宏块的失真度来标定宏块的重要程度, 并根据重要程度的不同对视频宏块数据进行有效划分, 下文中我们将给出详细的算法描述。

在对宏块进行重要程度的划分后, 需要把他们分配到不同的数据分区中, 这样可以优先对比较重要的数据进行加密或是对不同的数据利用不同的加密策略。在这里, 我们用到一种H.264中的新特性—FMO编码机制[9]。在一般情况下, 对一个帧的宏块进行编码是按照光栅扫描顺序进行编码的。FMO机制允许编码器不必遵从这种顺序, 可以采用更加灵活的宏块编码顺序。H.264中提出Slice Group的概念来支持FMO编码, 一个视频帧可以分为多个Slice Group, 用Slice Group ID来区分, 每个Slice Group包含某一类特定的宏块。在本文中, 我们利用宏块划分算法将每一帧的所有宏块按照重要程度的不同划分为三个级别, 用FMO的这种特性, 建立宏块到Slice Group ID的映射, 按照重要程度从高到底分别将宏块编划分到Slice group 0, Slice group 1、Slice Group 2中, 如图1所示。

进行宏块划分时, 对于一帧中的每个宏块, 计算该宏块丢失后利用错误隐藏机制带来的失真, 利用失真来代表宏块的重要性。利用Dk, m定义为该宏块丢失后, 采用Direct-copy的错误恢复算法, 利用第k-1帧中的第m个宏块进行错误隐藏后带来的失真, 用平均均方误差 (MSE) 来度量, 则Dk, m可以表示为:

其中YMB和XMB表示宏块的高和宽, pk, i, j和pk-1, i, j分别表示相应宏块中像素点的值。第k帧中宏块的平均重要性可以表示为:

其中Ntotal表示视频帧中宏块的总数。

然后定义两个阈值:Thigh和Tlow, 根据宏块的平均重要性以及这两个阈值来对宏块进行划分, 并映射到不同的Group中, 具体步骤如下:

对于任意宏块, 如果Dk, m≥Thigh·珚Dk, 则将宏块的Slice Group ID设置为0;

如果Tlow·珚Dk<Dk, m<Thigh·珚Dk, 则将宏块的Slice Group ID设置为1;

如果Dk, m≤Tlow·珚Dk, 则将宏块的Slice Group ID设置2。

在本文中, 经过大量的实验分析, 发现在Thigh和Tlow分别为0.8和0.2的时候能够取得比较好的划分效果, 能够将宏块比较均匀地划分到三个slice group中。在实际的应用中, 我们还可以调整Thigh和Tlow的大小来调整数据划分的程度, 从而控制加密强度的大小, 提供了更好的灵活性。

2.2 加密数据元素的选择与分层加密的实现

在完成宏块数据的划分以后, 就可以对具有不同重要程度的宏块数据采用不同的加密策略。在本文中, 通过对H.264编码宏块语义层的分析, 我们决定提取以下三类定长语法元素进行加密操作:

(1) 帧内预测模式H.264中提供了两种亮度块的预测模式: (4×4) 和 (16×16) 两种。通过文献[6]中的数据可以知道, 在视频帧中采用4×4预测编码模式占了大多数, 而16×16模式的预测信息和CBP信息放在一起进行编码, 不易进行加密操作。所以在本文的加密方案中, 我们只考虑对4×4这种预测模式字进行加密操作。4×4的编码预测模式总共有9种模式, 那么至少需要4个bit位。在H.264的标准中, 利用一个“prev_intra4×4_pred_mode”的字段来排除一种预测方式, 用另外3个bit位来表示余下的8种预测模式。在本文的加密方案中, 我们只对后3个bit位进行加密扰乱。

(2) 运动向量差值符号位在H.264中, 帧间编码利用MVD来表示帧与帧之间的预测信息。MVD值是采用是指数哥伦布 (Exp-Golomb) 进行编码的, 这是一种变长编码方式, 如果对整个MVD值进行加密, 会破坏视频的语义结构。因此我们只对MVD的符号位进行加密, 对于每一个MVD值, 只需要对一个bit位进行加密操作。这样既不影响编码的效率也能够保持视频的语义格式。

(3) 残差块系数符号位在H.264中, 残差块系数是通过CAVLC编码和CABAC进行编码的, 在本文中, 我们只考虑使用CAVLC编码的情况。在进行CAVLC编码的过程中, 涉及到以下几个语义字段:非零系数数目 (Total coeffs) , 拖尾系数数目 (Trailing Ones) , 非零系数幅值 (Level) , 最后一个非零系数前零的个数 (Total Zeros) 和每个非零系数前零的个数 (Run Before) 。经过我们分析, 只有Trailing Ones的符号位和Level的符号位是属于定长字段, 对其进行扰乱不会改变视频的语义。因此在残差系数的相关数据中, 我们提取这两个字段的符号位进行加密操作。

通过对宏块数据的划分和加密数据元素的选取, 我们可以对不同数据实现有差别的加密。对于划分到slice group 0中宏块的数据, 这部分数据最重要, 因此对这部分宏块数据, 对上文中提到的所有字段进行加密;对于slice group1中的宏块数据, 则只分别对IPM、MVD符号位和level幅值的符号位进行加密;对于slice group2中的宏块数据, 因为这部分数据的重要程度最低, 我们只对该部分宏块进行IPM和MVD符号位信息的加密。

为了进一步减少加解密操作的计算量, 我们提出如下的分层加密方案, 分三个安全级别对视频数据进行处理。

level 1:只对属于slice group 0中的宏块数据进行加密操作。

level 2:只对属于slice group 0和slice group 1的宏块数据进行加密操作。

level 3:对属于slice group 0, slice group 1, slice group 2中的宏块数据进行加密操作。

对数据进行分类并进行有差别的加密, 可以大幅度地减少加解密的计算量。从Level 1到Level 3的层次的安全加密, 加密的数据不断增多, 安全性也不断增强。这样就可以灵活地根据不同的场合来调整加解密的强度, 可以使得该方案满足不同的应用需求。

2.3 加密的具体实现过程

通过以上的介绍, 我们给出本算法的流程描述加密的详细实现过程。图2是本文加密方案的示意图。

(1) 首先读入原始视频序列文件, 开始进行编码预处理;

(2) 在对每一帧进行处理前, 利用上面提到的宏块划分算法对宏块进行划分;

(3) 对每个宏块进行编码, 在编码的过程中, 根据宏块所属的Slice group和指定的加密策略, 分析和提取相应的定长语法元素, 进行加密扰乱;

(4) 编码加密完所有的数据, 获得最后的H.264码流文件。

而对于每个宏块的加密过程, 实际上是和宏块编码过程相结合。具体来说, 就是在对每个宏块的编码过程中, 对宏块的语法元素进行分析, 如果是要进行加密的字段, 就提取该语法元素, 对其进行加密操作, 然后将加密后的字段写入码流中。下面是算法的具体伪代码描述:

我们利用随机数种子生成一个伪随机序列, 将随机序列二值化作为加密密钥。我们以每一个Slice group作为一个单独的密钥分发单位, 保证group与group之间的加解密的独立性。

3 实验结果与分析

3.1 实验说明

在本文中, 我们以普通的PC机作为实验平台, PC机配置为:Intel E4500处理器, 2GB内存, 操作系统为windows XP SP2。我们利用H.264中的官方参考软件JM10.2[10]来实现上述的算法设计, 利用VS2005完成对JM代码的调试和编译。

实验中以CIF格式352×288的foreman, mother-daughter, container和news作为实验视频序列, 按照上文所说的三个安全级别分别对其进行编码加密操作。在编码器端, 设定编码参数为:以IPPP……P方式进行编码, I帧刷新率为10, 帧率为30帧/s, 使用自定义FMO模式进行编码。在编码过程中, 重点关注编码器输出的码流参数, 对加密的性能进行分析;在解码器端, 因为本文采用对定长语法元素进行加密操作, 保持了视频的语义兼容性, 使用解码器可以直接进行解码, 得到加密扰乱后的图像。在解密过程中, 重点关注解码器输出的图像PSNR值的变化, 来分析图像的加密效果。

3.2 安全性分析

加密后视频的安全性包括两个方面, 加密后的视频安全性和加密算法本身的安全性。视频安全性即视频的全部或者部分信息被隐藏, 使得加密后的视频不能被人正确感知。从图3的加密效果测试图中我们可以看出, 无论是foreman还是motherdaughter序列, 在level1的加密强度下, 图像已经被严重扰乱, 可以用于对加密强度要求不高的场合, 如果需要更好的加密效果, 则需要使用level2, level3的加密强度。表1中测得的图像加密后的PSNR值也很好地说明了这一点。而对于加密算法的安全性, 只要保证key的安全性, 我们就可以抵御大多数的密码攻击。

3.3 性能分析

因为我们使用的是定长语法元素的加密操作, 需要加密的字节数也只占视频码流的小部分, 且加密操作是和编码过程同时进行的, 加密实现过程十分简单。虽然我们在编码过程中使用了FMO机制, 使得编码效率有一定程度的下降, 产生了额外的码流 (如表2所示) , 但对实时性的应用影响并不是很大。FMO的引入可以提供给视频传输更高的容错能力, 同时使用FMO对视频数据进行重要程度的划分, 对重要数据提供了更好程度的保护, 这种开销也是值得的。

4 结论

我们提出了一种基于宏块重要性进行分层加密的视频加密方案。文中的加密方案联合加密了多种定长语法元素, 提供了更好的安全性和更好的加密效果, 同时引入了宏块重要性的评价机制和分层的加密策略, 可以灵活地对加密强度进行控制。该方案还保持了视频的语义格式兼容性, 继承了H.264在网络传输中的优良特性。最后通过实验仿真说明, 我们的设计方案满足安全性和实时性的要求, 并且也不会显著增加系统的开销, 是一种适用于对实时视频进行加密的安全方法。

摘要:H.264是最新的视频编码标准, 被广泛地用于各种视频应用中。由于视频数据传输的广泛性和便易性, 使得视频数据安全成了一个亟待解决的问题。提出一种在H.264编码下基于宏块重要性分类的加密方案, 根据宏块重要程度的不同, 运用不均等加密策略对重要宏块优先进行加密操作, 减少加密的数据量。在具体的加密过程中, 联合加密几种宏块语义层中的定长语法元素, 在保持视频语义的情况下, 提高了加密的安全性。理论和实验分析证明, 该加密方案满足实时性和安全性的要求, 有效地保护了视频安全。

关键词:视频加密,H.264,宏块划分,选择加密

参考文献

[1]Wiegand T G J, Sullivan, et al.Overview of the H.264/AVC video cod-ing standard[J].IEEE Transactions on Circuits and Systems for VideoTechnology, 2003, 13 (7) :560-576.

[2]Wang Yajun, Cai Mian, Tang Fent.Design of a New Selective Video En-cryption Scheme Based on H.264.International Conference on Computa-tional Intelligence and Security[C].Piscataway:IEEE Computer Socie-ty, 2007:883-887.

[3]Ahn J, Shim H, Jeon B, et al.Digital video scrambling method using in-tra prediction mode PCM2004[C].Hangberg:Springer, 2004:386-393.

[4]Lian S J, Sun, et al.Efficient video encryption scheme based on ad-vanced video coding[J].Multimedia Tools and Applications, 2008, 38 (1) :75-89.

[5]谢强, 郑世宝, 于晓静.一种结合H.264/AVC C AB AC熵编码器特征的视频选择性内容加密算法[J].上海交通大学学报, 2008, 42 (1) .

[6]Hong G M C, Yuan, et al.A quality-controllable encryption for H.264/AVC video coding.Advances in Multimedia Information Processing, PCM[C].Hangberg:Springer, 2006:510-517.

[7]Yibo Fan, Jidong Wang, akeshi Ikenaga, et al.A New Video EncryptionScheme for H.264/AVC[C].8th Pacific-Rim Conference on Multime-dia, PCM 2007.Hangberg:Springer, 2007:246-255.

[8]孙钢.基于内容感知的视频传输质量评价及资源分配机制研究[D].杭州:浙江大学计算机学院, 2009.

[9]Wenger S, Horowitz M.Scattered Slices:A New Error Resilience Toolfor H.264[EB/OL].http://wftp3.itu.int/av-arch/jvt-site/.

上一篇:全民阅读服务下一篇:如何上好一节语文课