APP下载

基于小波变换的遥感图像加密域可逆信息隐藏

2022-10-17安婷玉蒋东华刘立东

计算机工程与设计 2022年10期
关键词:直方图解密密钥

安婷玉,蒋东华,刘立东

(长安大学 信息工程学院,陕西 西安 710064)

0 引 言

加密与可逆信息隐藏结合不仅能保护遥感图像内容的安全,还能在其遭到非法使用时利用嵌入的信息进行溯源[1,2]。但由于二者均通过修改载体数据来进行安全保护,故直接叠加会相互干扰[3]。

对于一幅包含秘密信息的加密遥感图像,需要满足以下3种情况:①接收者只拥有加密密钥时,能解密包含嵌入数据的加密图像,得到与原始图像相似的图像;②接收者只拥有嵌入密钥时,能从包含嵌入数据的加密或者解密图像中提取秘密信息;③接收者同时拥有加密密钥和嵌入密钥时,无论是先解密还是先提取信息均可无损恢复原始遥感图像。文献[4]提出的加密域可逆信息隐藏算法只能在解密之后进行秘密信息的提取,不满足情况②的要求。文献[5]虽然克服了此缺陷,能在加密图像中直接提取信息,但该方法在解密图像中提取嵌入信息需要依赖加密密钥,不满足情况②的要求。文献[6]将置乱加密与数字水印技术结合实现二者的独立。然而,该方法仅针对置乱加密,加密结构简单密钥空间小,具有一定局限性。

本文利用整数小波变换的正交性对遥感图像进行加密和信息嵌入。采用基于超混沌洛伦兹系统的置乱扩散加密结构,相对于流密码和置乱加密结构更复杂,能够实现较好的加密性能。采用直方图移位的方式进行信息嵌入,保证一定嵌入率的基础上解密图像拥有更高的峰值信噪比。拥有不同密钥的接收者可以解密或者信息提取,二者不会相互干扰,解密和信息提取后能够无损恢复原始遥感图像。

1 相关工作

1.1 超混沌系统

洛伦兹系统是一个三维连续混沌系统,其动力学方程式如式(1)所示

(1)

(2)

1.2 整数小波变换

第一代小波变换定义请参见文献[8],但其变换后产生的小波系数是浮点数,由于计算机精度的限制,往往会造成部分信息丢失。第二代小波变换,又称整数小波变换,在保留第一代小波变换特性的基础上实现了从整数到整数的无损小波变换。其结构简单,运算量低,能够在空域完成对双正交小波的构造;S变换是最简单的整数小波变换,是线性Haar小波变换的近似整数形式[9]。遥感图像的特殊性决定了任意细节的丢失对于遥感图像来说都是不允许的,尤其涉及资源环境的遥感图像。对遥感图像进行S变换,得到单层分解后的图像矩阵;因为变换是可逆的,对分解后的图像进行S重构变换,能够完全恢复原始图像,不会丢失原始图像的任何细节。S变换的步骤为以下几步:

(1)将原始图像信号sj分为偶序列sj,2k和奇序列sj,2k+1, 每个子集的长度是原来的一半;

(2)利用偶序列和奇序列的相关性对每一行进行S变换,接着对每一列进行S变换得到分解后的图像。S变换的分解式如式(3)所示

(3)

其中,sj-1,k和dj-1,k分别是信号经S变换后的低频部分和高频部分,[ ]表示向下取整。

(3)重构原始图像时,对分解后的图像做S重构变换,先对每一列进行S重构变换,再对每一行进行S重构变换得到无损恢复的原始图像。S变换的重构式如式(4)所示

(4)

1.3 直方图平移

迄今为止,已经提出不同类型的可逆信息隐藏技术,其中它们主要基于3种策略:无损压缩、差分扩展和直方图平移[10]。根据整数小波变换后图像矩阵的特点,本文采用基于直方图平移的方法进行信息嵌入。基于直方图的信息隐藏通过平移直方图空出峰值像素点左侧或者右侧的像素值点的位置来嵌入秘密信息,在提取秘密信息之后,由数据嵌入引起的失真可以被完全消除,原始宿主图像可以无损恢复。

1.4 Zigzag变换

Zigzag变换是一种扫描置乱算法,其原理是将矩阵中的元素根据“z”字形状进行扫描,并将扫描的元素按照扫描顺序存储在一维数组中,然后转化成二维矩阵,这样可以将矩阵元素进行位置改变[11]。图2为Zigzag变换示意图。

2 本文算法

本文提出的遥感图像密文域信息隐藏算法框架如图3所示。图像拥有者对原始遥感图像进行整数小波变换,对变换后的低频分量利用基于超混沌洛伦兹系统的置乱-扩散加密方法进行加密,将加密算法与低频分量的统计信息相关且扩散密钥与置乱结果相关来提高加密算法的安全性以抵抗选择明文攻击;对变换后的3个高频分量利用直方图平移的方法进行信息嵌入,采用双峰值直方图嵌入的方式提高嵌入容量;最后将加密后与信息嵌入后的4个分量进行逆小波变换之后传输图像。

