几种典型视频加密算法的性能评价
发布时间:2026-06-11 14:07:38| 浏览次数:

摘要视频加密对于保护视频数据的安全具有重要作用。将已有的几种典型MPEG视频加密算法,根据加密过
程与压缩编码过程的关系不同,分为4类:完全加密算法,部分加密算法,DCT系数加密算法和熵编码过程加密算法,并从算法的安全性、压缩比、计算复杂度和可操作性几个方面对算法的性能分别做了评价,给出了理论分析和实验结果;结合各类算法的特点,指出了它们各自适应的应用场合。
随着计算机和网络技术的发展,图像、音频、视频等多媒体信息的应用也越来越广泛。尤其是分布式多媒体在视频点播系统、视频广播系统、视频会议系统和监视系统等方面的应用提出了对多媒体信息安全进行研究的要求。早期的安全方法主要依赖于权限控制,多媒体数据本身没有被加密,因此,在传输过程中很容易被窃取。针对这种情况,尤其是关系到军事、经济和政治敏感性的视频数据的保护,更有必要研究多媒体数据的加密算法。由于多媒体数据具有编码结构特殊、数据量大、实时性要求高等特
点,传统的数据加密算法直接应用于多媒体数据,很难满足实时性要求,而且还会改变数据格式等,这就要求对多媒体数据采用特殊的加密算法。在近10年中,出现了许多视频加密算法。它们具有不同的安全性能,能够不同程度地达到实时性、保持压缩比不变、保持数据格式不变等要求。
目前常用的视频编码压缩算法有MPEG[1]、H.26x[2]等,它们都是基于图像压缩方法JPEG[3]的,压缩过程都是利用8×8DCT变换或者小波变换来减小空间冗余度,并结合运动补偿来减小视频信号的时间冗余度,同时还会利用人类视觉特性将空间域数据变换到合适的颜色空间以降低冗余度。考虑到H126x与MPEG在基本编码方法上有相似
之处,仅以MPEG22为例,简要介绍它们的编码格式。MPEG22视频由图像组(GOP)序列组成,每个GOP由一系列I、P和B图像帧组成。I帧进行帧内编码,不依赖于其他帧;P帧是通过前一个I帧或者P帧进行预测编码;B帧是通过前面或者后面相邻的I帧或P帧进行双向预测编码。I帧、P帧和B帧间的预测依赖关系可参见文献[1]。其中, 每一帧又 被分为许多 16×16 点阵的宏块, I 帧中的宏块采用 空间域编码方法, P 帧和 B 帧中的宏块根据相应的 索引帧进行时间域互操作, 即编码当前值和索引值 之间的差值。不管帧的类型如何, 每一宏块又被分为 4 个 8×8 的亮度块和 2 个 8×8 的色度块。 空间域 编码的每一个 8×8 块都要进行DCT 变换、量化、行 程编码和熵编码等操作, 同 JPEG 中的变换域编码 过程。而 I 帧中的宏块的DC 系数和B 帧、P 帧中的 运 动向量都要进行差分编 码。 最后通过熵编码 (H uffm an 编码或算术编码) , 进一步压缩数据。 整 个编码过程如图 1 所示。
根据加密过程与压缩编码过程关系的不同, 如 图 2 所示,M PEG 视频加密算法主要分为 4 类。 其 中M 表示视频数据, E 表示编码加密后的视频数 据, K 表示密钥。 第 1 类, 如图 2 (a) 所示, 采用传统 密码完全加密压缩过的码流, 称其为完全加密算法, 其中, 加密过程与编码过程相互独立; 第 2 类, 如 图 2 (b) 所示, 采用传统加密算法对压缩过的码流部 分加密, 包括分层加密和分块加密等, 称其为部分加 密算法, 其中, 加密过程对压缩过的码流进行部分加 密; 第 3 类, 如图 2 (c) 所示, 在压缩编码过程中, 加 密敏感数据, 常用的是加密DCT 系数, 称其为DCT 系数加密算法, 其中, 加密过程位于压缩编码过程之 中; 第 4 类, 如图 2 (d) 所示, 将编码过程和加密过程
结合, 使用具有加密功能的压缩算法, 在压缩的同时 实现加密, 通常是在熵编码过程中实现加密, 称其为 熵编码过程加密算法, 其中, 采用具有加密功能的压 缩算法, 将加密和压缩过程同步进行。
完全加密算法不必考虑视频编码格式, 将视频 数据看作普通的二进制数据加密。 最常用的完全加 密算法是V EA [ 4 ] 视频加密方法, 其是将明文块分成 O d d = a1a3 a 127 和 E ven = a2a4 a 128 两半部分, 将奇 数部分 E ven 用D ES[ 5 ] 算法加密得到密文的一半 E (E ven ) , 同时另一半为明文块偶数部分 O d d 和奇数 部分 E ven 按位异或的结果, 即 C = O d d © E ven = c1c2 c64。 这样, 加密后的密文为这两半的拼结, 即 CE (E ven )。这种算法将加密复杂度降为接近原来的 一半, 同时保持了较高的安全性。将此方法作进一步 扩展[ 6 ] , 即将奇数部分 E ven 再分半, 这样加密复杂 度降为接近原来的四分之一。
一种混沌加密算法[ 7 ] , 称其为 CSC 算法, 采用 斜帐篷映射、L ogistic 映射、Κ映射等 3 种混沌映射 构造混沌整数序列产生器, 并将产生的序列与视频 数据做异或运算, 产生的结果即为加密的密文。此算 法比传统的采用单一混沌映射的混沌流密码更安 全, 比D ES、ID EA 等块密码更快速。
部分加密算法要考虑编码过程, 选择较敏感的 部分加密, 常用的加密算法有分层加密算法和基于 帧结构的选择性加密算法。 一种适用于流格式视频 数据的分层加密方法[ 8, 9 ] , 即使用传统的流密码加密 视频数据的不同数据层, 称其为M SE 算法。可以采
最基本的分块加密方法是基于M PEG 的 IPB 帧结构的, 即仅加密其中的 I 帧, 因为从概念上讲, 如果不知道相应的 I 帧, 仅有 P 帧和B 帧是没有用 的, 称这类算法为M PE 算法。但是文献[ 10 ]中的实 验表明, 由于帧间的相关性和 P 帧、B 帧中有未加密 的 I 块, 所以仅仅加密 I 帧不能达到足够高的安全 性。T ang 提出一种改进方法[ 11 ] , 此算法产生一种新 的M PEG 流, 称作 SECM PEG, 它将选择性加密和 附加头信息结合到一起, 可以使用两种传统的加密 方法D ES 和 R SA 实现 4 个级别的安全性: (1) 加密 所有格式头信息; ( 2) 加密所有的格式头信息和 DCT 的DC 系数和较低层的A C 系数; (3) 加密 I 帧 和 P 帧、B 帧中所有的 I 块; (4) 加密所有数据。 可 见, 这 4 个级别的安全性是由低到高递增的, 但是 SECM PEG 并不能与标准M PEG 相容。
T ang[ 11 ] 提出对DCT 数据置乱的方法。M PEG 编码中使用二维DCT 变换将空间域数据变换到频 率域, 减小数据的相关性, 以实现压缩目的。 置乱变 换后的DCT 系数方法, 实现了加密的目的, 称其为 DCW 算法。 该算法包含以下几种方法: (1) 保持直 流系数 (第 1 个系数) 位置不变, 其他系数间置乱; (2) 置乱所有的系数; (3) 将直流系数拆开, 然后置乱 所有的系数; (4) 将许多块的直流系数一起加密, 然 后将直流系数拆开, 并置乱所有的系数。这几种方法 获得的安全性逐渐增加。 但是能量的集中性并不等 价于信息可理解性的集中性, 因此, 仅加密直流系 数, 并不能保证密文的不可理解性; 而将 64 个DCT 系数完全置乱, 就违背了“之”形扫描的能量大小排 列顺序, 因此这会使得熵编码后的压缩比降低。
To sum 等对其作了改进[ 12 ] , 将 64 个DCT 系数 按照频带划分为 3 段, 可以根据安全性和压缩比要 求的不同, 对不同的段置乱加密, 称其为DCF 算法。 因此, 从安全性角度讲, 每一段对应一种安全层或安 全级: 基础层、中间层和增强层。分层方法为 (4, 19) ,
拼成比特流或数据段, 然后使用私钥密码加密, 将加 密 后的符号相应地赋回原数 据。 可以用 D ES 或 ID EA 算法加密符号, 这两种算法要求明文为 64 位, 所以每次要获取 64 个符号。
W u 和 Jay Kuo [ 15, 16 ] 指出选择性加密不能保持 压缩比不变, 并提出了采用多种 H uffm an 树的加密 方法 (M H T )。 在使用熵编码的视频编码格式中, 可 以采用多种熵编码的统计模型, 通过密钥控制模型 的选择来实现视频编码过程中的加密。例如,M PEG 格式中使用了 H uffm an 编码, 标准格式中使用的是 通过统计测试获得的标准的 H uffm an 编码表。为了 实现加密, 可以选择其他不同的 n 个 H uffm an 编码 表作为基本的编码表, 当然每个编码表与标准码表 相比, 不能造成太大的降质。对于一棵 H uffm an 树, 它的每个节点的 2 个子节点都可以置为“0”节点或 “1”节点, 这样, 每个基本码表 (H uffm an 树) 能够有 2m - 1 (令 m 为树的叶子节点的个数, 则树的内部节 点的个数为m - 1) 种变异树。这样总共有 2 (m - 1) (n+ 1) 种 H uffm an 树可供选择。编码过程中可以通过密钥 控制采用哪一种 H uffm an 树, 从而实现加密。
对于另外一种熵编码方法——自适应算术编码 QM , 采用了编码与加密相结合的方法, 称作多状态 索引 (M S I) 方法。在QM 编码过程中, 二进制符号的 统计概率是随着待编码的符号增加而动态改变的, 并且最终通过查表方式获得。在算术编码中, 每个状 态都对应一个分段。M S I 方法通过随机选择多个状 态的分段索引来实现加密[ 15, 16 ]。这种算法的安全性
视频数据具有数据量大、冗余度高、实时性要求 高等特点, 为了满足视频的应用要求, 视频加密算法 在安全性、压缩比、计算复杂度和数据可操作性方面 都要有一定的要求。
(1) 安全性 安全性是数据加密的首要要求。对 于视频加密, 一般认为, 当破译密码所需付出的代价
流或数据段, 然后使用随机产生的密钥流与其作按 位的异或运算, 将加密后的符号相应地赋回原数据 中。 加密DCT 系数的符号和运动补偿向量的符号
安全的。 因为视频数据也可以看作普通的二进制数 据, 因此, 传统的密码可以用在视频加密中。 又因为 视频数据具有数据量大的特点, 破译者难免要对数
据进行大量的解码操作, 这将大大增加破译难度。因 此, 在保证安全性的情况下, 一些特殊的、快速的加 密算法也可以使用。
(2) 压缩比 能够保持加、解密前后的数据量不 变的算法, 被称为具有压缩比不变性的算法。使用具 有压缩比不变性的算法加密过的数据, 在存储过程 中不改变占用的空间, 在传输过程中保持传输速度 不变。因此, 理想的视频加密算法应该具有压缩比不 变性。 但是, 考虑到安全性、计算复杂度和数据可操 作性等方面的要求, 压缩比不变性一般不能够完全 满足。
(3) 计算复杂度 由于视频数据实时编解码、实 时传输和存取的要求, 加、解密算法的使用不能给编 解码、传输和存取带来过大的延迟。因此, 要求加、解 密算法的计算复杂度低, 以保持较高的加、解密速 度, 这样可以满足视频数据应用的实时性要求。
(4) 数据可操作性 压缩编码后的视频数据, 通 常要求能够进行某些操作, 如图像帧的定位、图像数 据的剪贴和增删、视频数据的解码和播放、编码数据 的码率控制等。 如果某种加密算法加密后的视频数 据, 仍然支持某种数据操作, 则称这种算法具有数据 可操作性。 其中, 要保持图像帧的定位、图像数据的 剪贴和增删, 就要要求加密算法保持帧同步信息不 变; 要保持视频数据的解码和播放功能, 就要要求加 密算法保持所有的格式信息不变; 要保持编码数据 的码率控制功能, 就要要求加密算法除了保持所有 格式信息不变之外, 还要支持码率控制功能。
由于采用的加密原理不同, 4 类算法分别具有 不同的安全性。其中, 完全加密算法V EA 利用传统 高强度块密码D ES 加密, D ES 算法针对穷举攻击、 只知密文、已知明文攻击和选择明文攻击的安全性 使得视频加密系统具有较高的安全性。CSC 算法利 用混沌流密码加密视频数据, 其中的混沌流密码针 对各种攻击具有较高的安全性, 这种安全性保证了 视频加密系统具有很高的安全性。
在部分加密算法中, 分层加密算法 (M SE) 和分 块加密算法 (M PE) 均采用传统高强度密码选择性 加密压缩编码后的视频数据。 其中的传统高强度密 码是指通常应用于文本数据和二进制数据加密的密
码, 包括块密码 (D ES、ID EA 、R SA 等)、流密码 (直 接加密方式、密文反馈方式) 等, 这些密码算法针对 各种密码攻击均具有较高的安全性。但是, 由于这类 视频加密系统中, 数据被部分加密, 保持某些格式信 息不变, 这给利用数据编码原理进行攻击者提供了 方便。因此, 这类视频加密系统的安全性比完全加密 算法低; 与其他两类算法相比, 其安全性较高。
DCT 系数加密算法是在视频压缩编码过程中 加密 DCT 系数, 利用解码过程导致的图像混乱实 现加密。 常用的方法是置乱 DCT 系数的位置和加 密DCT 系数的符号, 如完全置乱算法 (DCW )、分段 置乱算法 (DCF ) 和符号加密算法 (SE)。对于穷举攻 击和统计攻击, 它们的安全性不同。 首先, 对于穷举 攻击, 这 3 种算法具有不同的加密空间。 对于DCT 系数置乱算法, 令被置乱的系数总数为 N (N ≤64) ; 对于分段置乱, 令各分段为 N 1 , N 2 , , N m , 且 N i ≠ 0 ( i= 1, 2, , m ) , N 1 + N 2 + + N m = N ; 对于系数
符号加密, 令被加密的系数符号个数为 N , 与置乱 系数总数相同。 则这 3 种算法的加密空间分别如表 1 所示 (不考虑零系数)。
其中, DCT 系数完全置乱的置乱空间大于分段 置乱的置乱空间; DCT 系数分段置乱的置乱空间大 于符号加密的加密空间。因此, 对于穷举攻击, DCT 系数完全置乱算法的安全性最高, 符号加密算法的 安全性最低。对于统计攻击, 由于DCT 变换的能量 集中特性, DCT 系数中低频系数的幅值通常大于高 频系数的幅值, 这给统计攻击提供了方便。尤其是完 全置乱算法 (DCW ) 和分段置乱算法 (DCF ) , 在统计 攻击情况下, 安全性较低。对于符号加密算法 (SE) , 由于能量集中于低频的统计特点, 可以通过破译少 量低频系数的符号实现整个DCT 块的破译。可见, 与完全加密算法和部分加密算法相比较, DCT 系数 加密算法安全性较低。
熵编码过程加密算法 (M H T 和M S I) , 通过对 编码模型的参数加密实现编码过程加密, 它们的安 全性依赖于模型参数的参数空间。其中,M H T 算法 通过增加原始的 H uffm an 编码树来增加密钥空间, 从而增加密码系统的强度。例如, 对于 n 个H uffm an
基 本编码表, 每个基本码表 (H uffm an 树) 能够有 2m - 1 (m 为树的叶子节点的个数) 种变异树, 这样 H uffm an 树的穷举空间为 2 (m - 1) (n+ 1)。 同理,M S I 算 法通过增加算术编码的状态分段的随机选择空间来 增加穷举空间, 从而增加系统安全性。在已知明文攻 击情况下, 这类算法是不安全的。 通过某些措施(如 在密文中插入比特位、分段采用不同密钥等) 能够增
完全加密算法和部分加密算法不支持对密文直 接进行解码和播放, 图 3 所示仅给出了DCT 系数加 密算法和熵编码过程加密算法对视频片断的加密结 果。 可见, 加密过的视频图像都混乱不可理解, 这些 加密算法都可以实现视频数据的安全保密功能。
4 类算法对压缩比具有不同的影响。其中, 完全 加密算法和部分加密算法是对压缩后的码流进行加 密操作, 因为采用的加密算法通常保持加密后数据 量不变, 因此, 这两类算法不改变视频压缩过程的压 缩比。
熵编码过程加密, 是采用具有加密功能的熵编 码方法, 将编码过程与加密过程结合在一起, 即在压 缩过程中实现加密操作。 这类算法因为要实现压缩 功能, 对压缩比的降质很小。例如,M H T 算法中, 一 般采用与最优 H uffm an 树相近的多棵 H uffm an 树 以及它们的变异树作为基本码表。其中, 每棵原始树 和它的多棵变异树, 对于相同的视频数据具有相同
较大改变; 分段置乱算法 (DCF ) 利用系数幅值随着频 率有规律变化的统计特点, 将 64 个系数分成多个频 率段, 将系数分别在相应的分段内置乱, 可以避免大 系数与小系数的位置置乱, 从而降低对压缩比的影 响; 符号加密算法(SE) 仅改变系数的符号, 而不改变 其幅值, 由于M PEG 编码中 DCT 系数符号单独编 码, 因此, 符号加密算法对压缩比的影响很小。
完全加密算法和部分加密算法不改变压缩比, DCT 系数加密算法和熵编码过程加密算法的压缩 比变化率测试结果, 如表 2 所示。
有不同的压缩比, 但通过选择结构相近的 H uffm an 树, 可以尽量降低压缩比的差异。 因此, 整个M H T 加密过程对压缩比的影响很小。 对于M S I 算法, 通 过减少随机状态分段的个数和分段的变化范围, 也 可以获得尽量小的压缩比改变。总之, 熵编码过程对 压缩比的影响很小。
DCT 系数加密算法, 因为改变了DCT 系数分布 的统计特性, 使得利用其统计特性进行压缩的压缩过