基于置乱变换的图像关键信息隐藏算法

2022-10-09 04:07刘红雨王晓磊张艳明李巍巍
信息安全研究 2022年10期
关键词:样点像素点多普勒

刘红雨 王晓磊 张艳明 孙 尧 李巍巍

(黑龙江中医药大学医学信息工程学院 哈尔滨 150040)

(liuhongyuyyy@163.com)

图像信息隐藏主要用于数据保护,利用冗余信号和人眼视觉特点,将需要保护的数据隐藏在图像中,确保图像传输过程中,隐藏信息不易被发现,从而免于破坏和攻击[1-2].信息隐藏应充分保证数据的隐蔽性和透明性,尽可能保持原始图像的原貌,保证嵌入隐藏信息后的图像与原始图像相差不大.对信息隐藏算法进行研究,对保护图像关键信息具有重要意义[3-4].

1 相关研究

国内信息隐藏算法相关研究已取得较大发展.信息隐藏算法就是将图像作为隐藏数据的载体,通过置乱技术,变换像素位置,分析图像像素位置和灰度变化,使相邻像素之间没有任何关联,从而实现图像的不可读性[5].文献[6]采用基于进制转换的信息隐藏算法,对需要保护的数据进行压缩,将原始图像信息转换为二进制,但该算法转换二进制流的量化系数,与载体图像的子块类别不相符,加密图像易被破解.文献[7]采用基于位平面改进的信息隐藏算法,分层公开的图像数据,将图像作为匹配模板,依次嵌入需要保护的数据,但该算法嵌入信息所占的序列空间较大,关键信息隐藏后的图像保密性不高.文献[8]采用基于二次剩余的信息隐藏算法,定位隐藏数据在图像中的嵌入位置,计算像素的二次剩余值,分析隐藏数据与计算值之间的对应关系,但该算法对图像的主观质量和客观质量影响较大,关键信息同样易被破解.

针对以上问题,本文提出基于置乱变换的图像关键信息隐藏算法,对图像像素点进行压缩,选择与关键信息配对的像素对,经由置乱变换,改变关键信息位置,使其插入像素对,实现信息隐藏,提高关键信息的被破解难度.

2 基于置乱变换的图像关键信息隐藏算法设计

2.1 压缩图像像素点

提取图像的分量图像块,将其转化为灰度图像块,把RGB模型的3个彩色像素通道转换为灰度值.利用压缩技术可以减少图像的像素值,去除图像中的冗余数据.通过一维线性预测方法,利用过去样点像素值对未来样点像素值进行预测,预测样点的像素值A的计算公式为

(1)

其中:P为样点像素值的预测阶数;ep为第p阶的一维预测参数;round为四舍五入函数,为了避免四舍五入规则造成结果偏高、误差偏大的现象出现,一般采用四舍六入五成双的规则;X为过去样点像素值序列.

将预测像素值和实际像素值相减,获得一个具有较小动态范围的误差信号.等比扩大预测误差,绘制误差信号直方图,清晰体现预测误差的总体分布.判定直方图峰值附近存在大部分的预测误差,对预测误差进行归一化处理,使其在0~1的范围内浮动.令归一化为0的误差值显示为白色、归一化为1的误差值显示为黑色,获得清晰的可视化图像矩阵[9].判定图像矩阵灰度跳跃较大处、边缘处的像素点之间相关性不强,其余像素点之间相关性较强,根据这一特点,使用一阶线性预测器编码误差信号,减少误差信号量化所需要的比特数,从而降低图像像素点的数量,去除图像的像素冗余.

仅考虑行像素间的相关性,将图像的每行像素点视作一个序列,预测每行像素点的相邻像素的像素值,预测值B的计算公式为

B=fg(x-1,y)+fg(x,y-1)+

fg(x-1,y-1),

(2)

其中,g(x-1,y),g(x,y-1),g(x-1,y-1)分别为图像中(x-1,y),(x,y-1),(x-1,y-1)处样点的像素值,f为二维预测系数[10].

将预测值和实际值相减,得到信号误差,通过计算误差概率得到直方图,同样判定峰值附近的归一化值为预测误差,编码后把预测误差范围内的数据集合映射到有限输出的数据集合,减少图像的心理视觉冗余[11].分层图像的多个位平面使用比特表示图像像素点,转换图像像素点的进制数量.设原始图像像素点为t(x,y),其表达式为

(3)

其中,hj(x,y)为第j个位平面的二进制图像像素点.通过式(3)分解图像为多个位平面.设置第6~8个位平面分别表示图像轮廓、亮度、边缘等大部分信息数据;设置第1~5个位平面的最大像素值为16,令人眼视觉下的可视化图像接近黑色;对第1~5个位平面进行直方图均衡化处理,扩大分解图灰度范围,反映部分区域的图像信息,进一步消除图像编码冗余,降低信息隐藏的复杂程度.至此完成图像像素值的压缩.

