【图像加密】基于matlab GUI正交拉丁方置乱算法图像加解密【含Matlab源码 182期】

2024-04-11 08:58

本文主要是介绍【图像加密】基于matlab GUI正交拉丁方置乱算法图像加解密【含Matlab源码 182期】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、正交拉丁方置乱简介

0 引言
随着通讯技术的飞速发展, 越来越多的领域需要传送数字图像信号, 因此信息的传送安全问题显得越来越重要。通常应用于数字图像通信的两种保护技术为:数字水印技术和图像加密技术。前一种保护技术因不改变图像的可见性而不适合用于保密图像的传送。后一种技术通过加密操作, 改变图像的可见性, 使原来的图像成为不可辨别的, 而只能通过相应的解密算法得到原始图像。随着通讯技术的发展, 图像加密技术因其具有良好的保密性而得到越来越广泛的应用。
在加密算法中需要一个随机序列发生器。由于离散的混沌系统容易实现, 同时混沌系统对参数和初始条件极其敏感, 把其作为密钥, 则系统具有优良的密码特性, 同时它在二维相平面内的不规则性使其更适用于图像加密。
本文应用离散混沌动力系统, 针对图像数据的存储特点, 设计了一种图像加密算法。所有的密钥都由离散混沌映射产生, 因此算法没有因为增加密钥设置而影响加密/解密的效率和速度。由于利用了混沌映射, 增加了破译难度, 提高了安全性, 仿真结果表明该算法能够有效地实现对数字图像数的加密/解密。

1 正交拉丁方置乱
1.1 基本概念
定义1由元素1, 2, 3,…,n构成一个n×n的方阵(aij) n×n,使得每行每列中各元素恰好只出现一次,这样的方阵叫做n阶拉丁方。
定义2设A=(aij) n×n, B= (bij) n×n是两个n×n的拉丁方,若方阵( (aij, bij) )n×n中的n2个偶对(aij, bij)互不相同,i, j=1, 2,…,n,则称A与B为互相正交拉丁方,或称A与B为n阶正交拉丁方。
在这里插入图片描述
则由A、B构成3×3的偶对方阵
在这里插入图片描述
其中没有相同的元素,故A与B是三阶正交拉丁方。

1.2 相关定理
定理1互相正交的n阶拉丁方的个数不超过n-1个,即若A1, A2,…,Ak是两两正交的n阶拉丁方,则k≤n-1。
定理2设n≥3且n=pα,p为一个素数,α是一个正整数,则存在n-1个正交的n阶拉丁方A1, A2,…,An-1,且设
在这里插入图片描述
定理3若A1, A2,…,Am为两两正交的拉丁方组,且设
在这里插入图片描述
在这里插入图片描述
1.3 基于正交拉丁方的数字图像置乱
图像置乱起源于密码学早期所使用的一些密码算法,功能是将图像中像素的位置重新排列,将原始图像变换成一个杂乱无章的新图像,要恢复原始图像必须保证原始图像与变换图像之间的变换是1-1映射(双射),而正交拉丁方正好具备该性质。具体方法是:
在这里插入图片描述
由定理3知,对于3维空间中的图像,利用正交拉丁方同样能达到数字图像置乱的目的,由于正交拉丁方组中含有n-1个互相正交的拉丁方,故这种图像置乱方法有n (n-1) 种。而对于三维图像则有n (n-1) (n-2) 种。

1.4 新的图像加密算法
文中提出的算法其主要思想是:根据Logistic映射,利用密钥x0, μ产生混沌序列xk,由xk生成灰度置乱矩阵G*,利用矩阵G*对原图像加密后再对其应用基于正交拉丁方的置乱,完成对图像的双重加密。完整的置乱和复原算法如图1所示。

