Part 01
传统视频加密技术简介
-全部加密
使用加密算法加密整个视频流。将视频流同传统的文本数据同样对待,没有利用视频压缩后数据流的特殊结构。这种加密方式优点是不需要考虑视频协议,实现简单。但是由于需要对全部视频数据进行加密,计算量巨大,对终端性能要求较高,另外没有考虑视频协议格式,加密后视频协议结构完全被破坏。
-选择性加密
1)基于视频协议帧结构选择部分内容进行加密,其中有代表性且早提出的一种加密方法是仅仅加密I帧。然而由于P帧和B帧没有加密,视频画面中变动的部分没有被保护,依然可以解析出来,所以这种仅加密I帧的方法无法达到令人满意的效果。如图1所示,I帧加密后依然可以看到画面中变化的(红色箭头指示)部分。
图1. I帧加密前后画面对比
另外一种思路是为了实现快速加密,仅加密帧头信息,MPEG、H26x序列都按一定结构组织图像数据。由于MPEG、H26x等标准的视频数据结构比较固定,视频数据本身又有很强的特征,这种仅加密头信息的方法比较容易破译。
Meyer and Gadegast 也是基于选择性加密思路设计了一种新的似MPEG比特流,称之为 SECMPEG。SECAM既能使用标准加密算法DES和RSA,又能实现不同级别的密级。第一级:加密所有的头信息(Headers);第二级:加密所有的头信息(Headers)和I-Block中的DC和AC系数;第三级:加密I帧和PB帧;第四级:加密所有的数据。
2)基于视频协议进一步深入延伸,Bharat Bhargava等提出了一种加密DCT符号,运动矢量MV符号的方法。这种方法除了加密I帧,还要加密 PB帧的 DCT符号位和运动矢量MV的符号位称之为MVEA算法。相对保密性要好得多。
使用密钥加密(如DES或IDEA)的密码学算法来对DCT系数或运动矢量 MV符号位进行加密 ,作者称之为RVEA算法。
还有一种叫做基于统计规律的视频加密算法,这种方法中压缩和加密之间具有共同点,即两者都致力于去除冗余信息。该方法不影响压缩率。但是此方式只适用于压缩的视频编码,并且加密加密效果受压缩算法的效果影响,有一定的适用场景限制。
3)其他加密技术,例如Zig-Zag置乱算法(Zig-Zag Permutation Algorithm) 、改变 Huffman码表算法和纯置乱算法 (Pure Permutation Algorithm)等加密强度一般,本文不做讨论。
Part 02
中国移动一机一密视频加密技术概述
一机一密团队基于上述分析实现了高强度高灵活性的视频逐帧加密技术,基本原理如图2所示。
图2.逐帧加密基本原理
向厂商提供一种IPB帧可选的视频逐帧加密技术,厂商可根据自己的需求,选择加密哪些视频帧,同时该方案结合一机一密实现每个设备出厂即烧录唯一独立的密钥,保证密钥高安全性,同时为了兼容rtsp等视频协议,视频加密过程进行特殊处理保证加密后的视频不影响该协议有效性,例如vlc等播放器播放加密后的画面。如图3所示。
图3. 加密前后视频数据对比(I帧)
该技术基于加密结果冲突替换机制,避免加密结果破坏原有视频协议,实现视频内容透明加密,即视频数据加密后不影响视频协议解析,例如视频传输协议以及vlc播放器播放等。如图3所示,加密后的视频依然可以使用vlc播放器播放,只是画面无意义。
图4 总体架构
如图4所示,基于该技术延伸产生一机一密视频分层加密解决方案,该方案整体上采用行业领先的分层加解密技术,即加密密钥与视频内容分离独立部署,该技术最大优点是将视频流与加密密钥隔离部署,即使其中一方遭受攻击,攻击者也无法还原加密内容。
图5. 技术方案
如图5所示,整体方案由加密SDK、解密SDK、密钥安全平台构成,实现视频内容全生命周期安全防护,彻底杜绝安防视频泄露风险。加密SDK集成部署在摄像头中,视频在摄像头中生成后直接加密,实现从源头加密保证明文视频不出摄像头(源头加密);加密视频内容经过网络流转到IoT业务平台,由于视频内容已经从源头加密,传输过程即使被攻击导致内容泄露,攻击者也无法看到视频内容(安全流转);加密后的视频内容按需在IoT业务平台存储,由于视频内容已经加密,即使视频存储平台被攻击导致内容泄露,攻击者也无法看到视频内容(安全存储)。加密前后安全性对比如图6所示。
图6. 加密前后安全性示意