当前位置: 首页 > news >正文

H.264/AVC加密----选择加密

文献学习:

《Data Hiding in Encrypted H.264/AVC Video Streams by Codeword Substitution》
期刊:IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY

简介
通过分析H.264/AVC编解码器的特性,提出了三个敏感部分(IPM、MVD和残差系数)用流密码加密。与[13]相比,该算法不是在H.264/AVC编码时进行加密,而是在H.264/AVC压缩域中进行加密。在H.264压缩域进行选择加密已经在上下文自适应变长编码(CAVLC)和上下文自适应算术编码(CABAC)中被实现,在本文中,我们对之前提出的方法进行了改进和增强,对更多的语法元素进行加密。我们对ipm的码字、mvd的码字和残差系数的码字进行了加密。加密的比特流仍然是符合H.264/AVC的,可以用任何符合标准的H.264/AVC解码器解码,但加密的视频数据与明文视频数据完全不同。实际上,直接在压缩的比特流上执行格式兼容加密是极其复杂的,因为编码器内部的状态必须被保留,否则,其余的数据会被错误地解释,这很容易导致格式违规。

1)帧内预测模式加密

根据H.264/AVC标准,支持以下四种类型的帧内编码,分别表示为Intra_4 × 4, Intra_16×16,I_PCM[12]。这里选择Intra_4×4和Intra_16 × 16块中的IPM进行加密。Intra_16×16中四种IPMs (intra prediction mode)模式都是可行的。Intra_16 × 16块的IPM在mb_type (macroblock type)字段中指定,该字段还指定了关于该块的其他参数,如编码块模式(CBP)。表1是mb_type值及其含义的列表,取自标准[17]。在H.264/AVC基线配置文件中,mb_type是用Exp-Golomb代码编码的。为了使加密的比特流符合标准,我们可以在不修改CBP的情况下对IPM的码字进行加密。另外,为了保持码字的长度不变,加密后的码字应该与原始码字的大小相同。可以看到,CBP组合每四行相同,每连续两行码字长度相同,如表所示。因此,对于Intra_16 × 16块,IPM加密是通过在码字的最后一位和伪随机序列的一位之间应用逐位异或操作来实现的,以保持CBP的值和码字的长度不变。
在这里插入图片描述
**在H.264/AVC中,每个Intra_4 × 4亮度块都是根据其空间相邻样本进行预测的。**具体地说, H.264/AVC为Intra_4×4亮度块提供了9种预测模式(0-8)。对于4×4亮度块的每种预测模式的选择必须向解码器发送信号,这可能需要大量的比特。为了有效地压缩预测模式数据,将预测编码技术应用于信号预测模式。
对于当前考虑的每个块E,最可能的模式(MPME)被定义为空间相邻的上块A和左块B的预测模式中较小的那个。如果相邻区块中有一个不可用,则对应的值设为2,表示“DC”预测模式。当前考虑的块E的预测模式记为ModeE。如果ModeE= MPME,码字保持不变。否则,每个码字中的三位固定长度代码(表示为X)用伪随机序列加密(按位异或加密),伪随机序列是由加密密钥E_Key2确定的标准安全密码(例如RC4)生成的。
从上面的描述可以看出,加密码字的长度与原始码字的长度是相同的。对于在解码过程中的格式兼容性,加密后的第一行和/或第一列的块的ipms应该有可解码的值,因为没有相邻块,所以不是所有的模式都可以在每一帧的顶部和左侧边界上使用。在我们的方案中,**如果加密后的IPM对边界块不可用,则此块的IPM加密将被跳过。这也进一步说明IPM加密在某些特定位置不够安全,应与其他加密方法结合使用。**总之,IPM加密意味着在不违反语义和比特流兼容性的情况下将实际模式更改为另一种模式。

运动矢量差(MVD)加密:

为了同时保护纹理信息和运动信息,不仅要对ipm进行加密,还要对运动矢量进行加密。在H.264/AVC中,进一步对运动矢量进行运动矢量预测,得到MVD。在H.264/AVC标准中,采用Exp-Golomb熵编码对MVD进行编码。Exp-Golomb的码字构造为[M Zeros][1][INFO],其中INFO是一个携带信息的M位字段。**表II显示了mvd的值及其对应的Exp-Golomb码字。码字的最后一位通过使用标准流密码应用逐位异或操作进行加密,标准流密码由加密密钥E_Key3确定。**由表二可知,最后一位加密可能会改变MVD的符号,但不影响码字的长度,满足格式遵从性。也就是说,生成的密文仍然是有效的Exp-Golomb代码。例如,“2”对应的码字为“00100”,“−2”对应的码字为“00101”,两者长度相同。需要注意的是,当MVD的值为0时,其对应的码字“1”在加密过程中保持不变。
在这里插入图片描述