2.2 分解和加密图像关键信息

基于压缩图像像素点,对图像关键信息进行分解和加密可加速图像关键信息隐藏,提高隐藏后图像的保密性.

1) 计算低频子带频率,分解图像关键信息.

分解图像关键信息时,低频子带频率计算是其中重要步骤.低频子带频率计算步骤为:首先,根据多普勒效应对图像像素点进行压缩,选择压缩后的图像信息序列中的相邻像素点作为像素对;其次,根据多普勒波的频移特点改变图像的像素灰度;然后,根据图像尺寸大小确定多普勒波的频率数组以及与数组相适应的多普勒多项式;最后,由多普勒多项式的周期确定循环迭代次数,生成多普勒波,利用分解后的多普勒波计算像素灰度,通过波源传播时间计算图像低频子带频率.

忽略图像像素的颜色关系,将图像放到多普勒波的频域中,当多普勒波的小波系数发生变化时,判定像素灰度随小波系数的变化而变化,且两者之间存在正相关关系.因此,增加小波系数的能量和范围,改变图像的大尺度低频子带.低频子带频率r的计算公式为

(4)

其中,q为波源运动方向到像素点之间的距离,c为波源传播时间,k为多普勒波频率数组中低频子带的数组频率,u1和u2分别为多普勒波的周期和长度[12].根据式(4)可增加r值,扩大图像的分解层数,直至需要隐藏的关键信息被分解出来.

2) 计算概率分布密度,加密图像关键信息.

分解图像关键信息后,根据压缩图像像素点,采用小波变换的方式计算图像的概率分布密度C,实现图像关键信息加密.首先,选取用于图像分解的滤波器;其次,根据分解的图像关键信息,结合近似系数和细节系数获取更小的图像分解分量[13];然后,通过一维映射,提取图像中的关键信息序列,将此关键信息序列的输入输出映射分布至(0,1)上;最后,通过数学统计方法,计算关键信息序列的概率分布密度.概率分布密度C计算公式为

(5)

其中,s为数学统计的关键信息序列长度.设定概率分布密度阈值,当C小于或等于设定阈值时,确定关键信息序列完成整个图像的遍历,即判定关键信息序列存在于整个区域.当C超过设定阈值时,判定关键信息序列是否完成整个图像遍历,若未完成遍历,则判定关键信息序列仅存在于局部区域.此时,需要在所有关键信息中进行挑选,获取用于生成置乱密钥的生成器,生成置乱密钥的规则是通过计算像素对的关键信息嵌入率Q判断像素对中能否嵌入关键信息像素点.关键信息嵌入率Q计算公式为

(6)

其中,M为图像关键信息像素点数量,S为图像信息像素点全部数量,I为滤波器分解的图像块总数,di为第i个图像块在多普勒波中的频谱,Oi为第i个图像块的逆变换矩阵特征值.当Q>0.5时,忽略这M个需要隐藏的关键信息像素点;若Q≤0.5,则将这M个关键信息像素点嵌入像素对中,生成置乱密钥.至此完成图像关键信息的分解和加密.

2.3 基于置乱变换隐藏图像关键信息

分解和加密后的图像关键信息序列具有一定的随机性,需采用置乱变换方法对图像关键信息进行隐藏,步骤如下:

1) 利用仿射变换模型l对图像进行微观置乱,生成微观置乱变换后的图像关键信息序列.仿射变换模型l的表达式为

(7)

其中,V1和V2分别为图像的长和宽,U为图像关键信息序列置乱次数,K1和K2分别为图像信息序列权值和图像关键信息序列权值,J为模乘同余算子,L为关键信息序列置乱周期[14].

2) 在图像中放入多个关键信息序列.放入第1个关键信息序列时,图像中的像素点向左平移1个像素;放入第2个关键信息序列时,图像中的像素点向右平移1个像素;依次循环实现置乱变换.经过反变换法(系统仿真中获得均匀随机变量的一种方法)后图像矩阵的尺寸大小产生变形,因此要对压缩图像像素点进行反列变换.像素点的反列变换采用混合列变换式,将参与运算的相邻2个图像像素点视作具有同一形式的关键信息序列,并通过加权系数,进一步改变图像关键信息序列的排列形式,确保反列变换后的图像关键信息序列能够恢复为原始尺寸大小.

3) 计算隐写参数Z,转换图像关键信息序列.首先,图像置乱完毕后,随机选择扩展随机矩阵ρ和隐写参数Z,多次迭代置乱变换后,使ρ与Z这2个数值固定不变.然后,以ρ为基础,修改图像像素二维矩阵中的元素值,计算Z值,公式为

(8)

