图像置乱加密-Arnold加密算法

置乱加密是另一种较常用的加密方法,现也被许多文献选用,置乱加密可以是以像素为单位进行全局置乱,该方式打乱了图像像素值的位置,使其图像内容失去相关性,达到保护的目的。也可以是以块为单位进行置乱,该方式保留块内像素的相关性,但是打乱块与块之间的相关性,达到加密效果。另外,也有部分文献采用上述的混合方法,即先进行块置乱加密,再块内像素置乱加密,这一方法有着更好的安全性,同时,也保留块内像素部分相关性。

Arnold加密算法

典型的以像素为单位进行全局置乱加密的算法是Arnold加密算法,该加密算法也叫做“猫脸变换”,该变换在进行矩阵运算时,经过一定次数会变换为原始图像,呈现出一定的周期性,所以解密时也是依据Arnold加密算法的周期性,其变换周期根据图像大小不同而不一样,若图像阶数为N,那么其Arnold变换周期{​{T}_{N}},如表所示。

在图像解密时,只需对照变换周期及加密密钥,就可以对密文图像进行解密,也就是使其变换为原始图像,如图像大小为512×512,选取的加密密钥Key=135,那么解密时只需对密文图像再进行384-135=249次变换,即能得到原始图像。需要说明的是,Arnold变换只是改变了像素值的位置,其像素值是没发生变化的,因此其像素直方图统计特性是没有改变的,非常有利于采用直方图平移嵌入额外信息。也正是因为像素值没发生变化,其图像的信息内容存在着泄漏可能。

 另一种置乱方法是以块为单位进行置乱,设图像I的大小为M×N,分块大小为s×s,那么图像一共可以被分为互不重叠的n块,其中n由公式(1)得出:

n=\left\lfloor \frac{M\times N}{s\times s} \right\rfloor                      (1)

 上式的 [.] 符号表示取下整。块置乱的一般加密方法是先对块进行排序,然后再利用随机函数打乱序列,达到置乱目的。首先根据图像及分块大小,将图像分为n块,然后按照从左到右、从上到下的顺序扫描块,将二维矩阵块转换为一维向量,按照公式2-5对图像I进行排序,式中T表示n个块的排列序列。

T=\{​{​{I}_{1}},{​{I}_{2}},{​{I}_{3}},\cdot \cdot \cdot ,{​{I}_{n}}\}     (2)

块的位置排列完成后,再利用位置置乱函数randperm对序列进行随机打乱,得到置乱后的密文图像。从块置乱加密的方法中,可以看出块置乱只是依据置乱函数随机改变了块的位置,而块内像素的位置及其数值都没发生变化,保持者一定的相关性,也正是基于这一特性,从整幅密文图像来看,像素值没发生变化,适合利用直方图平移进行信息隐藏;而从块内像素的相对位置及像数值来看,非常适合基于差值扩展和预测误差的方法来进行信息隐藏,这两种思路也在文献[59-60]中使用。但是需要注意的是,块置乱密文图像安全性与块的大小有着直接关系,一般来说,块的阶数越小,分块数目越多,那么置乱加密后安全性越好,关于块大小及其密文图像关系见图。

从图中可以看出,块的阶数越大,其置乱后密文图像越不安全,主要原因是分块太大,导致其置乱后块内图像信息安全有泄漏的风险,可以凭借肉眼就能分辨得出明文图像,而分块小时,如图(b)所示,置乱加密后图像信息内容安全得到很好保护,同时分块太大,其密文图像会将块的大小给清晰呈现出,间接给出了加密方式,不利于信息内容的保护。而针对这一安全问题,若分块较大时,常用的办法是在对块置乱后,然后再对块内像素进行位置置乱,打乱块内的相关性,使其密文图像呈现出无规律,该方法结合块置乱和位置置乱,能有效保护图像的信息内容安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/317714.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[数据结构]———交换排序

目录 1.交换排序 第一个定义了一个名为Swap的函数 第二个三数取中 2.冒泡排序 代码解析 冒泡排序的特性总结: 3.快速排序 1. hoare版本 2. 挖坑法 代码解析 3. 前后指针版本 代码解析 1.交换排序 基本思想:所谓交换,就是根据序列中两…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.4--汇编LED驱动程序

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

【PPT设计】颜色对比、渐变填充、简化框线、放大镜效果、渐变形状配图、线条的使用

目录 图表颜色对比、渐变填充、简化框线放大镜效果渐变形状配图 线条的使用区分标题与说明信息区分标题与正文,区分不同含义的内容**聚焦****引导****注解****装饰** 图表 颜色对比、渐变填充、简化框线 小米汽车正式亮相!你们都在讨论价格,我全程只关…

[1673]jsp在线考试管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 在线考试管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

Linux 进程间通信之匿名管道

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:Linux知识分享⏪   🚚代码仓库:Linux代码练习🚚   🌹关注我🫵带你学习更多Linux知识   🔝 目录 前言 一. 进程间通信介绍 1.进程间通…

如何解决pycharm创建项目报错 Error occurred when installing package ‘requests‘. Details.

🐯 如何解决PyCharm创建项目时的包安装错误:‘requests’ 🛠️ 文章目录 🐯 如何解决PyCharm创建项目时的包安装错误:requests 🛠️摘要引言正文📘 **问题分析**🚀 **更换Python版本…

利用STM32实现语音识别功能