残差数据加密:

为了保持高安全性,另一类敏感数据,即i帧和p帧两者中的残差数据应该加密。本节详细介绍了一种基于码字特性的残差数据加密方法。H.264编码标准中,采用CAVLC熵编码对残差块[19]的量化系数进行编码。每个CAVLC码字可以表示为以下格式:
在这里插入图片描述
为了保持比特流的一致性,在加密过程中不能修改所有的语法元素。例如,Coef f_token、Total_zeros和Run_before 应该保持不变。因此,残余数据加密可以通过修改Sign_of_TrailingOnes和Level的码字来实现。
Sign_of_TrailingOnes是用单比特编码的。比特0被分配给+1,比特1分配给-1 。Sign_of_TrailingOnes的码字通过使用标准流密码应用按位异或操作进行加密(秘钥E_Key4)。每个Level的码字由前缀组成(level_prefix)和后缀(level_suffix)组成:
在这里插入图片描述
表三显示了不同suffixLength的Level和相应的码字。码字的最后一位通过使用标准流密码应用逐位异或操作进行加密,标准流密码由加密密钥E_Key5确定。由表三可知,最后一位加密可能会改变level的符号,但不影响码字的长度,满足格式兼容性。例如:当suffixLength = 1时,“2”对应的码字为“010”,“-2”对应的码字为“011”,长度相同。需要注意的是,当suffixLength等于0时,码字在加密过程中应该保持不变。
在这里插入图片描述

实验结果:

在这里插入图片描述

ESEYE播放效果:

在这里插入图片描述

相关文章:

H.264/AVC加密----选择加密