图像接收者对接收到的图像进行小波变换,根据获取的不同密钥执行不同的操作:情景a:只有加密密钥,解密低频分量获得与原始遥感图像相似的图像;情景b:只有嵌入密钥,无论接收到的图像是否经过解密,均可以提取3个高频分量中的秘密信息;情景c:同时拥有两种密钥,解密低频分量同时提取高频分量中的秘密信息,将恢复后的4个分量逆小波变换后可以得到无损恢复的原始遥感图像。

2.1 整数小波变换

对原始遥感图像进行整数小波变换(integer wavelet transform,IWT),得到4个分量,其中包括一个低频分量(LL),3个高频分量分别是水平方向高频分量(HL)、垂直方向高频分量(LH)、斜线方向高频分量(HH),图4为整数小波变换的示意图。

2.2 加密过程

混沌系统具有良好的初始值敏感性、伪随机性和结果不可预测性,非常适合用于图像加密,采用置乱和扩散的加密结构对小波变换后的低频分量加密,并将加密算法与明文相关且置乱结果用于扩散密钥中提高加密性能以抵抗选择明文攻击。以下是加密算法的步骤:

步骤1 将第一组密钥x0,y0,z0,w0和大小为M×N的明文原始图像P输入到图像加密系统中去;

步骤2 对输入明文图像的所有像素值进行求和,总和用SUM表示。计算Nx=SUMmodMN, 这里Nx为混沌系统迭代次数的一部分;

步骤3 在第一组密钥x0,y0,z0,w0的控制下,用步长为0.002的四阶龙格-库塔法迭代式(2)Nx+MN次,并将x的迭代结果作为混沌序列,记为x={x1,x2,x3,…,xNx+MN}, 删除序列x的前Nx项元素得到M×N个元素组成的新序列x′。迭代中加入Nx的目的是为了消除瞬时效应并且与明文图像进行关联,避免选择明文攻击与已知明文攻击;

步骤4 通过对步骤3中获得的序列x′进行升序排列得到升序序列x″={x″1,x″2,x″3,…,x″MN} 以及置乱位置序列t={t1,t2,t3,…,tMN}, 其中ti的含义是升序序列x″中第i个元素在序列x′中所在的位置;

步骤5 利用Zigzag变换对明文图像P进行预置乱,以混淆低频分量的像素值,并将预置乱后的图像转换为一维像素向量,记为P_1={P1,P2,P3,…,PMN};

步骤6 Zigzag预置乱后的一维像素向量P_1={P1,P2,P3,…,PMN} 利用置乱位置序列t(i)和式(5)进行置乱

P′(i)=P_1(t(i));i=1,2,…,MN

(5)

步骤7 输入第二组密钥x1,y1,z1,w1,用步长为0.002的四阶龙格-库塔法迭代式(4)Nx+P′(MN)+MN次,得到混沌序列z,记为z={z1,z2,z3,…,zNx+P′(MN)+MN}, 删除序列z的前Nx+P′(MN) 项元素得到M×N个元素组成的新序列z′且将两次迭代删除的元素个数分别作为密钥传输。

步骤8 找出明文图像中最大的像素值m,并将m作为密钥传输。然后对混沌序列z′按式(6)执行操作,即可得到扩散序列Q

(6)

步骤9 按如式(7)所示,使用扩散序列Q对P′进行扩散

(7)

其中,mod表示与元素进行求余操作,⊗表示按位异或;

步骤10 利用Zigzag逆变换将一维密文像素向量C′转为M×N的矩阵,得到密文图像C。

步骤11 发送方利用rand函数产生一个1×16的二进制随机矩阵,并将存储在其中的二进制数转化为十进制数作为加密密钥e,用密钥e对Nx进行异或加密得到N′x。

步骤12 构造元素均为255的矩阵A∈M*N, 且将步骤7中迭代得到的混沌序列wend-1/16M×N+1:end进行排序得到位置序列sw,end为混沌序列w中最后一个元素的序号且其取值与混沌序列w的长度相同。利用最低有效位(least significant bit,LSB)算法将N′x嵌入到矩阵A中,嵌入过程如式(8)所示

(8)

步骤13 将第一组加密密钥、第二组加密密钥以及密钥e通过公钥加密的方式进行传输。

2.3 信息隐藏