引言 随着物联网和智能设备的普及,语音识别技术正逐渐成为用户交互的主流方式之一。 STM32微控制器具备处理高效率语音识别算法的能力,使其成为实现低成本、低功耗语音交互系统的理想选择。 本教程将介绍如何在STM32平台上开发和部署一个基础的语音识…

详解SDRAM基本原理以及FPGA实现读写控制

文章目录 一、SDRAM简介二、SDRAM存取结构以及原理2.1 BANK以及存储单元结构2.2 功能框图2.3 SDRAM速度等级以及容量计算 三、SDRAM操作命令3.1 禁止命令: 4b1xxx3.2 空操作命令:4b01113.3 激活命令:4b00113.4 读命令:4b01013.5 写…

---文件操作---

#include<iostream> using namespace std; #include<fstream>void test01() {//1.包含头文件//2.创建流对象ofstream ofs;//3.指定打开方式ofs.open("test.txt", ios::out);//写文件//4.写内容ofs << "张三" << endl;ofs <<…

使用 Flask 和 WTForms 构建一个用户注册表单

在这篇技术博客中&#xff0c;我们将使用 Flask 和 WTForms 库来构建一个用户注册表单。我们将创建一个简单的 Flask 应用&#xff0c;并使用 WTForms 定义一个注册表单&#xff0c;包括用户名、密码、确认密码、邮箱、性别、城市和爱好等字段。我们还将为表单添加验证规则&…

罗宾斯《管理学》第15版笔记/课后习题/考研真题答案

第Ⅰ篇 管理导论 第1章 工作场所中的管理者和你 1.1 知识结构导图 1.2 考点难点归纳 1.3 课后习题详解 1.4 考研真题详解 附加模块一 管理史 知识结构导图 考点难点归纳 课后习题详解 考研真题详解 第2章 决 策 2.1 知识结构导图 2.2 考点难点归纳 2.3 课后习题详解…

git 第一次安装设置用户名密码

git config --global user.name ljq git config --global user.email 15137659164qq.com创建公钥命令 输入后一直回车 ssh-keygen -t rsa下面这样代表成功 这里是公钥的 信息输入gitee 中 输入下面命令看是否和本机绑定成功 ssh -T gitgitee.com如何是这样&#xff0c;恭喜…

类和对象中的默认成员函数(构造,拷贝构造,析构......)深入了解类和对象

文章目录 类的6个默认成员函数构造函数总结构造函数 析构函数总结析构函数 拷贝构造函数总结拷贝构造函数 赋值运算符重载取地址重载和const取地址重载 类的6个默认成员函数 一个什么都不写的类我们称之为“空类” class Test {}我们什么都没写&#xff0c;这里看着空空的&am…

对2023年图灵奖揭晓看法

2023年图灵奖揭晓&#xff0c;你怎么看&#xff1f; 2023年图灵奖&#xff0c;最近刚刚颁给普林斯顿数学教授 Avi Wigderson&#xff01;作为理论计算机科学领域的领军人物&#xff0c;他对于理解计算中的随机性和伪随机性的作用&#xff0c;作出了开创性贡献。这些贡献不仅推…

用FPGA+DAC输出“心”形波

1.前言 之前在做信号处理的时候整了一下活&#xff0c;用FPGADAC&#xff08;数模转换器&#xff09;&#xff0c;输出了一个爱心形状的波形&#xff0c;今天整理资料的时候偶然发现了他&#xff0c;现在把他分享出来。当时将DAC的输出接在示波器上显示如下图所示&#xff1a; …

IDEA创建Tomcat/Servlet项目

作者&#xff1a;私语茶馆 1.前言 利用Idea创建一个Java EE的Tomcat Web项目&#xff0c;记录一下过程。 Jakarta EE介绍&#xff1a;以前被称为Java EE&#xff08;Java Platform, Enterprise Edition&#xff09;&#xff0c;但在Oracle将Java EE相关的技术和知识产权转移到…

如何从 iPhone 恢复已删除或丢失的联系人?

不小心删除了您的 iPhone 联系人&#xff1f;不用担心。我们将向您展示如何从 iPhone或 iPad恢复已删除或丢失的联系人。当您从 iPhone 中删除联系人时&#xff0c;您可能认为无法将其恢复。但事实是&#xff0c;您可以从 iPhone 或 iPad 恢复已删除的联系人&#xff0c;因为它…

vue3实现移动端,PC端响应式布局

纯移动端|PC端 这种适用于只适用一个端的情况 方法&#xff1a;amfe-flexible postcss-pxtorem相结合 ① 执行以下两个命令 npm i -S amfe-flexible npm install postcss-pxtorem --save-dev② main.js文件引用 import amfe-flexible③ 根目录新建一个postcss.config.js文件…

rancher/elemental 构建不可变IOS(一)

一、什么是elemental Elemental 是 Rancher 的一个变种&#xff0c;专注于提供一个更轻量级的 Kubernetes 发行版。它旨在提供简化的部署和管理体验&#xff0c;同时保持 Kubernetes 的灵活性和强大功能。Elemental 通常针对较小的部署场景或资源受限的环境&#xff0c;例如测…

16册 | 移动机器人(自动驾驶)系列

此文档整理推荐了16本移动机器人&#xff08;自动驾驶&#xff09;相关的书籍&#xff0c;内容包括&#xff1a;ROS、机器人基础开发、分布式机器人控制、集群机器人控制、嵌入式机器人、多传感器融合等等。 学习&#xff0c;切勿急于求成&#xff0c;读书自学&#xff0c;需多…