文献学习: 《Data Hiding in Encrypted H.264/AVC Video Streams by Codeword Substitution》 期刊:IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY 简介 通过分析H.264/AVC编解码器的特性,提出了三个敏感部分(IPM、MVD和残差系…...

WuThreat身份安全云-TVD每日漏洞情报-2023-04-26

漏洞名称:Google Android 命令注入漏洞 漏洞级别:高危 漏洞编号:CVE-2023-20964,CNNVD-202303-538 相关涉及:None 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-05794 漏洞名称:OpenSSL RSA 解密时间差异 漏洞级别:中危 漏洞编号:CVE-2022-4…...

剑指 Offer第二版:1~n 整数中 1 出现的次数、51. 数组中的逆序对、56 - II. 数组中数字出现的次数 II

剑指 Offer第二版 43. 1~n 整数中 1 出现的次数51. 数组中的逆序对56 - II. 数组中数字出现的次数 II 43. 1~n 整数中 1 出现的次数 题目:输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。 例如&#xff0c…...

云原生-k8s核心概念(pod,deploy,service,ingress,configmap,volume)

Gitee-k8s学习 云原生实战-kubernetes核心实战 namespace Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离 Pod Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。 De…...

他工作10年,老板却让他走人

大家好,我是五月,一个编程街溜子。 二狗被裁了,他在公司待了快十年,他想留下来,老板却让他走。 我和他一样困惑。 他985毕业,工作中有从0开始一个项目直到日活过千万,也有过参与顶级产品核心…...

vpp怎么写node

VPP(Vector Packet Processing)是一个高性能的数据平面开源项目,用于构建网络功能虚拟化(NFV)和软件定义网络(SDN)解决方案。它由Cisco开发,并在Apache 2.0许可下发布。 在VPP中&am…...

【4. ROS的主要通讯方式:Topic话题与Message消息】

【4. ROS的主要通讯方式:Topic话题与Message消息】 1. 前言1.1 王者解释结点通讯:1.2 通讯小结 2. 灵活的Topic话题图解2.1 话题注意细节2.2 外延补充 3. Message消息图解3.1 消息类型3.2 查看标准消息类型std_msgs 4. 使用C实现Publisher发布者4.1 发布…...

【react全家桶学习】react中组件定义及state属性(超详/必看)

函数式组件定义及特点 定义&#xff08;核心就是一个函数&#xff0c;返回虚拟dom&#xff09;&#xff1a; import React from reactexport default function index() {return <div>index</div> }特点&#xff1a; 1、适用于【简单组件】的定义2、是一个函数&a…...

如何以产品经理思维打造一所高品质学校?

学校的建设与管理真不是一件容易事。2023年03月17日&#xff0c;山东菏泽市曹县一家长投诉某中学课业繁重&#xff0c;孩子经常写作业到半夜&#xff1b;2023年4月4日&#xff0c;张先生在华龙网重庆网络问政平台投诉万州区某中学伙食差&#xff0c;指出“发灰的洋葱&#xff0…...

根治Spring中使用Mongo时报错InvalidMongoDbApiUsageException

文章目录 And Or迷惑原因 告别InvalidMongoDbApiUsageException问题简单解决根本解决修改源码 代码(省流&#xff0c;可以直接看这里&#xff09; And Or 很多时候都需要进行逻辑的与或操作&#xff0c;但是spring当中自带的操作并不好用&#xff0c;于是做了相关的改进&#…...

【计算机组成原理】数据的表示和运算·进位计数制

&#x1f6a9; 本文已收录至专栏&#xff1a;计算机基础 我们可以通过显示屏看到各种形式的数据信息&#xff0c;但数据是如何在计算机中表示呢&#xff1f;运算器又是如何实现数据的算数、逻辑运算&#xff1f; 十进制数是最适合我们日常使用的一种计数方式&#xff0c;除此之…...

C++ Primer第五版_第十四章习题答案(21~30)

文章目录 练习14.21练习14.22头文件CPP文件 练习14.23头文件CPP文件 练习14.24头文件CPP文件 练习14.25练习14.26练习14.27练习14.28练习14.29练习14.30 练习14.21 编写 Sales_data 类的 和 运算符&#xff0c;使得 执行实际的加法操作而 调用。相比14.3节和14.4节对这两个运…...

服务器性能调优

硬件 如果是硬件瓶颈就换硬件 &#xff08;包括CPU、内存、网卡&#xff09; 软件 如果是方案架构设计有问题就换方案&#xff0c;比如mysql、redis方案有问题 建议先 top 看下软件瓶颈在哪&#xff0c;CPU、内存、网络&#xff08;netstat&#xff09;&#xff0c;哪个进程占…...

带你深入学习k8s--(三) pod 管理

目录 一、简介 1、什么是pod 2、为什么要有pod 二、pod的分类 0、pod常用命令命令 1、准备镜像 2、自主式pod 3、控制器创建pod 4、扩容pod数量 5、通过service暴露pod&#xff08;负载均衡&#xff0c;自动发起&#xff09; 6、更新应用版本 三、编写yaml文件 四、Pod生命周期…...

前端系列11集-ES6 知识总结

ES Module 优点 静态分析 浏览器和 Node 都支持 浏览器的新 API 能用模块格式提供 不再需要对象作为命名空间 export 用于规定模块的对外接口 输出的接口与其对应的值是动态绑定关系可以取到模块内部实时的值 import 用于输入其他模块提供的功能 具有提升效果&#xff0c;会提升…...

连接分析工具箱 | 利用CATO进行结构和功能连接重建

导读 本研究描述了一个连接分析工具箱(CATO)&#xff0c;用于基于扩散加权成像(DWI)和静息态功能磁共振成像(rs-fMRI)数据来重建大脑结构和功能连接。CATO是一个多模态软件包&#xff0c;使研究人员能够运行从MRI数据到结构和功能连接组图的端到端重建&#xff0c;定制其分析并…...

【目标检测论文阅读笔记】Detection of plane in remote sensing images using super-resolution

Abstract 由于大量的小目标、实例级噪声和云遮挡等因素&#xff0c;遥感图像的目标检测精度低&#xff0c;漏检率或误检率高。本文提出了一种新的基于SRGAN和YOLOV3的目标检测模型&#xff0c;称为SR-YOLO。解决了SRGAN网络 对超参数的敏感性和模态崩溃问题。同时&#xff0c;Y…...

外卖app开发流程全解析

外卖app开发是现代餐饮业的一个必备部分。在这个数字化时代&#xff0c;人们更愿意使用手机应用程序来订购食品。因此&#xff0c;为了满足客户需求&#xff0c;餐饮企业需要开发自己的外卖app。 第一步&#xff1a;确定目标受众 在开始外卖app的开发之前&#xff0c;需要确定…...

BUUCTF jarvisoj_level0

小白垃圾做题笔记而已&#xff0c;不建议阅读。。。 这道题感觉主要就是64位程序ebp8 题目中给出了shellcode 我们直接将返回地址覆盖就好。 在main函数中调用了vulnerable_function()函数。 vulnerable函数是一个漏洞函数&#xff1a;(存在缓溢出)&#xff0c;我们只需要将…...

网络安全之入侵检测

目录 网络安全之入侵检测 入侵检测经典理论 经典检测模型 入侵检测作用与原理 意义 异常检测模型&#xff08;Anomaly Detection&#xff09; 误用检测模型&#xff08;Misuse Detection&#xff09; 经典特征案例 ​编辑自定义签名 ​编辑 签名检查过程 检测生命周期…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...