整数小波变换后遥感图像高频分量的直方图如图5所示。从图5中可以看出整数小波变换后高频分量的直方图很尖锐而且下降速度很快,这样的数据特点非常适合用直方图平移进行信息嵌入,因此在这个阶段将所有高频分量以直方图平移的方式嵌入秘密信息。采用直方图平移的方法将部分像素峰值点平移到峰值像素点两侧,目的是减少直方图的中心峰值从而完成信息隐藏。秘密信息随机产生,其长度由每个高频分量的直方图峰值确定。以下是信息隐藏算法步骤:

步骤1 将所有高频分量作为信息隐藏部分的输入;

步骤2 找到直方图中的两个峰值点,按照直方图上两个峰值像素点从左往右的次序依次指定为PL和PR,找到PL左侧的零点记为ZL,以及PR右侧的零点ZR,数据传输时将这4个值作为密钥进行传输。生成随机数据的长度要使范围[PL,PR]内的所有像素都包括在内;

步骤3 按照式(9)进行信息嵌入

(9)

其中,Pi为嵌入之前的像素,P′i为变换后的像素,bk为第k个嵌入的二进制数据位。嵌入秘密信息后的3个高频分量的直方图如图6所示。

2.4 信息提取

拥有嵌入密钥的接收者可以从包含嵌入数据的加密图像中提取出秘密信息,且无论接收到的图像是否经过解密都可以进行信息提取。以下是信息提取算法的步骤:

步骤1 将接收图片小波变换之后的所有高频分量作为信息提取部分的输入;

步骤2 按照式(10)进行信息提取

(10)

其中,R_P′i为接收到的包含嵌入数据的图像像素值,R_PL和R_PR为嵌入密钥,b′k为从包含嵌入数据的图像中提取的第k个二进制信息位。

2.5 解 密

解密过程是加密过程的逆过程,接收者只要拥有加密密钥就可以从包含嵌入数据的加密图像中解密得到与原始图像相似的图像。以下是解密算法的步骤:

步骤1 将加密密钥和密文图像C输入到解密算法中,在加密密钥的控制下使用与加密时同样的方法迭代混沌序列,得到扩散矩阵Q和置乱位置序列t;

步骤2 利用Zigzag变换将密文图像C转换为一维密文像素向量C′,按如式(11)所示,使用扩散矩阵Q对C′进行逆扩散

(11)

步骤3 按如式(12)所示,使用步骤1中得到的置乱位置序列t(i)对逆扩散后的像素向量P′进行逆置乱

P″(t(i))=P′(i),i=1,2,…,MN

(12)

步骤4 利用Zigzag逆变换将像素向量P″转为M×N的矩阵,得到明文图像矩阵P。

2.6 溢出处理

对图像的小波系数进行处理会引起空域上像素值的变化,这种变化可能会导致不可避免的上溢或者下溢现象。对于8 bit的数字图像来说,上溢代表像素值大于255,下溢代表像素值小于0。因此在图像传输时这些溢出的像素值会产生截断,大于255的像素值会突变成255,小于0的像素值会突变成0,这对于载体图像的无损恢复来说是不允许的。为了解决这一问题,本文使用定位图来进行溢出处理。

首先,图像拥有者对得到的包含嵌入数据的加密图像IE进行扫描,生成一个与图像像素一一对应的位置图L

(13)

其中,IE(i,j) 为包含嵌入数据的加密图像IE的像素值。通过使用位置图L可以记录下产生溢出的像素坐标。然后,图像拥有者需要对产生溢出的像素进行调整,对于存在溢出的像素值,按式(14)进行处理

(14)

其中,IE(i,j)′为溢出处理后的图像像素。随后,图像拥有者需要将位置图L进行无损压缩,压缩后用流密码加密的方式进行加密传输。

接收方得到压缩加密后的定位图后先用密钥解密定位图再解压缩得到与原始定位图完全相同的定位图。然后,根据定位图L还原溢出处理之前的像素IE(i,j)

(15)

在将像素IE(i,j)′ 还原成IE(i,j) 后,接收方可以根据2.4小节和2.5小节中描述的方法将秘密信息提取出来并恢复出原始的载体图像。

3 仿真实验与分析

3.1 实验结果

实验结果如图7所示。实验选取的测试图像是图7(a)所示的大小为512×512的遥感图像playground,图像加密后原始图像的低频分量转化为不可读乱码高频分量不变,以生成图7(b)所示的加密图像,然后在加密图像的3个高频分量中嵌入37 953比特的秘密信息得到包含嵌入数据的加密图像如图7(c)所示,当接受方仅拥有加密密钥时,解密低频分量后得到的图像如图7(d)所示,由于整数小波变换的正交性,图7(d)等价于仅对原始图像执行信息嵌入操作后的图像,当接收方仅拥有嵌入密钥时,无论接收到的图像是图7(c)还是图7(d)均可以提取秘密信息,图7(e)为从图7(c)中提取秘密信息后得到的图像,图7(f)为从图7(d)中提取秘密信息后得到的图像,可以看出图7(f)与原始图像完全相同,即算法能够无损恢复出原始图像。

