几种视频加密算法介绍  返回

1. 全部加密(Naive Algorithm)

也就是使用标准 加密方法(比如DES)加密整个视频流。将视频比特流同传统的文本数据同样对待,没有利用视频压缩后数据流的特殊结 构。这种方法显然计算量巨大,很难保证视频的实时传输。

2. 选择性加密(Selective Algorithm)

选择性 加密是基于信源特征的视频加密方法的主要方向,其中可分为以下几类:

(1) 基本的选择性加密算法是基于视频 IPB帧结构的。这其 中最有代表性且最早提出的一种加密方法是仅仅加密I帧。然而, Agi and Gong 表明由于帧间的相关性和主要是由于P帧和B帧中的I-block没有加密,这种仅加密I帧的方法不能达 到一个令人满意的密级。这样,有人提出加密I帧的同时还应加 密PB帧中的 I块。但这样增大 了计算量,同时视频图像中的运动信息也没有被加密,保密性仍不够好。

于是,有人提出 利用提高视频序列中I帧频率的方法来 增加加密的内容从而提高密级。但这样很明显会增大加密的数据量,大大增加计算量,同时减小视频压缩率。

(2) 仅加密头信息的方法:MPEG、H26X序列都按一定结构组织图像数据。例如,图片组、图片(帧)、片组、片、宏块组、宏块等 ,都由一个头信息开始,后接图像数据。经编码后的视频数据,要按标准规定的特定结构排列组织,收方按相同 的标准结构解码,才能正确恢复原视频图像。

该算法的原理是对这些头信息数据加密,将其变成随 机序列,再与其它数据混合,使接收方在不知道密钥的情况下难以区分结构信息数据和视频信息数据,更难以知 道数据结构和数据的具体内容,难以按原数据结构解码接收到的视频编码数据,无法获得原图像,达到加密目的 。

该算法仅加密头信息,安全性较低。因为按照编码标 准,头信息具有固定的位置和内容,所以含信息量很小,加密的意义不大。只要能分辨出头信息和视频数据,就 可以恢复视频图像,并且一旦知道头信息,密钥和密码算法也很容易破译。事实上,基于MPEG、H26x等标准的视频数据结构比较固定,视频数据本身又有很强的特征,这种加密方式比较 容易破译。

该算法不降低压缩率。增加计算量很小,适用于各种 标准视频或图像压缩编码数据。

经过该算法加密的视频编码数据没有通用的数据结构 信息,全部为随机序列。为便于合法收方接收,需加入加密同步信息,或保留原来部分同步信息,只加密其它结 构信息。如果加密结构信息误码,合法收方恢复视频图像也很困难。

(3) Meyer and Gadegast 设计了一种新的似MPEG比特流,称之为 SECMPEG。SECAM既能使用标准加密算法DES和RSA又能实现不同级别的密级。但SECMPEG与标准的MPEG不兼容,需要设计专门的编解码器。

第一级:加密所 有的头信息(Headers)

第二级:加密所 有的头信息(Headers)和I-Block中的DC和AC系数

第三级:加密 I帧和 PB帧中的所有 I-Block

第四级:加密所 有的数据

(4) 选择性加密的另一个主要的方向是由Bharat Bhargava等提出的加密DCT符号,运动矢量MV符号。文献[5]中将仅加密I帧的DCT符号位的方法称为VEA算法。第二种方 法除了加密I帧,还要加密 PB帧的 DCT符号位和运动矢量MV的符号位称之为MVEA算法。相对保密性要好得多的第三种方法是使用 密钥加密(如DES或IDEA)的密码学算法来对DCT系数或运动矢量 MV符号位进行加密 ,作者称之为RVEA算法。

选择性加密的保 密性根据具体使用什么方法而定,一般选择性加密的计算量不大,且通常不会增大码流大小(改变I帧频率的选择性 加密算法除外)。

3. Zig-Zag置乱算法(Zig-Zag Permutation Algorithm)

Zig-Zag置乱算法的基本思想:使用一个随机的置乱序列来代替 Zig-Zag扫描顺序,来将各个8×8块的DCT系数映射成一个1×64矢量。

基本算法由三步组成,步骤如下:

(1)产生一个基数为64的置乱序列表;

(2)把DC系数分成两个较小值的数。假设 DC是二进制数d7d6d5d4d3d2d1d0,将它分成两个数d7d6d5d4和d3d2d1d0,它们的范围都在[0,15]。然后将DC系 数置为d7d6d5d4,将原最后一个AC系数置为d3d2d1d0。(这种分离处理是基于以下两点:(1)通常DC系数值 远大于AC系数值,因此乱序后很容易被识别。分离变小后就难于从AC系数中区分出来;(2)最末一个AC系数作 用很小,通常为0,可以用其存放d3d2d1d0,恢复时取0值,不影响图象质量,也不增加数据量。)

(3)用随机置乱序列表将经分离处理的8× 8块映射成1×64序列(vector)。

该算法设计者自己指出,上述基本 算法对已知明文攻击是脆弱的,因此提供了两种附加方法增强算法的安全性(security):