算法采用异或运算对像素值进行改变是因为异或运算在数学上可逆,可实现算法的逆操作。步骤如下:
(1)根据Logistic映射,利用密钥μ, x0。生成一组混沌序列xk, 从xr (r>0) 开始取M×N个元素构成M×N的矩阵B, B (i, j) ∈[0, 1]。将B (i, j) 按式 (7) 变换生成加密矩阵C, C (i, j) ∈[0, 255]。
在这里插入图片描述
(2)原始图像矩阵为A,把A中每个像素的像素值 (i, j) 与C (i, j) 作异或运算,得到一级加密图像M。
(3)对图像M进行正交拉丁方置乱变换,得到最终加密图像I*。解密过程刚好是加密隐藏的逆过程。
(4)对图像I*进行正交拉丁方逆变换, 得到图像M。
(5)根据一维Logistic函数、参数及初始值,得到一维随机序列,形成加密矩阵C。
(6)加密矩阵C与图像M作异或运算,得到原始图像矩阵A。
在这里插入图片描述
图1 加密算法模型

⛄二、部分代码

function varargout = ladingfang(varargin)
% LADINGFANG M-file for ladingfang.fig
% LADINGFANG, by itself, creates a new LADINGFANG or raises the existing
% singleton*.
%
% H = LADINGFANG returns the handle to a new LADINGFANG or the handle to
% the existing singleton*.
%
% LADINGFANG(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in LADINGFANG.M with the given input arguments.
%
% LADINGFANG(‘Property’,‘Value’,…) creates a new LADINGFANG or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before ladingfang_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to ladingfang_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help ladingfang

% Last Modified by GUIDE v2.5 05-Jan-2005 22:18:40

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @ladingfang_OpeningFcn, …
‘gui_OutputFcn’, @ladingfang_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]崔基哲,张波,Jong Weon KIM.一种图像置乱算法及在数字电视中的应用研究[J].电视技术. 2011,35(20)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

这篇关于【图像加密】基于matlab GUI正交拉丁方置乱算法图像加解密【含Matlab源码 182期】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/893624

相关文章

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

代码随想录算法训练营:12/60

非科班学习算法day12 | LeetCode150:逆波兰表达式 ,Leetcode239: 滑动窗口最大值  目录 介绍 一、基础概念补充: 1.c++字符串转为数字 1. std::stoi, std::stol, std::stoll, std::stoul, std::stoull(最常用) 2. std::stringstream 3. std::atoi, std

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

高仿精仿愤怒的小鸟android版游戏源码

这是一款很完美的高仿精仿愤怒的小鸟android版游戏源码,大家可以研究一下吧、 为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。 源码下载

大林 PID 算法

Dahlin PID算法是一种用于控制和调节系统的比例积分延迟算法。以下是一个简单的C语言实现示例: #include <stdio.h>// DALIN PID 结构体定义typedef struct {float SetPoint; // 设定点float Proportion; // 比例float Integral; // 积分float Derivative; // 微分flo

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

美容美发店营销版微信小程序源码

打造线上生意新篇章 一、引言:微信小程序,开启美容美发行业新纪元 在数字化时代,微信小程序以其便捷、高效的特点,成为了美容美发行业营销的新宠。本文将带您深入了解美容美发营销微信小程序,探讨其独特优势及如何助力商家实现业务增长。 二、微信小程序:美容美发行业的得力助手 拓宽客源渠道:微信小程序基于微信社交平台,轻松实现线上线下融合,帮助商家快速吸引潜在客户,拓宽客源渠道。 提升用户体验:

风水研究会官网源码系统-可展示自己的领域内容-商品售卖等

一款用于展示风水行业,周易测算行业,玄学行业的系统,并支持售卖自己的商品。 整洁大气,非常漂亮,前端内容均可通过后台修改。 大致功能: 支持前端内容通过后端自定义支持开启关闭会员功能,会员等级设置支持对接官方支付支持添加商品类支持添加虚拟下载类支持自定义其他类型字段支持生成虚拟激活卡支持采集其他站点文章支持对接收益广告支持文章评论支持积分功能支持推广功能更多功能,搭建完成自行体验吧! 原文

LeetCode 算法:二叉树的中序遍历 c++

原题链接🔗:二叉树的中序遍历 难度:简单⭐️ 题目 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围 [0, 100] 内 -100 <= Node.