3.2 相关性分析

明文图像中的局部像素点之间一般来讲具有极其大的相关性,为了使图像加密算法达到较好的加密效果,必须让密文图像中局部像素点之间摆脱这种相关性。我们从明文图像和密文图像中随机抽取n=10000对相邻像素点进行相关性分析,通过式(16)~式(19)来计算明文图像和密文图像的相关系数

(16)

(17)

(18)

(19)

其中,x,y表示图像中两个相邻像素的灰度值,E(x)表示变量x的期望,D(x)表示变量x的方差,最终计算得到的相关系数rxy的值属于[0,1]。图8显示了Man灰度图像和相应密码图像之间的相关分布,可看出密文图像的相邻像素之间没有可检测的相关性。

此外,表1显示了明文图像与密文图像的相关性系数。其中,H、V、D分别代表水平、垂直和斜线方向。可以看出加密之后图像中局部像素点之间的相关系数变小即相关性变弱图像的安全性变高。

表1 明文图像和密文图像相邻像素的相关性

3.3 直方图分析

图像的直方图反映该图像中所有像素值的分布,如果不对明文图像的像素值进行掩盖,则会泄露图像的像素分布信息。一个好的密码系统所生成的密文图像的所有像素值应该十分均匀分布在[0,255]灰度级之间,使其不被统计分析。从图9中可以看出,明文图像的直方图分布十分不均匀,但是经过提出的加密系统加密以后生成的密文图像的直方图却十分均匀分布在[0,255]之间,说明我们的加密算法具有优良的扩散特性和抵抗统计分析的能力。

3.4 峰值信噪比PSNR分析

信息隐藏会对载体图像产生一定的影响,信息隐藏之后的载体要求具有不可感知性,即对载体的改变不可察觉主观上可以通过视觉的感知,客观上评价直接解密的载体图像相对于原始图像的失真情况主要有峰值信噪比(peak signal to noise ratio,PSNR),其取值依赖于均方差(mean square error,MSE),通过式(20)~式(21)进行计算

(20)

(21)

其中,d表示数据中的最大值,对于灰度图像d=255;M,N表示图像宽高;X,Y分别表示原始图像和解密后包含秘密信息的图像,i,j分别表示像素点的横纵坐标。PSNR与MSE成反比,当MSE越小时PSNR值越大,则两幅图像像素值改变量越少,差异越小,反之失真越大。测试不同图像解密图像在最大嵌入率下的PSNR,并与文献[5,12,13]进行对比,测试结果见表2。

从表2可以看出,当嵌入容量达到最大时,本文算法的PSNR值明显较高,故解密图像的质量也更好。

3.5 嵌入率分析

嵌入率(embedding rate,ER)是评价可逆信息隐藏算法中秘密信息嵌入容量的指标,它表示平均每像素嵌入的比特数,单位是bpp(bit per pixel),其计算公式如式(22)所示

(22)

其中,Bm表示载体图像能够嵌入的最大信息容量,M×N为载体图像的大小。该评价指标说明,对于同一幅载体图像,其ER值越大则说明可嵌入的信息容量越大。测试不同图像的嵌入率,并与文献[5,12,13]进行对比,测试结果见表3。

表3 不同算法最大嵌入率对比

从表3可以看出,本文的嵌入率更高;尤其是Lena和Airplane,相对于文献[5,12,13]有很大的提升,主要原因是图像较平滑,使得整数小波变换之后细节分量直方图更尖锐,嵌入容量更大。而Baboon图像的纹理比较丰富,其细节分量相对比较平缓,嵌入容量也较小。此外,图10所示为图像Airplane在不同嵌入率和不同算法的解密图像PSNR对比。可以看出,本文算法能够获得更好的解密图像质量。

4 结束语

遥感图像作为一种敏感信息,不仅需要存储和传输过程中的安全性,还需要使用过程中的安全性。为此,本文提出了一种基于整数小波变换的融合加密技术和可逆信息隐藏技术的遥感图像综合安全保护方案。在该方案下,接收到包含秘密信息的加密图像的接收者可以根据拥有密钥的不同分别进行解密或者信息提取,解密和信息提取不会相互影响,最终可以无损恢复原始遥感图像。基于超混沌洛伦兹系统的置乱扩散加密结构,弥补了目前基于流密码加密或者分块置乱加密在结构上和安全性上的不足;实验结果表明,在保证一定嵌入率的基础上本文提出算法的解密图像质量更好。

猜你喜欢

直方图解密密钥
幻中邂逅之金色密钥
幻中邂逅之金色密钥
炫词解密
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于差分隐私的高精度直方图发布方法
密码系统中密钥的状态与保护*
炫词解密
炫词解密
Android密钥库简析
例析频率分布直方图