方法1: 将每8个块分成一组,把8个DC系数组合在一起(每系 数8位,恰好64位),然后运用DES加密。加密的结果按字节映射回到8个块中,然后(按上面1~3步骤)用分离 过程和置乱对每块进行加密。

方法2: 产生两张不同的置乱序列表(表1和表2),对每个8×8 块抛掷硬币,反面用表1,正面用表2。抛币产生的正反序列和两张表作为密码。

Zig-Zag置乱算法有严重的安全性问题[1]。文献[1]提供两种可以成功破解该算法的方法。Zig-Zag置乱算法速度很 快,不影响视频的实时传输。但是经过加密的视频压缩后码流大小将显著增加。因为运用非zig-zag顺序将8×8块映射到1×64的矢量,将会极大减少连续零个数,从而减少压缩率。文献[1]表明 视频流大小经加密后增加可达46%(表中最大值)。考虑到MPEG视频流数据量的巨大,这种大小增量是很难容 忍的。

4.改变 Huffman码表算法

改变Huffman码表的视频加密算法原理是:对于熵 编码用Huffman编码的视频编码标准,将通用Huffman码表修改后使用,修改后的特殊 Huffman码表作为密钥。非法接收方无此特殊码表,不能正确解码视频(图像)信息。

该算法的安全性取决于保持压缩率不变的前提下, Huffman码表的可变空间(密码空间)。文献[8]做了定量的分析。

改变Huffman码表,一般会降低 压缩率。Huffman编码是对数据流中出现频率高的位组合模式对应短码字,出现频率低的位组合模式对应长码字, 达到缩短平均码字,压缩数据的目的。Huffman码表通过统计码流中各种位组合模式出现的概率制作。本算法在改 变各组合模式对应的Huffman码字时,保持对应码字长度不变,即保持了特定出现概率的组合模式对应的特定码字 长度不变,也就保持了原压缩率不变。

该算法完全不增加计算量。适用于使用Huffman编码的各种视频和图像压缩编码标准和算法。其缺点是安全性较差(密钥空间小)。

5. 基于统计规律的视频加密算法

基于统计规律的 视频加密算法在文献[1]中称 之为VEA算法(Video Encryption Algorithm)。文献[1]认为,压缩和 加密之间具有共同点,即两者都致力于去除冗余信息(Redundant information)。经MPEG压缩编码的码流具有一定的随机性。文献[1]把码流分成以字节为单元的流,每字节单元的 值为整数0~255。按字节测试统计(Byte-by-Byte),编码后字节值在0~255上的分布接近均匀,最高的字节出现 频率低于0.0178, 方差为10-6。最高相邻字节对(digrams:pairs of two adjacent numbers)的出现频率低于10-4,因此提出以下设想:将I帧分为8或16(通常16)大块( chunk),在任何chunk中,没有重复的字节模式。依据这个设想提出下面的VEA算法。

(1)设一I帧的某个chunk为如下形式:a1 ,a2,a3,a4,...,a2n-1,a2n。

(2)选择奇数号的字节组成奇队列(Odd List),选择偶数号的字节组成偶队列(Even List)。

(3)将两个新数据流异或

(4)选择一种加密函数(例如DES)来加 密偶队列a2,a4,...,a2n。得到的密文为:c1,c2,…,cn, E(a2,a4,…,a2n).

容易看出:如果a2a4…a2n没有 重复模式(repeated pattern),VEA算法密级就决定于function E。 因为a2,a4,…,a2n对a1,a3,…,a2n-1虽是简单异或,却是一次一 密乱码本(one-time pad)加密密钥,这是公认非常保密的。

该方法不加密头信息结构格式等数据,只加密图像数 据本身。将待加密数据分为两半,一半用密码方法(函数E)加密,另一半用简单异或,因 此总体减少了计算量,提高了计算速度。前一半的计算速度取决于E。

该方法不影响压缩率。适用于压缩的视频(或图像) 编码数据,而且压缩效果越好,加密效果也越好。

6. 纯置乱算法 (Pure Permutation Algorithm)

基于上一节中的 统计结果,我们知MPEG视频的字节流有一个非常低的字节对出现频率。因此,通常的利用数据频率,字节对频率特性等密码 分析方法对此没有用(至少很难)。

Pure Permutation Algorithm 应运而生:Pure Permutation Algorithm简单的置乱字节流。置乱密码序列的基数是根据密级和应用需求动态 可变的。比如我们可以用64个数的置乱序列 或 一个长的 I帧的 1/8的置乱序列。

Pure Permutation Algorithm的问题在于它对已知明文攻击非常脆弱。

一旦通过比较密文和已知原始帧数据,获取了随机置乱序列,所有的帧将很容易被破译。为了找出随机置乱序列 ,我们需要已知随机序列长度倍数大小的明文。然而注意到MPEG数据流的单一性(unicity)和帧 大小在同一个数量级上,因此基于Shannon’s Theorem,如果已知一个I帧数据足以破译整个随机序列。