其中,D为关键信息的搜索集合;F为置乱密钥的初始种子,用于生成与提取关键信息序列的随机数序列;R为Z在ρ中的对应值;T为关键信息数学统计特征;o为关键信息压缩后的低位数据.最后,按照置乱密钥的配对规则,配对置乱后图像的关键信息与图像信息序列中隐藏的关键信息像素点[15],即利用Z将关键信息序列的特征统一,完成图像关键信息序列修改.

4) 重复步骤1)~3),直至分解的所有关键信息序列都嵌入在像素点的相位分量中.至此完成图像关键信息的隐藏,实现基于置乱变换的图像关键信息隐藏算法设计.

3 实验论证

3.1 本文算法实验结果

采用MATLAB R2020a软件对本文算法进行模拟.原始图像为某次医学实验用到的实验器材和实验药剂,如图1(a)所示.采用本文算法,利用周期为0.8的多普勒波把图像分解成14层,提取关键信息,如图1(b)所示.

图1 原始图像及其关键信息

采用本文算法计算出的每层图像适应的近似系数和细节系数如表1所示:

表1 每层图像适应的近似系数和细节系数

根据表1设置高通滤波器和低通滤波器的相关参数,获得原始图像的小尺度图像.选择满足嵌入条件的像素对,采用本文算法对图像进行宏观置乱和微观置乱.宏观置乱时,把原始图像划分为4×5个分块,如图2(a)所示.微观置乱时,首先利用MATLAB软件的随机函数生成插入关键信息的隐写参数;再配对置乱后图像的关键信息与图像信息序列中隐藏的关键信息像素点,将分解的所有关键信息序列都嵌入像素点的相位分量中,得到如图2(b)所示的微观置乱结果.由此采用本文算法实现了图像关键信息隐藏.

图2 宏观置乱和微观置乱

3.2 实验结果分析

将本文算法与基于进制转换的图像信息隐藏算法、基于位平面改进的图像信息隐藏算法和基于二次剩余的图像信息隐藏算法进行对比实验,比较4种图像信息隐藏算法的图像保密性.4种图像信息隐藏算法均采用MATLAB R2020a软件进行模拟.

1) 不动点比.

根据客户对图像的加密要求,设置关键信息嵌入率Q.将Q作为测试条件,比较4种算法隐藏关键信息后加密图像的不动点比E.E越小,表明关键信息的随机扩散效果越好,图像保密性越优.E值计算公式为

(9)

其中,m和n分别为加密图像任意像素点相邻左右集合中的最大样点像素值,Wa和Wb分别为关键信息像素点相邻左右集合中的样点像素值,G为关键信息像素点相邻左右集合中的最大样点像素值.4种算法隐藏关键信息后的加密图像的不动点比结果如图3所示.

图3 不动点比结果对比

由图3可知,当Q为20%时,本文算法的加密图像不动点比为0.369,远低于其他3种方法.随着Q不断增大,各个算法加密图像的不动点比都会发生下降,其中基于进制转换的图像信息隐藏算法的下降速率较为缓慢,本文算法下降速率最快.当Q达到70%时,本文算法加密图像的不动点比最低,相比其他算法分别减少了0.019,0.044和0.048.可见,本文算法在4种算法中关键信息的随机扩散效果最好,图像保密性最优.

2) 对角方向相关系数.

图4 对角方向相关系数结果对比

比较4种算法隐藏关键信息后加密图像的对角方向相关系数H.攻击者能够根据H分析原始图像的信息,H越低,表明攻击者分析图像信息的难度越高.H值计算公式为

(10)

其中,Y1为关键信息像素点相邻左集合中的样点a到对角方向的距离,Y2为关键信息像素点相邻右集合中的样点b到对角方向的距离,N为随机抽取的像素数量.4种算法的对角方向相关系数如图4所示.

由图4可知,随着Q不断增大,各个算法的对角方向相关系数变化不大,但本文算法的加密图像对角方向像素点的平均相关系数为0.789,相比其他3种算法分别减少了0.043,0.092和0.147,远低于其他3种算法,说明对于用本文算法隐藏关键信息后的加密图像,攻击者分析图像信息的难度最高.

4 结束语

采用本文算法通过置乱变换对图像关键信息进行隐藏,提高了加密图像的保密性,充分保证了关键信息的共享安全.但本文算法仍存在一定的不足,下一步研究将对原始图像进行缩放和扩大,提高隐藏算法的精度,确保加密图像的原始信息能够被充分还原出来.

猜你喜欢
样点像素点多普勒
双孢线虫草真菌群落结构及多样性分析
多路径效应对GPS多普勒测速的影响
林业“犟牛人”
基于局部相似性的特征匹配筛选算法
谈谈玉米大田测产方法及应用
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
图像采集过程中基于肤色理论的采集框自动定位
土地整理后样方田坎与二调样方田坎比较研究
《多普勒效应》的教学设计