加密图像的脆弱水印及应用
原文题目:《A self-embedding secure fragile watermarking scheme with high quality recovery》
学习笔记:
应用场景
为了确保图像在传输过程中不被损坏,在将原始图像发送到云端之前,将用于篡改检测和恢复的水印嵌入到原始图像中,并对带有水印的图像执行加密的操作。在这种情况下,云接收到的只是一幅类似噪声的水印图像,无法获得原始图像的任何信息。只有经过授权的人才能解密水印图像并提取水印以获得原始图像。如果水印图像不幸受到攻击,还可以根据预先嵌入的篡改检测水印和恢复水印定位和恢复篡改区域。

图2的描述:用户对原始图像嵌入水印后加密上传云端,云端首先对上传的图像进行检测(一级检测),如果图像在传输的过程中被篡改,那么像用户返回被篡改的区域,并将被篡改图像返还给用户,以便用户恢复或重新上传。如果图像没有被篡改,将图像存储到云端。用户下载图像,拿到带有水印的加密图像后可以进行二级篡改监测,如果下载的加密图像被篡改或被破坏可以定位篡改的位置 并恢复原始图像。
算法简介(进介绍水印嵌入过程)
1将大小为m × n的原始图像Io分成2 × 2不重叠的块Bi,j,
2 计算每个块Bi,j的平均值,取高5位作为恢复水印Ri,j。
3 基于key1对Io置乱,得到I2,将I2划分为成2 × 2不重叠的块B2i,j,
4. 计算每个块B2 i,j的平均值,并转换为二进制Mi,j。一级篡改检测水印WD1 = (p(i,j),q(i,j), v(i,j)),

5使用键k2和LLS打乱Ri,j得到打乱的恢复水印R ’ i,j 。将R ’ i,j与一级篡改检测水印WD1 i,j拼接到I2的9,10位,最后得到嵌入一级水印的10位图像I3。
6对10位的I3进行两次POB操作,得到7位的I4。在这个过程中, 在10位图像和8位图像中每个像素中的1的数量分别记为键k3和k4。
7 将I4分为2×2不重叠块B3i,j ,然后将每个块B3 i,j中的4个像素转换为7位二进制,并组合成28位序列hi,j,基于k5对hi,j置乱得到Hij, Hij,作为SHA512的输入得到32比特16进制序列

8 将S(I,j,1)和S(I,j,2)转换位二进制并XOR,将XOR的结果转换为十进制得到Qi,j。然后进行模4运算,得到2位二进制水印a1 i,j和a2 i,j。取S(i,j,31)和S(i,j,32)执行相同的操作,得到a3 i,j和a4 i,j,最后将4位水印进行组合,生成二级检测水印WD2 i,j。

9. 将WD2 i,j拼接到自己的块中,得到8位图像I5,如图5所示。

附图
像素POB压缩示例:

水印嵌入位置示例图:

总结
密文域脆弱水印是脆弱水印中的前沿领域,可以保护密文图像在传输或者存储过程中被篡改或破坏。
该文的一个缺陷是POB压缩过程中秘钥太大,如何传输秘钥是一个问题。
相关文章:
加密图像的脆弱水印及应用
原文题目:《A self-embedding secure fragile watermarking scheme with high quality recovery》 学习笔记: 应用场景 为了确保图像在传输过程中不被损坏,在将原始图像发送到云端之前,将用于篡改检测和恢复的水印嵌入到原始图像…...
python线上商城网站项目前台和后台源码
wx供重浩:创享日记 对话框发送:python51 获取完整源码源文件说明文档配置教程等 1、网站前台 在虚拟环境中启动程序后,使用浏览器访问“http://127.0.0.1:5000”即可进入网站前台首页。如图1所示。 单击首页左上角“注册”按钮,进…...
PowerShell 实现企业微信机器人推送消息
前言企业微信机器人 在ARMS告警管理中创建企业微信机器人后,您可以在通知策略中指定对应的企业微信群用于接收告警。当通知策略的匹配规则被触发时,系统会自动向您指定的企业微信群发送告警通知。企业微信群收到通知后,您可以在企业微信群中…...
IDEA集成Git就是这么简单
IDEA集成Git 文章目录IDEA集成Git配置Git环境配置Git的忽略文件①为什么需要配置忽略文件?②配置忽略文件③引用配置文件配置IDEA初始化项目添加到暂存区方式一:方式二:移除暂存区提交到本地库分支创建分支切换分支版本穿梭配置Git环境 配置…...
springBoot 事务基本原理
springBoot事务基本原理是基于spring的BeanPostProcessor,在springBoot中事务使用方式为: 一、在启动类上添加注解:EnableTransactionManagement 二、在需要事务的接口上添加注解:Transactional 基本原理: 注解&am…...
HBuilderX无线连接真机
说明 安装的是HBuilderX,不是HBuilder,adb.exe所在目录是 x:\HBuilderX\plugins\launcher\tools\adbs\ 里面可能有其他版本,用哪个都,建议使用最新的 配置 首先,将真机使用USB连接到电脑上。 在adb目录中启动命令…...
idea初学笔记
注:初学需安装idea专业版,方便学习使用idea运行内存配置从eclipse工具开发 转 idea工具开发,可设置idea快捷键同eclipse快捷键 file -> Settings -> Keymap -> 选择Eclipse -> OK设置idea项目整体编码格式file -> Settings -> Editor …...
C++核心编程<类和对象>(4)
C核心编程<类和对象>4.类和对象4.1封装4.1.1封装的意义封装的意义1封装的意义24.1.2struct和class区别4.1.3成员属性设置为私有4.2对象的初始化和清理4.2.1构造函数和析构函数1.1构造函数语法:类名(){}1.2析构函数语法: ~类名(){}4.2.2构造函数的分…...
编写http workshop脚本从网页缓存里解析音乐
前一篇文章 编写http workshop脚本从网站下载音乐 示范了如何使用HttpClient访问API,以及Json数据的解析; 今天我们通过解析一个网页展示如何使用内置的LibXml2的功能解析HTML,提取我们关心的内容。 这里随便搜了2个资源类的网站,竟然使用的格式是一模一样的: https://www…...
当数字孪生遇上轨道交通,会有什么新发展?
轨道交通是城市间互通互联的命脉,是当下人们出行的首要选择之一,也是我国“新基建”的重点建设对象。将城轨交通各链路系统及多类型服务,与空间感知、移动互联、云计算等技术深度融合,集中实现城市空间、城轨分布、城轨运行动态的…...
原理底层计划--分布式事务
分布式事务 mysql事务 我们通过show engines查询存储引擎,mysql一般为innodb, 为什么? 因为innodb支持事务是原因之一。 特性无非ACID 原子性,一致性,隔离性,持久性 一致性是最后追求的结果,也就保证了数…...
Hive总结
文章目录一、Hive基本概念二、Hive数据类型三、DDL,DML,DQL1 DDL操作2 DML操作3 DQL操作四、分区操作和分桶操作1、分区操作2、分桶操作五、Hive函数六、文件格式和压缩格式一、Hive基本概念 Hive是什么? Hive:由 Facebook 开源用于解决海量结构化日志的…...
docker环境下安装jenkins
前言 差点被Jenkins的插件搞麻了,又是依赖不对又是版本需要升级的,差点破口大骂了,还好忍住了,静下心来慢慢搞,终于搞通了。这里必须记录一下。 废话不多说,上来就是干,jenkins是干嘛用的&…...
Shifu基础功能:设备接入
如何修改设备接入的配置 1. 编辑edgedevice.yaml文件 接入设备前,您需要对edgedevice.yaml文件进行编辑。对于不同的协议,protocolSettings可根据协议进行进一步配置,详细配置请前往Shifu API参考。 ... connection: Ethernet address: …...
基于Java+SpringBoot+Vue+Redis+RabbitMq的鲜花商城
基于JavaSpringBootVueRedisRabbitMq的鲜花商城 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、…...
蓝桥杯真题(解码)小白入!
本来看这个题感觉很简单,不就是Ascall值换来换去嘛,其实也真的这样,但是对于小白来说,ascall根本记不住 题目说了,每个数不会重复超过9次(这见到那多了,不然根本不会写) 其次如何实现…...
并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?
第20讲 | 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别? 在上一讲中,我分析了 Java 并发包中的部分内容,今天我来介绍一下线程安全队列。Java 标准库提供了非常多的线程安全队列,很容易混淆。 今天我要问你的…...
分享四个前端Web3D动画库在Threejs中使用的动画库以及优缺点附地址
Threejs中可以使用以下几种动画库:Tween.js:Tween.js是一个简单的缓动库,可以用于在three.js中创建简单的动画效果。它可以控制数值、颜色、矢量等数据类型,并提供了多种缓动函数,例如线性、弹簧、强化、缓冲等等。区别…...
谷歌浏览器和火狐浏览器永久禁用缓存【一劳永逸的解决方式】
目录 前言 谷歌浏览器 方式一 方式二 火狐浏览器 前言 缓存对于开发人员来说异常的痛苦,很多莫名其妙的bug就是由缓存导致的,但当我们在网上查找禁用缓存的方式时,找到的方式大多数都是在开发者工具的面板中勾选禁用缓存的选项,但这种方式有个弊端就是需要一直打开这个…...
kibana查看日志
一、背景 kibana收集日志功能很强大,之前只是简单的使用,此次系统学习了解并分享一波 二、kibana查看日志的基本使用 1.选择查询的服务和日志文件 注意:每个应用配置了开发与生产环境,需要找到指定的应用 1.1选择对应的应用 1.…...
如何永久保存微信聊天记录?这款免费工具让你真正拥有自己的数字记忆
如何永久保存微信聊天记录?这款免费工具让你真正拥有自己的数字记忆 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Tren…...
在ALV当中上传的excel形式的layout,没法删除怎么办?
明明点了上边的删除键(-)也保存了,下次进入还是存在。OAOR,上传的模板都在里面,点击删除即可...
如何在Linux系统中快速找到文件:FSearch终极文件搜索工具完整指南
如何在Linux系统中快速找到文件:FSearch终极文件搜索工具完整指南 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 在Linux系统中寻找特定文件常常令人头疼…...
打破设备壁垒:Sunshine让游戏自由流动的串流革命
打破设备壁垒:Sunshine让游戏自由流动的串流革命 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想象一下:你在客厅的高性能电脑上开始了一场紧张刺激的3A大…...
万象视界灵坛应用案例:博物馆数字藏品语义标注系统开发实录
万象视界灵坛应用案例:博物馆数字藏品语义标注系统开发实录 1. 项目背景与挑战 博物馆数字化进程中,海量文物藏品的语义标注一直是个难题。传统方法依赖人工标注,不仅效率低下,而且难以保证一致性。以某省级博物馆为例ÿ…...
如何从微信聊天记录中提取数据价值:WeChatMsg的完整解决方案
如何从微信聊天记录中提取数据价值:WeChatMsg的完整解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...
Flutter文件操作实战:File_selector跨平台文件处理从入门到精通
1. 为什么Flutter开发者都需要掌握File_selector? 在移动应用和桌面应用开发中,文件操作就像我们日常生活中的"文件柜"——你需要存放、查找、整理各种文档。而Flutter作为跨平台框架,最大的挑战就是如何在不同操作系统上实现统一的…...
Web Scraper插件实战:解决豆瓣电影Top250爬取乱序问题(附完整JSON配置)
Web Scraper插件实战:解决豆瓣电影Top250爬取乱序问题(附完整JSON配置) 当你第一次使用Web Scraper爬取豆瓣电影Top250榜单时,可能会遇到一个令人困惑的现象:明明页面上电影名称和简介是对应的,但爬取下来的…...
springboot+vue基于web的个人博客论坛交流网站
目录同行可拿货,招校园代理 ,本人源头供货商核心功能模块分析技术实现要点扩展功能设计安全防护措施项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 ,本人源头供货商 核心功能模块分析 用户管理模块 注…...
永磁同步直线电机建模、仿真及优化教学:从基础原理入门到工程应用精通的系统学习与实战指南
永磁同步直线电机,建模,仿真及优化教学从入门到精通永磁同步直线电机高速精密绘图仪笔尖能在纸上跑出米每秒级速度却连发丝粗细的误差都没有,晶圆台托着指甲盖大的芯片在光刻机里微米级挪位卡得死死的,这些“直来直去还准到离谱”…...