几种视频加密算法介绍相关推荐

  1. 刚看了一个视频,介绍了实体店十几种线上线下引流方法

    刚看了一个视频,介绍了实体店十几种线上线下引流方法,学习引流方法固然重要. 但是,还要明确的是引流方法要为引流目标服务的,每种方法有它的最佳适用条件. 这时,必然要考虑营销系统闭环,结合实体店的资源( ...

  2. 海康大华网络摄像头高起播低延时RTSP网页无插件流媒体专用播放器EasyPlayer-RTSP之GDI和D3D两种视频渲染方式的区别介绍

    GDI和D3D两种视频渲染方式的区别 EasyPlayer-RTSP windows播放器支持D3D和GDI两种渲染方式. D3D支持格式如下: DISPLAY_FORMAT_YV12 DISPLAY ...

  3. 你会在你的WebRTC 应用程序中使用哪种视频编解码器呢?

    正文字数:2555  阅读时长:4 分钟 当为WebRTC应用程序来选择正确的视频编解码器已经成为了一件非常棘手的事儿时...你是应该使用VP8? H.264? VP9? 还是 AV1? 或者 HEV ...

  4. redis种类型对应java类型_Redis的五种基本数据类型介绍

    Redis作为缓存具有极其丰富的功能,比如计数器.好友关系以及排行榜等等.而Redis之所能够实现如此强大的功能,完全是依赖着它的基本数据结构.今天我们来看看Redis的五种基本的数据结构,分别是字符 ...

  5. 常用的几种卷积神经网络介绍

    常用的几种卷积神经网络介绍 标签(空格分隔): 深度学习 这是一篇基础理论的博客,基本手法是抄.删.改.查,毕竟介绍这几个基础网络的博文也挺多的,就算是自己的一个笔记吧,以后忘了多看看.主要是想介绍下 ...

  6. ARM Mali-V VPU视频处理单元介绍 V61 V550 V500

    <ARM Mali-V VPU视频处理单元介绍 V61 V550 V500> 作者 将狼才鲸 日期 2022-01-13 一.名词解释: Mali: 一系列显示GPU及其子模块IP(IP为 ...

  7. 20X25 FCPX插件24种视频网站点赞订阅关注MG动画效果 Youtube Subscribe Generators

    20X25 FCPX插件24种视频网站点赞订阅关注MG动画效果 [插件介绍] 这是一个很酷的FCPX插件,由可编辑的动画点赞,通知铃声和频道视频的订阅按钮组成.您可以简单地单独使用现成的.它肯定会帮助 ...

  8. Android音视频——基础介绍

    视频编码 视频编码所谓的视频编码就是指通过特定的压缩技术,将某个视频格式文件转换成另一种视频格式文件的方式.视频流传输中最重要的编解码标准有国际电联的 H.261.H.263.H.264,运动静止图像 ...

  9. Airplay、DLNA和Miracast三种技术的介绍

    Airplay.DLNA和Miracast三种技术的介绍 AirPlay AirPlay 是苹果开发的一种无线技术,可以通过WiFi将iPhone .iPad.iPod touch 等iOS 设备上的 ...

最新文章

  1. 加锁查询 FOR UPDATE 解决表格查询极慢的问题
  2. draw.io二次开发(1)三种运行模式的区别
  3. 表设计避免使用保留字
  4. Windows下Python包和模块的安装方法(亲测手动安装)
  5. Apache Flink 在实时金融数据湖的应用
  6. 热浪(信息学奥赛一本通-T1379)
  7. redis aof持久化
  8. 注册表在各个系统中保存路径
  9. 【转载】印制板设计的流程及注意事项
  10. Leetcode2. Add Two Numbers
  11. 集合与数组,集合与集合之间的转换
  12. 在这做一个词云图生成器来送给大家(附代码),建议收藏
  13. Java项目:图书管理系统(java+JSP+layui+bootstrap+Servlet+Mysql)
  14. Yolo学习(框架分析)
  15. 中科院大学计算机科学与技术王伟强,王伟强-中国科学院大学-UCAS
  16. UI设计APP金刚区,卡片式设计
  17. 朴素贝叶斯的概念简介
  18. R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
  19. Java web框架
  20. 卸载计算机安全证书,如何卸载ssl证书_卸载根证书的操作指南_什么是SSL卸载,SSL卸载优点有哪些? - 沃通SSL证书...

热门文章

  1. JIRA-使用教程_概念
  2. 光电器件仿真设计RSoft、COMSOL、FDTD
  3. 2004-12-01 终于把自己卖了,南京中兴
  4. 《数据库系统原理》课程大作业——音响店VCD零售/出租管理系统(SQL Server)
  5. 米家小相机最新固件_#本站首晒#699元的运动相机 — 小米 米家小相机开箱简评...
  6. R数据科学第三章读书笔记和习题
  7. 电影《无名之辈》观后感
  8. rabbitmq集群搭建以及万级并发下的性能调优
  9. 得此触控板,一览众山小!
  10. 2022端午糯米粽子吃腻了,有什么新口味粽子推荐吗?