CN108199828B - 一种彩色图片加密方法及装置 - Google Patents
一种彩色图片加密方法及装置 Download PDFInfo
- Publication number
- CN108199828B CN108199828B CN201810128976.5A CN201810128976A CN108199828B CN 108199828 B CN108199828 B CN 108199828B CN 201810128976 A CN201810128976 A CN 201810128976A CN 108199828 B CN108199828 B CN 108199828B
- Authority
- CN
- China
- Prior art keywords
- image
- gray level
- dimensional
- chaotic sequence
- mod256
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/001—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
Abstract
本发明实施例提供了一种彩色图片加密方法及装置,该方法包括:获取到明文图像的四种灰度图像对应的四个一维向量,将四个一维向量生成二维矩阵;将获取到的初始密钥进行迭代运算得到第一混沌序列和第二混沌序列,迭代运算包含二维Henon映射和二维Logistic映射;通过第一混沌序列随机提取二维矩阵的像素点,根据提取得到的像素点与第二混沌序列进行运算得到第三混沌序列;通过四维Lorenz映射根据第三混沌序列进行运算得到第四混沌序列,并对第四混沌序列进行向下取整运算得到加密密码;通过加密密码对灰度图像分别进行前向扩散,再通过三维Baker映射对扩散后的灰度图像进行置乱,然后通过加密密码对置乱后的灰度图像进行后向扩散得到密文图像。
Description
技术领域
本发明涉及图片加密技术领域,尤其涉及一种彩色图片加密方法及装置。
背景技术
近几年来,互联网高速发展,越来越多的信息与数据都通过互联网来进行传输。而在互联网上传输数据都必须首先要考虑到一个问题:数据的安全性。如何防止数据与信息在进行传输的时候不被破坏,窃取,保证它们的完整性。同时因为随着计算机科学与技术的快速发展,产生了密码学和信息安全等学科,里面提到的关于保护数据的方法:加密,其得到广泛的关注和应用。因此应用加密方法来保护数据是一个可行的办法。又因为互联网的数据以语音、数字图像和视频等非线性数据居多,特别地,数字图像正是当前主流的传播多媒体信息的形式之一。如何对数字图像进行一个好的加密来保证数据的安全,是当前的研究热点。
相比较于文本数据,在本质上图像数据具有数据量巨大、相关性强和数据冗余信息量大的特征,这使得基于文本数据的传统加密***不再适用于图像的加密。当前已有许多应用于图片加密的算法,然而,这些算法均存在各种缺陷,如两级密钥体系中容易受到穷举攻击;有些技术抵抗差分攻击能力强,但是运算速度慢;有些则敏感性很强,密钥空间大,但是抵抗剪切攻击和噪声污染的能力差等等。
因此,提供一种能够全面抵抗各类攻击的加密算法成为本领域技术人员亟待解决的技术问题。
发明内容
本发明实施例提供了一种彩色图片加密方法及装置,能够全面抵抗各类攻击。
本发明实施例提供了一种彩色图片加密方法,包括:
获取到明文图像的四种灰度图像对应的四个一维向量,将四个所述一维向量生成二维矩阵;
将获取到的初始密钥进行迭代运算得到第一混沌序列和第二混沌序列,所述迭代运算包含二维Henon映射和二维Logistic映射;
通过所述第一混沌序列随机提取所述二维矩阵的像素点,根据提取得到的所述像素点与所述第二混沌序列进行运算得到第三混沌序列;
通过四维Lorenz映射根据所述第三混沌序列进行运算得到第四混沌序列,并对所述第四混沌序列进行向下取整运算得到加密密码;
通过所述加密密码对所述灰度图像分别进行前向扩散,再通过三维Baker映射对扩散后的灰度图像进行置乱,然后通过所述加密密码对置乱后的灰度图像进行后向扩散得到密文图像。
优选地,所述获取到明文图像的四种灰度图像对应的四个一维向量,将四个所述一维向量生成二维矩阵之前还包括:
获取到明文图像的四种所述灰度图像,分别对每个灰度图像按从左到右再从上到下的顺序进行展开得到每个所述灰度图像的一维向量;
其中,四种所述灰度图像为R灰度图像、G灰度图像、B灰度图像和Gray灰度图像。
优选地,所述初始密钥由二维Henon映射的两个初始值、二维Logistic映射的两个初始值、两个随机值和灰度图像像素点选择个数依次组成。
优选地,所述将获取到的初始密钥进行迭代运算得到第一混沌序列和第二混沌序列具体包括:
对二维Henon映射的两个所述初始值、二维Logistic映射的两个所述初始值进行第一次所述迭代运算;
对第一次所述迭代运算最后一次迭代得到的值进行第二次所述迭代运算,得到第一混沌序列;
对第二次所述迭代运算最后一次迭代得到值进行第三次所述迭代运算,得到第二混沌序列;
其中,第一次所述迭代运算的迭代次数等于两个所述随机值与一千之和,第二次所述迭代运算的迭代次数等于灰度图像像素点选择个数,第三次所述迭代运算的迭代次数等于单个所述灰度图像的总像素点个数。
优选地,所述通过四维Lorenz映射根据所述第三混沌序列进行运算得到第四混沌序列具体包括:
通过预置第一公式组对所述第三混沌序列依次进行第一取模运算,再通过预置第二公式组对所述第一取模运算后的所述第三混沌序列进行第二取模运算;
通过四维Lorenz映射对第二取模运算后的所述第三混沌序列进行运算得到第四混沌序列;
其中,所述预置第一公式组为:
psxi=(pxi+sxi)mod 1
psyi=(pyi+syi)mod 1
pszi=(pzi+szi)mod 1
pswi=(pwi+swi)mod 1
式中,sx,sy,sz,sw为第二混沌序列,px,py,pz,pw为第三混沌序列,i=1,2,…,M×N,M×N为单个灰度图像的总像素点个数,M为行数,N为列数;
所述预置第二公式组为:
x0i=((((psxi+psyi+3)×(pszi+pswi+3))×80)mod 80)-40
y0i=((((psxi+psyi+3)×(pszi-pswi+3))×80)mod 80)-40
z0i=(((psxi-psyi+3)×(pszi+pswi+3))mod 80)+1
w0i=((((psxi+psyi+3)×(pszi+pswi+3))×500)mod 500)-250
式中,psx,psy,psz,psw为第一取模运算后的第三混沌序列,i=1,2,…,M×N。
优选地,所述对所述第四混沌序列进行向下取整运算得到加密密码具体为:
通过预置第三公式组对所述第四混沌序列进行向下取整运算得到加密密码第一密码、第二密码、第三密码、第四密码、第五密码和第六密码;
其中,所述预置第三公式组为:
X(m,n)=(floor(((x(m-1)×N+n+500)mod 1)×1013)mod M)+1
Y(m,n)=(floor(((y(m-1)×N+n+500)mod 1)×1013)mod N)+1
Z(m,n)=(floor(((z(m-1)×N+n+500)mod 1)×1013)mod M)+1
W(m,n)=(floor(((w(m-1)×N+n+500)mod 1)×1013)mod N)+1
U(m,n)=(floor(((x(m-1)×N+n+y(m-1)×N+n+500)mod 1)×1013)mod M)+1
V(m,n)=(floor(((z(m-1)×N+n+w(m-1)×N+n+500)mod 1)×1013)mod N)+1
式中,x(m-1)×N+n∈xi,y(m-1)×N+n∈yi,z(m-1)×N+n∈zi,w(m-1)×N+n∈wi,xi,yi,zi,wi为第四混沌序列,i=1,2,…,M×N,m=1,2,…,M,n=1,2,…,N,M×N为单个灰度图像的总像素点个数,M为行数,N为列数。
优选地,所述通过所述加密密码对所述灰度图像分别进行前向扩散具体包括:
获取所述明文图像的三种所述灰度图像,三种所述灰度图像包括R灰度图像、G灰度图像和B灰度图像;
通过预置第四公式组根据所述第一密码对R灰度图像进行前向扩散,通过预置第五公式组根据所述第二密码对G灰度图像进行前向扩散,预置第六公式组根据所述第三密码对B灰度图像进行前向扩散;
其中,所述预置第四公式组为:
A(1,1,1)=(P(1,1,1)+X(1,1)+r1)mod 256
A(1,n,1)=(P(1,n,1)+A(1,n-1,1)+X(1,n))mod 256
A(m,1,1)=(P(m,1,1)+A(m-1,1,1)+X(m,1))mod 256
A(m,n,1)=(P(m,n,1)+A(m-1,n,1)+A(m,n-1,1)+X(m,n))mod 256
式中,m=1,2,…,M,n=1,2,…,N,P(m,n,1)为R灰度图像第m行第n列个像素点,A(m,n,1)为前向扩散后的R灰度图像第m行第n列个像素点,r1为随机整数且r1∈[0,255];
所述预置第五公式组为:
A(1,1,2)=(P(1,1,2)+A(M,N,1)+Y(1,1)+r1)mod 256
A(1,n,2)=(P(1,n,2)+A(1,n-1,2)+Y(1,n))mod 256
A(m,1,2)=(P(m,1,2)+A(m-1,1,2)+Y(m,1))mod 256
A(m,n,2)=(P(m,n,2)+A(m-1,n,2)+A(m,n-1,2)+Y(m,n))mod 256
式中,m=1,2,…,M,n=1,2,…,N,P(m,n,2)为G灰度图像第m行第n列个像素点,A(m,n,2)为前向扩散后的G灰度图像第m行第n列个像素点,r1为随机整数且r1∈[0,255];
所述预置第六公式组为:
A(1,1,3)=(P(1,1,3)+A(M,N,2)+Z(1,1)+r1)mod 256
A(1,n,3)=(P(1,n,3)+A(1,n-1,3)+Z(1,n))mod 256
A(m,1,3)=(P(m,1,3)+A(m-1,1,3)+Z(m,1))mod 256
A(m,n,3)=(P(m,n,3)+A(m-1,n,3)+A(m,n-1,3)+Z(m,n))mod 256
式中,m=1,2,…,M,n=1,2,…,N,P(m,n,3)为B灰度图像第m行第n列个像素点,A(m,n,3)为前向扩散后的B灰度图像第m行第n列个像素点,r1为随机整数且r1∈[0,255]。
优选地,所述再通过三维Baker映射对扩散后的灰度图像进行置乱具体为:
通过三维Baker映射根据所述第一密码和所述第六密码对扩散后的所述R灰度图像、所述G灰度图像和所述B灰度图像进行置乱。
优选地,所述然后通过所述加密密码对置乱后的灰度图像进行后向扩散得到密文图像具体为:
通过预置第七公式组根据所述第六密码对置乱后的所述B灰度图像进行后向扩散,通过预置第八公式组根据所述第五密码对置乱后的所述G灰度图像进行后向扩散,预置第九公式组根据所述第四密码对置乱后的所述R灰度图像进行后向扩散,得到密文图像;
其中,所述预置第七公式组为:
D(M,N,3)=(B(M,N,3)+V(M,N)+r2)mod 256
D(M,n,3)=(B(M,n,3)+D(M,n+1,3)+V(M,n))mod 256
D(m,N,3)=(B(m,N,3)+D(m+1,N,3)+V(m,N))mod 256
D(m,n,3)=(B(m,n,3)+D(m+1,n,3)+D(m,n+1,3)+V(m,n))mod 256
式中,m=1,2,…,M,n=1,2,…,N,B(m,n,3)为置乱后的B灰度图像,r2为随机整数且r2∈[0,255];
所述预置第八公式组为:
D(M,N,2)=(B(M,N,2)+D(1,1,3)+U(M,N)+r2)mod 256
D(M,n,2)=(B(M,n,2)+D(M,n+1,2)+U(M,n))mod 256
D(m,N,2)=(B(m,N,2)+D(m+1,N,2)+U(m,N))mod 256
D(m,n,2)=(B(m,n,2)+D(m+1,n,2)+D(m,n+1,2)+U(m,n))mod 256
式中,m=1,2,…,M,n=1,2,…,N,B(m,n,2)为置乱后的G灰度图像,r2为随机整数且r2∈[0,255];
所述预置第九公式组为:
D(M,N,1)=(B(M,N,1)+D(1,1,2)+W(M,N)+r2)mod 256
D(M,n,1)=(B(M,n,1)+D(M,n+1,1)+W(M,n))mod 256
D(m,N,1)=(B(m,N,1)+D(m+1,N,1)+W(m,N))mod 256
D(m,n,1)=(B(m,n,1)+D(m+1,n,1)+D(m,n+1,1)+W(m,n))mod 256
式中,m=1,2,…,M,n=1,2,…,N,B(m,n,1)为置乱后的R灰度图像,r2为随机整数且r2∈[0,255]。
优选地,本发明实施例还提供了一种彩色图片加密装置,包括:
存储器,用于存储指令;
处理器,耦合到所述存储器,所述处理器被配置为基于所述存储器存储的指令执行实现如以上所述的算法。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例提供了一种彩色图片加密方法及装置,该方法包括:获取到明文图像的四种灰度图像对应的四个一维向量,将四个一维向量生成二维矩阵;将获取到的初始密钥进行迭代运算得到第一混沌序列和第二混沌序列,迭代运算包含二维Henon映射和二维Logistic映射;通过第一混沌序列随机提取二维矩阵的像素点,根据提取得到的像素点与第二混沌序列进行运算得到第三混沌序列;通过四维Lorenz映射根据第三混沌序列进行运算得到第四混沌序列,并对第四混沌序列进行向下取整运算得到加密密码;通过加密密码对灰度图像分别进行前向扩散,再通过三维Baker映射对扩散后的灰度图像进行置乱,然后通过加密密码对置乱后的灰度图像进行后向扩散得到密文图像。本发明提供的算法能够全面抵抗各类攻击,且性能优越,鲁棒性强,有着较高的实用价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明提供的一种彩色图片加密方法的一个实施例的流程示意图;
图2为本发明提供的一种彩色图片加密装置的一个实施例的结构示意图;
图3为三维Baker映射的示意图。
具体实施方式
本发明实施例提供了一种彩色图片加密方法及装置,能够全面抵抗各类攻击。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明提供的一种彩色图片加密方法的一个实施例。
本发明将用到Henon映射、二维Logistic映射、三维Baker映射和四维Lorenz映射。
Henon映射是一个典型的可逆的二维映射,易于实现且行为轨迹复杂,其定义为公式(1)所示:
其中,该映射由两个参数α,β来控制。当α∈(0.54,2)和β∈(0,1)时,Henon映射表现出混沌的特性;取α=1.4,β=0.3,则Henon映射的两个Lyapunov指数分别为:λ1=0.6348,λ2=-1.8388,此时该映射处于稳定的混沌状态。
二维Logistic映射通过在一维Logistic映射中添加耦合项来增大密钥空间,也加强该混沌映射的遍历性和随机性,同时二维Logistic映射又具有多个参数、行为高度复杂的特点,其定义为公式(2)所示:
其中,μ,λ1,λ2,γ为***的控制参数。当μ=4.0,γ=0.1,λ1=0.89,λ2=0.89时,二维Logistic映射表现出稳定的混沌特性;此时,二维Logistic的最大Lyapunov指数为λ1=0.11。
相比较于二维Baker映射,三维Baker映射的密钥空间大,而且都适用于任意尺寸的图像,适合于实时图像加密。不失一般性,假设有一个立方体,它的长、宽、高为W×H×L,并且要将它分割成k×t块:即沿着x轴方向分割成k块,每一块的长度(长度不一定均等)各自为w1,w2,...,wk,则Wi=w1+w2+…+wi,i=1,2...k,且W0=0,因此W=w1+w2+…+wk;同样的,沿着y轴方向分割成t块,每一块的长度(长度不一定均等)各自为h1,h2,...,ht,则Hi=h1+h2+…+hi,j=1,2…t,且H0=0,因此H=h1+h2+…+ht。分割成功以后,将每一块小的立方体进行压缩和拉伸,使其变成一个长、宽、高分别为W,H,所以其定义为公式(3)和(4)所示:
S=(Hj-1×W+Wi-1)×L+wi×hj×l+(n-Hj-1)×wi+(m-Wi-1) (3)
其中,k,t是三维baker映射的控制参数,控制三维模型的分割大小。另外,三维Baker映射有3个Lyapunov指数,依次为:λ1=0.6931,λ2=0.6931,λ3=-1.3863。该映射有两个大于0的Lyapunov指数,该动力方程***是超混沌的。另一方面,(m,n,l)是旧立方体的任意一点,该点通过三维Baker映射来映射到新立方体的一点(m′,n′,l′),如图3所示。
四维Lorenz映射是一个典型的高维度映射,不仅有着更复杂的行为轨迹,生成序列的随机特性更加高,其定义为公式(5)所示。
其中,[x,y,z,w]T是状态变量,a,b,c,r是控制参数。当a=10,b=8/3,c=28,-1.52≤r≤-0.06时,该***处于超混沌态;当r=-1时,公式(5)有4个Lyapunov指数,依次为:λ1=0.3381,λ2=0.1586,λ3=0,λ4=-15.1752。上述四个Lyapunov指数已经表明了该***是一个超混沌***。
在本实施例中,需要说明的是,设P表示输入的彩色明文图像(以下简称明文图像),大小为3×M×N(即像素点总个数),其中M为行,N为列,3代表明文图像中的三个颜色分量,即R、G、B三个灰度图像。每个图像的灰度等级为8位,即每个像素点取值范围为[0,255]。密钥用K表示,K={xH0,yH0,xL0,yL0,r1,r2,u},其中,xH0和yH0是二维Henon映射的初始值,xL0和yL0是二维Logistic映射的初始值,r1和r2是2个随机整数(随机值),取值区间为[0,255],u是表示从明文图像中一个分量(如其中一个灰度图像)选择的像素点个数,即灰度图像像素点选择个数,取值范围为
本实施例包括:
100、获取到明文图像的四种灰度图像,分别对每个灰度图像按从左到右再从上到下的顺序进行展开得到每个灰度图像的一维向量;
其中,四种灰度图像为R灰度图像、G灰度图像、B灰度图像和Gray灰度图像。
101、获取到明文图像的四种灰度图像对应的四个一维向量,将四个一维向量生成二维矩阵;
本发明使用rgb2gray()函数,将明文图像转为灰度图像,记为Gray。
将明文图像中的R灰度图像按从左到右再从上到下的顺序展开成为一维向量,记为PR,PR={PRi|i=1,2,…,M×N};同样的,将明文图像中的G灰度图像和B灰度图像以及Gray灰度图像展开为一维向量,分别记为PG,PB和PGray,{PGi,PBi,PGaryi|i=1,2,…,M×N}。从而得到一个4×MN大小的二维矩阵,记为PI,PI={PIi,j|i=1,…,4,j=1,…,M×N},其中从第一行到第四行所对应的灰度图像为:R,G,B,Gray。
102、将获取到的初始密钥进行迭代运算得到第一混沌序列和第二混沌序列,迭代运算包含二维Henon映射和二维Logistic映射;
将密钥K的{xH0,yH0,xL0,yL0}和参数值{α=1.4,β=0.3,μ=4.0,λ1=0.89,λ2=0.89,γ=0.1}作为Henon映射和二维Logistic映射的初始值和参数。
首先,对二维Henon映射的两个初始值、二维Logistic映射的两个初始值进行第一次迭代运算,即迭代式(1)和式(2)r1+r2+1000次,跳过Henon映射和二维Logistic映射的过度态。
再对第一次迭代运算最后一次迭代得到的值进行第二次迭代运算,得到第一混沌序列。即在上一次迭代运算的基础上,继续迭代u次,得到4个长度为u的第一混沌序列,分别记为ua,ub,uc,ud,{uai,ubi,uci,udi|i=1,2,…,u}。然后通过公式(6)将该第一混沌序列整数化后得到4个一维向量,分别记为ux,uy,uz,uw,即{uxi,uyi,uzi,uwi|i=1,2,…,u}。
最后,对第二次迭代运算最后一次迭代得到值进行第三次迭代运算,得到第二混沌序列。即在第二次迭代运算的基础上,继续迭代M×N次,得到4个长度为M×N的状态序列(第二混沌序列),分别记为sx,sy,sz,sw,{sxi,syi,szi,swi|i=1,2,…,M×N}。
uxi=floor((uai*100-floor(uai*100))×107)mod(M×N)
uyi=floor((ubi*100-floor(ubi*100))×107)mod(M×N)
uzi=floor((uci*100-floor(uci*100))×107)mod(M×N)
uwi=floor((udi*100-floor(udi*100))×107)mod(M×N) (6)
103、通过第一混沌序列随机提取二维矩阵的像素点,根据提取得到的像素点与第二混沌序列进行运算得到第三混沌序列;
通过以下公式结合步骤101得到的二维矩阵将序列ux,uy,uz,uw生成一个大小为4×u的矩阵PU,用于记录被选择的像素点集合。
PU(1,i)=PI(1,ux(i))
PU(2,i)=PI(2,uy(i))
PU(3,i)=PI(3,uz(i))
PU(4,I)=PI(4,uw(i)) (7)
上式中,i=1,2,…,u。
然后通过式(8)分别计算出序列sx每一个元素对应明文像素点集合的和值,得到一个大小为M×N的一维向量,记为px,px={pxi|i=1,2,…,M×N}。
pxi=sum(PU(1,1to i))i∈[1,u-1]
pxi=sum(PU(1,1to i))i∈[u,MN-u+1]
pxi=sum(PU(1,u-(MN-i+1)+1 to i))i∈[MN-u+2,MN] (8)
重复以上步骤三次,分别计算出序列sy,sz,sw对应的一维向量py,pz,pw,{pyi,pzi,pwi|i=1,2,…,M×N},即得到第三混沌序列。
再根据以下公式将序列sx,sy,sz,sw和px,py,pz,pw进行加法和取模运算。
104、通过四维Lorenz映射根据第三混沌序列进行运算得到第四混沌序列,并对第四混沌序列进行向下取整运算得到加密密码;
步骤104的过程如下:
A.通过预置第一公式组,即式(9)对第三混沌序列依次进行第一取模运算,依次生成序列psx,psy,psz,psw,{psxi,psyi,pszi,pswi|i=1,2,…,M×N}。
psxi=(pxi+sxi)mod 1
psyi=(pyi+syi)mod 1
pszi=(pzi+szi)mod 1
pswi=(pwi+swi)mod 1 (9)
式中,sx,sy,sz,sw为第二混沌序列,px,py,pz,pw为第三混沌序列,i=1,2,…,M×N,M×N为单个灰度图像的总像素点个数,M为行数,N为列数;
B.再通过预置第二公式组对psx,psy,psz,psw进行第二取模运算,从而得到用于超混沌***Lorenz初始值的4个序列,分别记为x0,y0,z0,w0,其中,{x0i,y0i,z0i,w0i|i=1,2,…,M×N}
x0i=((((psxi+psyi+3)×(pszi+pswi+3))×80)mod 80)-40
y0i=((((psxi+psyi+3)×(pszi-pswi+3))×80)mod 80)-40
z0i=(((psxi-psyi+3)×(pszi+pswi+3))mod 80)+1
w0i=((((psxi+psyi+3)×(pszi+pswi+3))×500)mod 500)-250 (10)
式中,psx,psy,psz,psw为第一取模运算后的第三混沌序列,i=1,2,…,M×N。
这里,“+3”是为了将负的状态值psx,psy,psz,psw转化为正数。同时Lorenz映射的初值x0i,y0i,z0i,w0i的取值范围依次为(-40,40),(-40,40),(1,81)和(-250,250),所以需要“mod”。
C.通过四维Lorenz映射对x0,y0,z0,w0进行运算得到第四混沌序列。即将Lorenz映射初值{x0i,y0i,z0i,w0i|i=1,…,MN}和参数{a=10,b=8/3,c=28,r=-1}代入到式(5),迭代步长为0.002,迭代次数为M×N,得到4个长度均为M×N的一维向量xi,yi,zi,wi,即第四混沌序列,{xi,yi,zi,wi|i=1,2,…,MN}。
D.通过下列公式(11)将xi,yi,zi,wi生成6个大小为M×N的矩阵X,Y,Z,W,U,V。
式中,x(m-1)×N+n∈xi,y(m-1)×N+n∈yi,z(m-1)×N+n∈zi,w(m-1)×N+n∈wi,xi,yi,zi,wi为第四混沌序列,i=1,2,…,M×N,m=1,2,…,M,n=1,2,…,N,M×N为单个灰度图像的总像素点个数,M为行数,N为列数。i=1,2,…,M,j=1,2,…,N,floor(g)返回小于等于g的最大整数,“+500”用于将负状态值转化为整数。
通过上述步骤得到的矩阵X,Y,Z,W,U,V是伪随机矩阵,即六个加密密码,用于置乱算法和扩散算法中。
105、通过加密密码对灰度图像分别进行前向扩散,再通过三维Baker映射对扩散后的灰度图像进行置乱,然后通过加密密码对置乱后的灰度图像进行后向扩散得到密文图像。
获取明文图像的三种灰度图像,三种灰度图像包括R灰度图像、G灰度图像和B灰度图像。
然后执行前向扩散:通过预置第四公式组根据第一密码对R灰度图像进行前向扩散,通过预置第五公式组根据第二密码对G灰度图像进行前向扩散,预置第六公式组根据第三密码对B灰度图像进行前向扩散;
其中,预置第四公式组为:
A(1,1,1)=(P(1,1,1)+X(1,1)+r1)mod 256
A(1,n,1)=(P(1,n,1)+A(1,n-1,1)+X(1,n))mod 256
A(m,1,1)=(P(m,1,1)+A(m-1,1,1)+X(m,1))mod 256
A(m,n,1)=(P(m,n,1)+A(m-1,n,1)+A(m,n-1,1)+X(m,n))mod 256
式中,m=1,2,…,M,n=1,2,…,N,P(m,n,1)为R灰度图像第m行第n列个像素点,A(m,n,1)为前向扩散后的R灰度图像第m行第n列个像素点,r1为随机整数且r1∈[0,255];
预置第五公式组为:
A(1,1,2)=(P(1,1,2)+A(M,N,1)+Y(1,1)+r1)mod 256
A(1,n,2)=(P(1,n,2)+A(1,n-1,2)+Y(1,n))mod 256
A(m,1,2)=(P(m,1,2)+A(m-1,1,2)+Y(m,1))mod 256
A(m,n,2)=(P(m,n,2)+A(m-1,n,2)+A(m,n-1,2)+Y(m,n))mod 256
式中,m=1,2,…,M,n=1,2,…,N,P(m,n,2)为G灰度图像第m行第n列个像素点,A(m,n,2)为前向扩散后的G灰度图像第m行第n列个像素点,r1为随机整数且r1∈[0,255];
预置第六公式组为:
A(1,1,3)=(P(1,1,3)+A(M,N,2)+Z(1,1)+r1)mod 256
A(1,n,3)=(P(1,n,3)+A(1,n-1,3)+Z(n,j))mod 256
A(m,1,3)=(P(m,1,3)+A(m-1,1,3)+Z(m,1))mod 256
A(m,n,3)=(P(m,n,3)+A(m-1,n,3)+A(m,n-1,3)+Z(m,n))mod 256
式中,m=1,2,…,M,n=1,2,…,N,P(m,n,3)为B灰度图像第m行第n列个像素点,A(m,n,3)为前向扩散后的B灰度图像第m行第n列个像素点,r1为随机整数且r1∈[0,255]。
在上述前置扩散的过程中,G灰度图像的第一个元素P(1,1,2)加密时,加入了R灰度图像的最后一个密文元素A(M,N,1),这使得R灰度图像的明文像素点的信息扩散到G灰度图像的密文中。同理,在R和G灰度图像的信息也扩散到B灰度图像的密文中,保持了明文的三个图像之间的关系和整体性,这有利于增强抵抗明文攻击的能力。
执行完前向扩散后,再执行置乱:通过三维Baker映射根据第一密码和第六密码对扩散后的R灰度图像、G灰度图像和B灰度图像进行置乱。
置乱的具体过程为:
(a)将前述得到的三维数组A的每一个点的坐标代入到该公式(3),计算出每一个{Sm,n,l}的值,然后通过下列公式(12),得出新的{S′m,n,l}。
S′m,n,l=floor(Sm,n,l×108)+((X(m,n)+W(m,n))mod u) (12)
这里,m=1,2,…,k;n=1,2,…,t;l=1,2,3。
(b)将S′m,n,l代入Baker映射的公式(4),从而计算出三维数组A的每一个像素点的新坐标(m′,n′,l′),然后将交换两个坐标的像素点的值。
上述步骤中,(a)和(b)共需要循环WB×HB×LB次,才完成整个图像的置乱;然后将A赋值给B,则B是已经置乱好的三维数组(图像)。
执行完置乱后,最后执行后向扩散:通过预置第七公式组根据第六密码对置乱后的B灰度图像进行后向扩散,通过预置第八公式组根据第五密码对置乱后的G灰度图像进行后向扩散,预置第九公式组根据第四密码对置乱后的R灰度图像进行后向扩散,得到密文图像;
其中,预置第七公式组为:
式中,m=1,2,…,M,n=1,2,…,N,B(m,n,3)为置乱后的B灰度图像,r2为随机整数且r2∈[0,255];
预置第八公式组为:
式中,m=1,2,…,M,n=1,2,…,N,B(m,n,2)为置乱后的G灰度图像,r2为随机整数且r2∈[0,255];
预置第九公式组为:
式中,m=1,2,…,M,n=1,2,…,N,B(m,n,1)为置乱后的R灰度图像,r2为随机整数且r2∈[0,255]。
将加密过程得到的三维数组D赋值到数组C中,则C为加密后的密文图像。
图像解密算法是图像加密算法的逆过程,其可分为三个部分:①后向扩散;②置乱;③前向扩散。具体的解密步骤如下。
通过后向扩散将密文C(噪声图像)转化为三维数组B,共三个步骤,首先执行的是“后向扩散”。
Step 1.根据公式(16)将C(i,j,3)转换为B2(i,j,3)。
B2(M,N,3)=(512+C(M,N,3)-V(M,N)-r2)mod 256
B2(M,j,3)=(512+C(M,j,3)-C(M,j+1,3)-V(M,j))mod 256
B2(i,N,3)=(512+C(i,N,3)-C(i+1,N,3)-V(i,N))mod 256
B2(i,j,3)=(768+C(i,j,3)-C(i+1,j,3)-C(i,j+1,3)-V(i,j))mod 256 (16)
这里,i=M,M-1,…,2,1,j=N,N-1,…,2,1
Step 2.根据公式(17)将C(i,j,2)转换为B2(i,j,2)。
B2(M,N,2)=(768+C(M,N,2)-C(1,1,3)-U(M,N)-r2)mod 256
B2(M,j,2)=(512+C(M,j,2)-C(M,j+1,2)-U(M,j))mod 256
B2(i,N,2)=(512+C(i,N,2)-C(i+1,N,2)-U(i,N))mod 256
B2(i,j,2)=(768+C(i,j,2)-C(i+1,j,2)-C(i,j+1,2)-U(i,j))mod 256 (17)
这里,i=M,M-1,…,2,1,j=N,N-1,…,2,1
Step 3.根据公式(18)将C(i,j,1)转换为B2(i,j,1)。
B2(M,N,1)=(768+C(M,N,1)-C(1,1,2)-W(M,N)-r2)mod 256
B2(M,j,1)=(512+C(M,j,1)-C(M,j+1,1)-W(M,j))mod 256
B2(i,N,1)=(512+C(i,N,1)-C(i+1,N,1)-W(i,N))mod 256
B2(i,j,1)=(768+C(i,j,1)-C(i+1,j,1)-C(i,j+1,1)-W(i,j))mod 256 (18)
这里,i=M,M-1,…,2,1,j=N,N-1,…,2,1
使用置乱算法的逆过程将三维数组B2变换成三维数组A2,共三个步骤。
Step 4.获取三维数组B2的长度、宽度和高度,分别记为WB,HB,LB;然后令k=WB和t=HB,然后按每一块长度为宽度为对图像P进行分割。接着将参数{k,t,wi,hj}和初始值{m,n,l|m=k,k-1,…,2,1;n=t,t-1,…,2,1;l=3,2,1}代入Baker映射的公式(3)中,即可得到S={Sm,n,l|m=k,k-1,…,2,1;n=t,t-1,…,2,1;l=3,2,1}的值。这里m,n,l均代表图像像素点的坐标。
Step 5.根据Step 4,对将三维数组B2的每一个点的坐标计算出相应的每一个{Sm,n,l}的值,然后通过下列公式(19),得出新的{S′m,n,l}。
S′m,n,l=floor(Sm,n,l×108)+((X(m,n)+W(m,n))mod u) (19)
这里,m=k,k-1,…,2,1;n=t,t-1,…,2,1;l=3,2,1。
Step6.将新的{S′m,n,l}代入Baker映射的公式(4),从而计算出三维数组B的每一个像素点的新坐标(m′,n′,l′),然后将交换两个坐标的像素点的值,此时两个像素点的值还原成功。
上述步骤中,Step5和Step6共需要循环WB×HB×LB次,才能将已置乱图像还原成功。循环结束后,将B2赋值给A2。
接下来,通前向扩散将三维数组A2转化为三维数组D2,共三个步骤。
Step7.根据公式(20)将A2(i,j,1)转化为D2(i,j,1)
Step 8.根据公式(21)将A2(i,j,2)转化为D2(i,j,2)
D2(1,1,2)=(768+A2(1,1,2)-A2(M,N,1)-Y(1,1)-r1)mod 256
D2(1,j,2)=(512+A2(1,j,2)-A2(1,j-1,2)-Y(1,j))mod 256
D2(i,1,2)=(512+A2(i,1,2)-A2(i-1,1,2)-Y(i,1))mod 256
D2(i,j,2)=(768+A2(i,j,2)-A2(i-1,j,2)-A2(i,j-1,2)-Y(i,j))mod 256(21)
Step 9.根据公式(22)将A2(i,j,3)转化为D2(i,j,3)
D2(1,1,3)=(768+A2(1,1,3)-A2(M,N,2)-Z(1,1)-r1)mod 256
D2(1,j,3)=(512+A2(1,j,3)-A2(1,j-1,3)-Z(1,j))mod 256
D2(i,1,3)=(512+A2(i,1,3)-A2(i-1,1,3)-Z(i,1))mod 256
D2(i,j,3)=(768+A2(i,j,3)-A2(i-1,j,3)-A2(i,j-1,3)-Z(i,j))mod 256(22)
将经过Step 1~Step 9得到的三维数组D2赋值到三维数组P2中,则P2为解密后的明文图像。
本发明实施例提出的多混沌彩色图像加密算法的密钥与明文相关,且利用两级密钥体系和改进过的运算方式来产生伪随机序列;另外,该算法使用混沌映射直接置乱图像,对于不同的灰度图像还加入相应的密文图像的像素点进行扩散加密。该算法使用的混沌映射都是高维度映射(超混沌映射),且加密体系结构为“前向扩散—置乱—后向扩散”。实验结果和理论分析表明了该算法有较快的加密速度,密钥空间比较大,且加密后图像的直方图由跌宕起伏变为近似均匀分布,相关性系数也从接近于1下降到近似于0,密钥敏感性和明文敏感性比较强,信息熵和雪崩效应都非常接近理论值;同时密文图像受到噪声和剪切攻击,能还原出较好的原文图像,明显看出图像的信息。综上所述,本文的算法性能优越,且鲁棒性强,有着较高的实用价值。
以下通过一个具体实例进行说明:
选取一个大小为512×512×3,格式为tif的彩色Lena图像进行实验,初始密钥为K={xH0,yH0,xL0,yL0,r1,r2,u}。
其中初始值为xH0=0.63135448,yH0=0.18940634,xL0=0.10,yL0=0.11,r1=69,r2=138,u=16。图像置乱需要分块时,设长和宽的分块数量为512,即与图像的尺寸一致,每一块的长和宽均为所以混沌映射的***参数为:
α=1.4,β=0.3,μ=4.0,γ=0.1,λ1=0.89,λ2=0.89,k=512,t=512,
第一步:使用rgb2gray()函数,将大小为512×512×3的彩色图像Lena转为灰度图像,记为Gray。然后,将图像Lena中的R灰度图像按从左到右再从上到下的顺序展开成为一维向量,记为PR,PR={PRi|i=1,2,…,512×512};同样的,将明文图像中的G灰度图像和B灰度图像以及Gray灰度图像展开为一维向量,分别记为PG,PB和PGray,{PGi,PBi,PGaryi|i=1,2,…,512×512}。从而得到一个4×512×512大小的二维矩阵,记为PI,PI={PIi,j|i=1,…,4,j=1,…,512×512},其中从第一行到第四行所对应的灰度图像为:R,G,B,Gray。
第二步:将Henon映射和二维Logistic映射的初始值和参数xH0=0.63135448,yH0=0.18940634xL0=0.10,yL0=0.11α=1.4,β=0.3,μ=4.0,γ=0.1,λ1=0.89,λ2=0.89代入公式(23)和(24)来迭代10207次跳过Henon映射和二维Logistic映射的过度态,再迭代16次,得到4个长度为16的伪随机状态值序列,分别记为ua,ub,uc,ud,{uai,ubi,uci,udi|i=1,2,…,u};然后通过公式(25)将序列整数化然后得到4个一维向量,分别记为ux,uy,uz,uw,即{uxi,uyi,uzi,uwi|i=1,2,…,16}。最后,继续迭代262144次,得到4个长度为262144的状态序列,分别记为sx,sy,sz,sw,{sxi,syi,szi,swi|i=1,2,…,262144}。公式(23)和(24)如下示
uxi=floor((uai*100-floor(uai*100))×107)mod(M×N)
uyi=floor((ubi*100-floor(ubi*100))×107)mod(M×N)
uzi=floor((uci*100-floor(uci*100))×107)mod(M×N)
uwi=floor((udi*100-floor(udi*100))×107)mod(M×N) (25)
第三步:通过公式(26)将序列ux,uy,uz,uw作为下标,随机选择明文像素点,组合生成一个大小为4×16的矩阵PU,用于记录被选择的像素点集合。
PU(1,i)=PI(1,ux(i))
PU(2,i)=PI(2,uy(i))
PU(3,i)=PI(3,uz(i))
PU(4,I)=PI(4,uw(i)) (26)
这里,i=1,2,…,16。
第四步:借助以下的公式(27)分别计算出序列sx每一个元素对应明文像素点集合的和值,得到一个大小为M×N的一维向量,记为px,px={pxi|i=1,2,…,M×N}。
pxi=sum(PU(1,1to i))i∈[1,u-1]
pxi=sum(PU(1,1to i))i∈[u,MN-u+1]
pxi=sum(PU(1,u-(MN-i+1)+1 to i))i∈[MN-u+2,MN] (27)
第五步:重复Step5三次,分别计算出序列sy,sz,sw对应的一维向量py,pz,pw,{pyi,pzi,pwi|i=1,…,M×N}。
第六步:根据以下公式(28)将序列sx,sy,sz,sw和px,py,pz,pw进行加法和取模运算,依次生成明文关联的伪随机序psx,psy,psz,psw,{psxi,psyi,pszi,pswi|i=1,2,…,M×N}。
psxi=(pxi+sxi)mod 1
psyi=(pyi+syi)mod 1
pszi=(pzi+szi)mod 1
pswi=(pwi+swi)mod 1 (28)
第七步:借助以下公式(29)序列psx,psy,psz,psw之间互相进行加法(或减法)、乘法和取模运算,从而得到用于超混沌***Lorenz初始值的4个序列,分别记为x0,y0,z0,w0,其中。{x0i,y0i,z0i,w0i|i=1,2,…,M×N}
x0i=((((psxi+psyi+3)×(pszi+pswi+3))×80)mod 80)-40
y0i=((((psxi+psyi+3)×(pszi-pswi+3))×80)mod 80)-40
z0i=(((psxi-psyi+3)×(pszi+pswi+3))mod 80)+1
w0i=((((psxi+psyi+3)×(pszi+pswi+3))×500)mod 500)-250 (29)
第八步:将Lorenz映射初值{x0i,y0i,z0i,w0i|i=1,…,MN}和参数{a=10,b=8/3,c=28,r=-1}代入到式(30),迭代步长为0.002,迭代次数为M×N,得到4个长度均为M×N的一维向量xi,yi,zi,wi,{xi,yi,zi,wi|i=1,2,…,MN}。然后通过下列公式(31)将xi,yi,zi,wi生成6个大小为M×N的矩阵X,Y,Z,W,U,V。
X(i,j)=(floor(((x(i-1)×N+j+500)mod 1)×1013)mod M)+1
Y(i,j)=(floor(((y(i-1)×N+j+500)mod 1)×1013)mod N)+1
Z(i,j)=(floor(((z(i-1)×N+j+500)mod 1)×1013)mod M)+1
W(i,j)=(floor(((w(i-1)×N+j+500)mod 1)×1013)mod N)+1
U(i,j)=(floor(((x(i-1)×N+j+y(i-1)×N+j+500)mod 1)×1013)mod M)+1
V(i,j)=(floor(((z(i-1)×N+j+w(i-1)×N+j+500)mod 1)×1013)mod N)+1 (31)
这里,i=1,2,…,M,j=1,2,…,N。
通过上述步骤得到的矩阵X,Y,Z,W,U,V是伪随机矩阵,即加密密码,用于置乱算法和扩散算法中。
第九步:根据公式(32)、(33)和(34)将P(i,j,1)、P(i,j,2)、P(i,j,3)转换为A(i,j,1)、A(i,j,2)、A(i,j,3),即对明文图像中的R、G、B灰度图像进行加密,操作完成后得到了三维数组A。
A(1,1,1)=(P(1,1,1)+X(1,1)+r1)mod 256
A(1,j,1)=(P(1,j,1)+A(1,j-1,1)+X(1,j))mod 256
A(i,1,1)=(P(i,1,1)+A(i-1,1,1)+X(i,1))mod 256
A(i,j,1)=(P(i,j,1)+A(i-1,j,1)+A(i,j-1,1)+X(i,j))mod 256 (32)
A(1,1,2)=(P(1,1,2)+A(M,N,1)+Y(1,1)+r1)mod 256
A(1,j,2)=(P(1,j,2)+A(1,j-1,2)+Y(1,j))mod 256
A(i,1,2)=(P(i,1,2)+A(i-1,1,2)+Y(i,1))mod 256
A(i,j,2)=(P(i,j,2)+A(i-1,j,2)+A(i,j-1,2)+Y(i,j))mod 256 (33)
A(1,1,3)=(P(1,1,3)+A(M,N,2)+Z(1,1)+r1)mod 256
A(1,j,3)=(P(1,j,3)+A(1,j-1,3)+Z(1,j))mod 256
A(i,1,3)=(P(i,1,3)+A(i-1,1,3)+Z(i,1))mod 256
A(i,j,3)=(P(i,j,3)+A(i-1,j,3)+A(i,j-1,3)+Z(i,j))mod 256 (34)
这里,i=1,2,…,M,j=1,2,…,N。
第十步:因为k=512,t=512,将上述参数值代入公式(35)和(36)中,在代入图像中每一个像素点的坐标(m,n,l),就能得到明文图像的每一个像素点对应的新坐标(m′,n′,l′)。置乱结束后,得到三维数组B
S(m,n,l)=(Hj-1×W+Wi-1)×L+wi×hj×l+(n-Hj-1)×wi+(m-Wi-1)
S=floor(Sm,n,l×108)+((X(m,n)+W(m,n))mod u) (35)
第十一步:根据公式(37)、(38)和(39)将B(i,j,3)、B(i,j,2)、B(i,j,1)转换为D(i,j,3)、D(i,j,2)、D(i,j,1),即对明文图像中的B、G、R灰度图像进行加密,操作完成后得到三维数组D。
D(M,N,3)=(B(M,N,3)+V(M,N)+r2)mod 256
D(M,j,3)=(B(M,j,3)+D(M,j+1,3)+V(M,j))mod 256
D(i,N,3)=(B(i,N,3)+D(i+1,N,3)+V(i,N))mod 256
D(i,j,3)=(B(i,j,3)+D(i+1,j,3)+D(i,j+1,3)+V(i,j))mod 256 (37)
D(M,N,2)=(B(M,N,2)+D(1,1,3)+U(M,N)+r2)mod 256
D(M,j,2)=(B(M,j,2)+D(M,j+1,2)+U(M,j))mod 256
D(i,N,2)=(B(i,N,2)+D(i+1,N,2)+U(i,N))mod 256
D(i,j,2)=(B(i,j,2)+D(i+1,j,2)+D(i,j+1,2)+U(i,j))mod 256 (38)
D(M,N,1)=(B(M,N,1)+D(1,1,2)+W(M,N)+r2)mod 256
D(M,j,1)=(B(M,j,1)+D(M,j+1,1)+W(M,j))mod 256
D(i,N,1)=(B(i,N,1)+D(i+1,N,1)+W(i,N))mod 256
D(i,j,1)=(B(i,j,1)+D(i+1,j,1)+D(i,j+1,1)+W(i,j))mod 256 (39)
这里,i=1,2,…,M,j=1,2,…,N。
将得到的三维数组D赋值到三维数组C中,即C为加密完成后的密文图像。
请参阅图2,本发明提供的一种彩色图片加密装置的一个实施例,包括:
存储器201,用于存储指令;
处理器202,耦合到存储器201,处理器202被配置为基于存储器201存储的指令执行实现如以上所述的彩色图片加密方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种彩色图片加密方法,其特征在于,包括:
获取到明文图像的四种灰度图像对应的四个一维向量,将四个所述一维向量生成二维矩阵;
将获取到的初始密钥进行迭代运算得到第一混沌序列和第二混沌序列,所述迭代运算包含二维Henon映射和二维Logistic映射;
通过所述第一混沌序列随机提取所述二维矩阵的像素点,根据提取得到的所述像素点与所述第二混沌序列进行运算得到第三混沌序列;
通过四维Lorenz映射根据所述第三混沌序列进行运算得到第四混沌序列,并对所述第四混沌序列进行向下取整运算得到加密密码;
通过所述加密密码对所述灰度图像分别进行前向扩散,再通过三维Baker映射对扩散后的灰度图像进行置乱,然后通过所述加密密码对置乱后的灰度图像进行后向扩散得到密文图像;
所述对所述第四混沌序列进行向下取整运算得到加密密码具体为:
通过预置第三公式组对所述第四混沌序列进行向下取整运算得到六个加密密码,所述六个加密密码为第一密码、第二密码、第三密码、第四密码、第五密码和第六密码;
其中,所述预置第三公式组为:
X(m,n)=(floor(((x(m-1)×N+n+500)mod1)×1013)modM)+1
Y(m,n)=(floor(((y(m-1)×N+n+500)mod1)×1013)modN)+1
Z(m,n)=(floor(((z(m-1)×N+n+500)mod1)×1013)modM)+1
W(m,n)=(floor(((w(m-1)×N+n+500)mod1)×1013)modN)+1
U(m,n)=(floor(((x(m-1)×N+n+y(m-1)×N+n+500)mod1)×1013)modM)+1
V(m,n)=(floor(((z(m-1)×N+n+w(m-1)×N+n+500)mod1)×1013)modN)+1
式中,x(m-1)×N+n∈xi,y(m-1)×N+n∈yi,z(m-1)×N+n∈zi,w(m-1)×N+n∈wi,xi,yi,zi,wi为第四混沌序列,i=1,2,…,M×N,m=1,2,…,M,n=1,2,…,N,M×N为单个灰度图像的总像素点个数,M为行数,N为列数;
所述通过所述加密密码对所述灰度图像分别进行前向扩散具体包括:
获取所述明文图像的三种所述灰度图像,三种所述灰度图像包括R灰度图像、G灰度图像和B灰度图像;
通过预置第四公式组根据所述第一密码对R灰度图像进行前向扩散,通过预置第五公式组根据所述第二密码对G灰度图像进行前向扩散,预置第六公式组根据所述第三密码对B灰度图像进行前向扩散;
其中,所述预置第四公式组为:
A(1,1,1)=(P(1,1,1)+X(1,1)+r1)mod256
A(1,n,1)=(P(1,n,1)+A(1,n-1,1)+X(1,n))mod256
A(m,1,1)=(P(m,1,1)+A(m-1,1,1)+X(m,1))mod256
A(m,n,1)=(P(m,n,1)+A(m-1,n,1)+A(m,n-1,1)+X(m,n))mod256
式中,m=1,2,…,M,n=1,2,…,N,P(m,n,1)为R灰度图像第m行第n列个像素点,A(m,n,1)为前向扩散后的R灰度图像第m行第n列个像素点,r1为随机整数且r1∈[0,255];
所述预置第五公式组为:
A(1,1,2)=(P(1,1,2)+A(M,N,1)+Y(1,1)+r1)mod256
A(1,n,2)=(P(1,n,2)+A(1,n-1,2)+Y(1,n))mod256
A(m,1,2)=(P(m,1,2)+A(m-1,1,2)+Y(m,1))mod256
A(m,n,2)=(P(m,n,2)+A(m-1,n,2)+A(m,n-1,2)+Y(m,n))mod256
式中,m=1,2,…,M,n=1,2,…,N,P(m,n,2)为G灰度图像第m行第n列个像素点,A(m,n,2)为前向扩散后的G灰度图像第m行第n列个像素点,r1为随机整数且r1∈[0,255];
所述预置第六公式组为:
A(1,1,3)=(P(1,1,3)+A(M,N,2)+Z(1,1)+r1)mod256
A(1,n,3)=(P(1,n,3)+A(1,n-1,3)+Z(1,n))mod256
A(m,1,3)=(P(m,1,3)+A(m-1,1,3)+Z(m,1))mod256
A(m,n,3)=(P(m,n,3)+A(m-1,n,3)+A(m,n-1,3)+Z(m,n))mod256
式中,m=1,2,…,M,n=1,2,…,N,P(m,n,3)为B灰度图像第m行第n列个像素点,A(m,n,3)为前向扩散后的B灰度图像第m行第n列个像素点,r1为随机整数且r1∈[0,255];
所述再通过三维Baker映射对扩散后的灰度图像进行置乱具体为:
通过三维Baker映射根据所述第一密码和所述第六密码对扩散后的所述R灰度图像、所述G灰度图像和所述B灰度图像进行置乱;
所述然后通过所述加密密码对置乱后的灰度图像进行后向扩散得到密文图像具体为:
通过预置第七公式组根据所述第六密码对置乱后的所述B灰度图像进行后向扩散,通过预置第八公式组根据所述第五密码对置乱后的所述G灰度图像进行后向扩散,预置第九公式组根据所述第四密码对置乱后的所述R灰度图像进行后向扩散,得到密文图像;
其中,所述预置第七公式组为:
D(M,N,3)=(B(M,N,3)+V(M,N)+r2)mod256
D(M,n,3)=(B(M,n,3)+D(M,n+1,3)+V(M,n))mod256
D(m,N,3)=(B(m,N,3)+D(m+1,N,3)+V(m,N))mod256
D(m,n,3)=(B(m,n,3)+D(m+1,n,3)+D(m,n+1,3)+V(m,n))mod256
式中,m=1,2,…,M,n=1,2,…,N,B(m,n,3)为置乱后的B灰度图像,r2为随机整数且r2∈[0,255];
所述预置第八公式组为:
D(M,N,2)=(B(M,N,2)+D(1,1,3)+U(M,N)+r2)mod256
D(M,n,2)=(B(M,n,2)+D(M,n+1,2)+U(M,n))mod256
D(m,N,2)=(B(m,N,2)+D(m+1,N,2)+U(m,N))mod256
D(m,n,2)=(B(m,n,2)+D(m+1,n,2)+D(m,n+1,2)+U(m,n))mod256
式中,m=1,2,…,M,n=1,2,…,N,B(m,n,2)为置乱后的G灰度图像,r2为随机整数且r2∈[0,255];
所述预置第九公式组为:
D(M,N,1)=(B(M,N,1)+D(1,1,2)+W(M,N)+r2)mod256
D(M,n,1)=(B(M,n,1)+D(M,n+1,1)+W(M,n))mod256
D(m,N,1)=(B(m,N,1)+D(m+1,N,1)+W(m,N))mod256
D(m,n,1)=(B(m,n,1)+D(m+1,n,1)+D(m,n+1,1)+W(m,n))mod256
式中,m=1,2,…,M,n=1,2,…,N,B(m,n,1)为置乱后的R灰度图像,r2为随机整数且r2∈[0,255]。
2.根据权利要求1所述的彩色图片加密方法,其特征在于,所述获取到明文图像的四种灰度图像对应的四个一维向量,将四个所述一维向量生成二维矩阵之前还包括:
获取到明文图像的四种所述灰度图像,分别对每个灰度图像按从左到右再从上到下的顺序进行展开得到每个所述灰度图像的一维向量;
其中,四种所述灰度图像为R灰度图像、G灰度图像、B灰度图像和Gray灰度图像。
3.根据权利要求1所述的彩色图片加密方法,其特征在于,所述初始密钥由二维Henon映射的两个初始值、二维Logistic映射的两个初始值、两个随机值和灰度图像像素点选择个数依次组成。
4.根据权利要求3所述的彩色图片加密方法,其特征在于,所述将获取到的初始密钥进行迭代运算得到第一混沌序列和第二混沌序列具体包括:
对二维Henon映射的两个所述初始值、二维Logistic映射的两个所述初始值进行第一次所述迭代运算;
对第一次所述迭代运算最后一次迭代得到的值进行第二次所述迭代运算,得到第一混沌序列;
对第二次所述迭代运算最后一次迭代得到值进行第三次所述迭代运算,得到第二混沌序列;
其中,第一次所述迭代运算的迭代次数等于两个所述随机值与一千之和,第二次所述迭代运算的迭代次数等于灰度图像像素点选择个数,第三次所述迭代运算的迭代次数等于单个所述灰度图像的总像素点个数。
5.根据权利要求1所述的彩色图片加密方法,其特征在于,所述通过四维Lorenz映射根据所述第三混沌序列进行运算得到第四混沌序列具体包括:
通过预置第一公式组对所述第三混沌序列依次进行第一取模运算,再通过预置第二公式组对所述第一取模运算后的所述第三混沌序列进行第二取模运算;
通过四维Lorenz映射对第二取模运算后的所述第三混沌序列进行运算得到第四混沌序列;
其中,所述预置第一公式组为:
psxi=(pxi+sxi)mod1
psyi=(pyi+syi)mod1
pszi=(pzi+szi)mod1
pswi=(pwi+swi)mod1
式中,第二混沌序列sx,sy,sz,sw,记为{sxi,syi,szi,swi|i=1,2,…,M×N},第三混沌序列px,py,pz,pw,记为{pxi,pyi,pzi,pwi|i=1,2,…,M×N},i=1,2,…,M×N,M×N为单个灰度图像的总像素点个数,M为行数,N为列数;
所述预置第二公式组为:
x0i=((((psxi+psyi+3)×(pszi+pswi+3))×80)mod80)-40
y0i=((((psxi+psyi+3)×(pszi-pswi+3))×80)mod80)-40
z0i=(((psxi-psyi+3)×(pszi+pswi+3))mod80)+1
w0i=((((psxi+psyi+3)×(pszi+pswi+3))×500)mod500)-250
式中,第一取模运算后的第三混沌序列psx,psy,psz,psw,记为{psxi,psyi,pszi,pswi|i=1,2,…,M×N},i=1,2,…,M×N。
6.一种彩色图片加密装置,其特征在于,包括:
存储器,用于存储指令;
处理器,耦合到所述存储器,所述处理器被配置为基于所述存储器存储的指令执行实现如权利要求1至5任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810128976.5A CN108199828B (zh) | 2018-02-08 | 2018-02-08 | 一种彩色图片加密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810128976.5A CN108199828B (zh) | 2018-02-08 | 2018-02-08 | 一种彩色图片加密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108199828A CN108199828A (zh) | 2018-06-22 |
CN108199828B true CN108199828B (zh) | 2021-10-01 |
Family
ID=62593336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810128976.5A Active CN108199828B (zh) | 2018-02-08 | 2018-02-08 | 一种彩色图片加密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108199828B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145624B (zh) * | 2018-08-29 | 2021-10-19 | 广东工业大学 | 一种基于Hadoop平台的多混沌文本加密算法 |
CN111415288B (zh) * | 2019-01-08 | 2023-04-21 | 阿里巴巴集团控股有限公司 | 数字水印嵌入、检测方法和装置 |
CN111461952B (zh) * | 2020-03-30 | 2023-07-04 | 三维通信股份有限公司 | 图像加密方法、计算机设备和计算机可读存储介质 |
US11734435B2 (en) * | 2020-10-16 | 2023-08-22 | Qilu University Of Technology | Image encryption and decryption communication algorithm based on two-dimensional lag complex logistic map |
CN112258520B (zh) * | 2020-10-16 | 2022-03-29 | 齐鲁工业大学 | 基于二维滞后复Logistic映射的图像加解密通信方法 |
CN115314600B (zh) * | 2022-10-12 | 2023-01-24 | 山东沃尔美肥业有限公司 | 一种化肥生产监控数据管理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693523A (zh) * | 2012-05-09 | 2012-09-26 | 华南理工大学 | 一种基于双混沌***的图像二级加密方法 |
CN105118017A (zh) * | 2015-08-06 | 2015-12-02 | 河海大学 | 一种基于二维Henon映射的灰度图像加密方法 |
CN106296560A (zh) * | 2016-07-29 | 2017-01-04 | 广东工业大学 | 一种复合级联混沌的彩色图像加密算法 |
CN106530197A (zh) * | 2016-10-12 | 2017-03-22 | 广东工业大学 | 一种基于Kent映射和广义Gray码的图像加密方法 |
CN106558015A (zh) * | 2016-10-08 | 2017-04-05 | 广东工业大学 | 一种新的交叉复合混沌彩色图像加密算法 |
CN107610191A (zh) * | 2017-09-28 | 2018-01-19 | 广东工业大学 | 一种彩色图像加密方法及装置 |
-
2018
- 2018-02-08 CN CN201810128976.5A patent/CN108199828B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693523A (zh) * | 2012-05-09 | 2012-09-26 | 华南理工大学 | 一种基于双混沌***的图像二级加密方法 |
CN105118017A (zh) * | 2015-08-06 | 2015-12-02 | 河海大学 | 一种基于二维Henon映射的灰度图像加密方法 |
CN106296560A (zh) * | 2016-07-29 | 2017-01-04 | 广东工业大学 | 一种复合级联混沌的彩色图像加密算法 |
CN106558015A (zh) * | 2016-10-08 | 2017-04-05 | 广东工业大学 | 一种新的交叉复合混沌彩色图像加密算法 |
CN106530197A (zh) * | 2016-10-12 | 2017-03-22 | 广东工业大学 | 一种基于Kent映射和广义Gray码的图像加密方法 |
CN107610191A (zh) * | 2017-09-28 | 2018-01-19 | 广东工业大学 | 一种彩色图像加密方法及装置 |
Non-Patent Citations (3)
Title |
---|
RGB image encryption by using discrete log with and Lorenz"s chaotic function;Anal Paul等;《IEEE》;20130922;全文 * |
一种多混沌快速图像加密算法的设计与分析;王帅等;《计算机应用研究》;20140827;全文 * |
基于改进型Henon映射的图像加密算法;蒋诗意等;《杭州电子科技大学学报(自然科学版)》;20170915;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108199828A (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108199828B (zh) | 一种彩色图片加密方法及装置 | |
Xian et al. | Double parameters fractal sorting matrix and its application in image encryption | |
Wang et al. | A novel chaotic algorithm for image encryption utilizing one-time pad based on pixel level and DNA level | |
Patro et al. | A novel multi-dimensional multiple image encryption technique | |
CN110139000B (zh) | 基于压缩感知和生命游戏置乱的图像压缩加密方法 | |
Song et al. | Quantum video encryption based on qubit-planes controlled-XOR operations and improved logistic map | |
CN109800585B (zh) | 一种图像插值空间完全可逆可分离密文域信息隐藏算法 | |
Ye et al. | Spatial image encryption algorithm based on chaotic map and pixel frequency | |
CN111832035A (zh) | 一种图像的加密存储方法和装置 | |
CN109361830B (zh) | 一种基于明文的图像加密方法 | |
CN112351151B (zh) | 基于fcn的图像信息加密方法及装置 | |
CN115580687B (zh) | 基于变参数超混沌***与s形扩散的多图像加密方法 | |
Wen et al. | Triple-image bit-level encryption algorithm based on double cross 2D hyperchaotic map | |
CN110232284B (zh) | 一种图像加密方法及装置 | |
CN106127669B (zh) | 基于保面积Baker映射的混沌图像加密方法 | |
CN112116672A (zh) | 基于遗传算法的彩色图像保存缩略图加密算法 | |
CN114978466A (zh) | 类分形模型和希尔伯特同步置乱扩散的加密方法 | |
Das et al. | Diffusion and encryption of digital image using genetic algorithm | |
CN108174053B (zh) | 一种有向面积和扑克牌映射的解密区域限定图像加密方法 | |
Ma et al. | Fast quantum image encryption scheme based on multilayer short memory fractional order Lotka-Volterra system and dual-scale triangular map | |
Sun et al. | An image encryption algorithm utilizing Mandelbrot set | |
CN112887509A (zh) | 一种基于多混沌***的融合加密方法 | |
CN116305211A (zh) | 一种图像加密处理方法及装置 | |
Xie et al. | An image encryption algorithm based on novel block scrambling scheme and Josephus sequence generator | |
CN107133994B (zh) | 一种图像加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |