天天看点

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

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阶正交拉丁方。

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

则由A、B构成3×3的偶对方阵

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

其中没有相同的元素,故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,且设

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

定理3若A1, A2,…,Am为两两正交的拉丁方组,且设

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

1.3 基于正交拉丁方的数字图像置乱

图像置乱起源于密码学早期所使用的一些密码算法,功能是将图像中像素的位置重新排列,将原始图像变换成一个杂乱无章的新图像,要恢复原始图像必须保证原始图像与变换图像之间的变换是1-1映射(双射),而正交拉丁方正好具备该性质。具体方法是:

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

由定理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]。

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

(2)原始图像矩阵为A,把A中每个像素的像素值 (i, j) 与C (i, j) 作异或运算,得到一级加密图像M。

(3)对图像M进行正交拉丁方置乱变换,得到最终加密图像I*。解密过程刚好是加密隐藏的逆过程。

(4)对图像I*进行正交拉丁方逆变换, 得到图像M。

(5)根据一维Logistic函数、参数及初始值,得到一维随机序列,形成加密矩阵C。

(6)加密矩阵C与图像M作异或运算,得到原始图像矩阵A。

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

图1 加密算法模型

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

1 matlab版本

2014a

2 参考文献

[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.

[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.

[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.

[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.