随着计算机网络和多媒体技术的迅速发展,数字图像的安全保障问题日益凸显。传统的图像置乱方法如Arnold变换,面包师变换,Standard映射,幻方变换,魔方变换等已不再安全。为此,我们提出了一种图像加密算法,利用新的二维映射进行图像位置置乱,同时采用一个更加安全的基于混沌映射的扩散函数,实现图像灰度置乱。该加密算法不仅适用于加密方形图像而且对矩形图像同样适用。
一、新二维映射原理与算法
1、 新二维映射原理
设图像A的大小为M@N,首先将图像分为左右两个部分,左边的图像块为M行,7N/2_列,右边的图像块则有M行,_N/28列(其中_X8表示不大于X的最大整数,7X_表示不小于X的最小整数)。对于图像块的每相邻两列,可以将一列元素依次插入到另一列的纵向相邻的两像素之间,反复该过程,依次连接各像素点,原始图像块将被拉伸成为一条直线。根据插入的角度不同,共有4种插入方法,如图所示:
举例说明:当图像为3@5时,采用插入方法(a)时,如下图所示,则依次将像素(3,1)插入像素(3,2)之后,像素(2,1)插入像素(2,2)和(3,2)之间,像素(1,1)插入像素(1,2)和(2,2)之间,重复这个过程,即按照下图的方式可将原图像拉伸成为一条直线:(3,1),(3,2),(2,1),(2,2),(1,1),(1,2),(3,3),(3,4),(2,3),,,其它3种插入方法和方法(a)类似。
从第一个图所示的4种插入方法中任选两种分别对原图像的左右两个图像块进行操作,这样原始图像块将被拉伸成为两条直线,依次将它们连接起来得到一条长为M@N直线,然后,再折叠成一个M@N的新图像,实现图像位置的置乱。根据左右两个图像块采用的插入方法的不同可以得到12种不同的组合方式,如图所示:
在实际的图像文件加密中,可以任意抽取其中的若干组合方式用于图像位置置乱。
2、新二维映射计算加密算法
(1)各插入方法的计算加密算法
由于映射是由4个插入方法任意组合形成的,分别给出各插入方法的算法如下:设图像大小为M@N,A(i,j)为图像中的任意一点像素值i=1,2,,M,j=1,2,,N,L(t),t=1,2,,,M@N为将A(i,j)拉伸后的一维向量。
A、方法(a)的算法:
如上图方法a所示,插入方法为(a)算法:
当j是奇数时,若j=N,
L(M@(j-1)+i)=A(i,j), (1)
若j<N,
L(M@(j-1)+2@(M-i)+1)=A(i,j), (2)
当j是偶数时,
L(M@(j-2)+2@(M-i+1))=A(i,j)。 (3)
B、方法(b)的算法:
当j是奇数时,若j=N,
L(M@(j-1)+i)=A(i,j), (4)
若j<N,
L(M@(j-1)+2@i-1)=A(i,j), (5)
当j是偶数时,
L(M@(j-2)+2@i)=A(i,j)。 (6)
C、 方法(c)的算法
可以通过下列过程得到:将原图A做一次镜像,如式(7)所示,Ac表示镜像后的图像,
Ac(i,j)=A(i,N-j+1), (7)
其中,i=1,2,,,M;j=1,2,,,N,然后通过算法(a)中式(1)~(3),可得到算法(c)。
D、方法(d)的算法
可以通过下列过程得到:将原图A如式(7)所述做一次镜像得到Ac通过算法(b)中(4)~(6)式,可得到方法(d)的算法。
(2)_新映射的计算算法
A、映射1算法
对B实行算法(a)得到长为M@D的直线L1,然后对C实行算法(c)得到长为M@(N-D)的直线L2。则
L(1B(M@D))=L1, (8)
L(((M@D)+1)BM@N)=L2, (9)
得到一条长为M@N的直线L。
B、映射o算法
映射o算法可以通过下列过程得到:
将原图A做一次镜像,如式(7)所示得Ac,然后对Ac施行映射1算法,如此得到映射o的算法。
C、折叠算法
把直线L重新折叠成M@N的图像的算法如式(10)所示:
E(i,j)=L((i-1)@N+j), (10)
其中,i=1,2,,,M;j=1,2,,,N。
E(i,j)是位置置乱后的图像。
_二、图像加密、解密算法
1、图像加密算法原理
本加密算法采用了位置置乱和灰度置乱相结合的方法,图像的整个加密过程如图所示。
(1)密钥设计
如图所示,加密算法采用两个密钥K1和K2,其中K1用于图像位置置乱,K2作为混沌映射的初值,用于灰度置乱,其范围为(0,1)。位置置乱中采用了映射1和映射o,其映射次数可以作为密钥K1。如K1=1234,表示依次用1映射1次,用o映射2次,然后用1映射3次,最后用o映射4次。由于图像是有限像素点的集合,像素的排列组合是有限的。因此在有限次迭代之后,加密图像会恢复到原来的状态,即混沌映射都具有庞加莱回复性。有专家指出,当迭代次数较小(如<15)时,加密算法是安全的。本文将密钥K1的每一位设计为>1015的整数。由于新映射的周期非常大(<1015),这种设计是合理的。
本文采用的扩散函数如式(11)所示。
vck=vk+Y2molL, (11)
其中,vk是指每一个像素的灰度值,vck为扩散后的像素灰度值,Y为由混沌映射产生的混沌序列,L为像素灰度级。该类扩散函数结构简单、扩散速度快。
(2)混沌序列Y的产生
采用简单的logistic映射,其函数式如下:
Xn+1=f(L,Xn)=LXn(1-Xn)。 (12)
当L=4时,系统处于混沌状态,此时系统产生的序列具有随机性,遍历性,对初值的敏感性,其范围为(0,1)。K2作为混沌序列的初值X(0)。对产生的混沌实值序列,每个实值取其从百分位开始的3个数字组成的十进制数构成序列Y即对于X(i)=0.b1b2b3b4b5,,序列,Y由式(13)得到:
Y(i)=100@b1+10@b2+b3,i=0,1,2,,。 (13)
在扩散函数中引入了伪随机序列,克服了在已知扩散函数时通过简单的逆运算就可得到原图像精确直方图的缺陷,使得该加密方法可以抵御已知明文攻击。
2、图像加密算法步骤
图像加密算法可分为3步进行:
(1)利用密钥K1及映射1或o的算法,将图像A(i,j)拉伸处理为一条直线L(t),其中t=1,2,,,M@N。
(2)利用折叠算法如式(10)所示,将直线折叠处理,得到置乱图像E(i,j)。
(3)利用密钥K2及logistic映射和扩散函数,对置乱图像进行扩散处理得到密图。
解密算法与加密算法密钥相同,过程相反。
小知识之图像加密
图像加密的概念是:利用数字图像的特性设计加密算法,以提高加密的安全性和运算效率的一种技术。
怎样设置电脑文件不能被拷贝呢?(技巧和方法详解)
《庄子·逍遥游》中的句子:“吾生也有涯,而知也无涯。”在当前的无纸化信息时代,数据虽然信息无穷,但安全的保护有其界限,需要人们警觉和措施,现代数据安全中,不应轻视今天的安全,应当即刻采取措施防止未来的风险。作为老板你希望的核心数据泄露吗?那我们应该怎样防范呢?下面跟着小编来学习一下禁止流程和方法:方法一:通过修改注册表...
【小白必备】电脑管理U盘的软件有哪些(10大电脑U盘管理软件图文推荐)
在数字化时代,U盘已成为我们日常工作和生活中不可或缺的一部分。然而,如何有效地管理和保护U盘中的数据安全,成为了许多人关注的问题。今天,就为大家推荐10款小白也能轻松上手的电脑U盘管理软件,帮助大家更好地管理和保护U盘数据。一、U盘安全锁U盘安全锁是一款简单易用的U盘管理软件,专注于保护U盘数据安全。通过设置密码和权限...
电脑桌面管控软件盘点:安全与便捷并存
你是不是时常感觉电脑桌面杂乱无章,找个文件像大海捞针,还总担心信息会泄露出去?别着急,今天咱就来好好聊聊那些兼顾安全与便捷的电脑桌面管控软件,它就好比你身边的私人超级英雄,既能帮你把电脑桌面打理得井然有序,又能全方位守护你的信息安全,让你工作、生活都顺顺利利。咱先来瞧瞧这些软件的技术闪光点。如果电脑桌面能像超市货架那样...
移动硬盘也能加密,教你简单设置密码的方法
你知道吗?每年因移动硬盘丢失造成的个人信息泄露案件超过10万起。前几天同事小张刚丢了存有客户资料的硬盘,急得差点报警。其实只要给硬盘加密,这些风险都能轻松化解。今天就教你几种简单又实用的加密方法,小白也能3分钟学会!一、系统自带加密:Windows和Mac都能这么做Windows用户可以试试BitLocker。把移动硬...
一分钟教你识别电脑监控软件的简单技巧
在如今这个信息如洪流般奔涌的时代,电脑早已成为我们工作、学习与娱乐不可或缺的亲密伙伴。然而,你或许有所不知,有时候,你的电脑可能正被一些 “不请自来” 的家伙 —— 监控软件,偷偷地窥视着。它们或许会在你毫无察觉之时,悄然收集你的个人信息,甚至对你的隐私与安全构成威胁。别慌,今天就来教你几个简单又实用的小妙招,只需一分...