以分形图形为载体的信息隐藏算法

2018-10-16 03:13周龙福季晓勇
计算机应用 2018年8期
关键词:分形容量秘密

柏 森,周龙福,阳 溢,李 静,季晓勇

(1.重庆工程学院 软件与计算机学院,重庆 400056; 2.陆军工程大学通信士官学校 信息工程系,重庆 400035;3. 63981部队,武汉 430300)(*通信作者电子邮箱baisencq@126.com)

0 引言

近年来,分形艺术图形的生成和应用逐渐丰富起来,基于分形的信息隐藏方法也开始被学者研究和提出。文献[1]中定义了“分形图形”和“分形图像”,将由点、线、面、弧等形状组成的分形图称为分形图形,将通过特定的算法生成且具有丰富的色彩层次和复杂图案的分形图或者在分形图基础上经过艺术加工处理的分形图统称为分形图像。文献[1]在分形图像中进行信息隐藏,是空域算法的范畴,同其他空域隐写术算法一样,存在鲁棒性不够强的问题。文献[2]中提出了基于分形艺术图形的密写术,算法的实质就是对图形的色彩饱和度值进行随机的加减操作来嵌入秘密信息,能抵抗RS(Regular & Singular)隐密分析[3];该算法利用的载体图像和隐藏方法仍然属于传统的方法,仍然有被其他隐密分析方法攻破的可能。文献[4]通过修改分形图形中的分形线段的颜色来嵌入秘密信息比特,当出现线段重叠时,则不再修改该线段,并不再嵌入信息;该方法存在隐藏容量有限、隐蔽性也不是很好的问题。文献[5]是在生成的Julia分形集图像中进行隐藏,隐藏方法是通过改变调整图像的前景色和背景色进行秘密信息比特嵌入;其隐藏对图像的美感性有一定影响,隐蔽性不是很好。文献[6]利用分形Sierpinski片加密算法对原始秘密信息加密,然后用次最低位平面(Least Significant Bit, LSB)方法进行信息隐藏,其抗隐密分析性能优良,但鲁棒性较弱。文献[7]是利用Mandelbrot分形图像进行信息隐藏,本质还是传统的图像信息隐藏。

不同于传统的以图像为载体的信息隐藏方法,利用文献[1]中“分形图形”的定义,本文提出了一种以分形图形为载体的秘密信息隐藏方法。由于目前还没有针对分形图形的隐密分析方法,因此该方法具有抗隐密分析的安全性。同时,秘密信息的接收方根据生成分形图形的参数(可作为密钥传递),能方便地生成分形图形,即接收方可方便地获得原始载体图形,这给秘密信息嵌入和提取提供了更多有利条件。

1 分形图形生成及转化

1.1 分形图形生成

分形图形的生成方法多种多样,既可以生成色彩丰富的艺术审美图形,也可以生成单一颜色的山川、河流、树木、花草等。本文仅讨论生成单一颜色的分形图形并在其中进行信息隐藏的方法,即根据迭代函数系统(Iterated Function System, IFS)生成分形图形的方法。下面以分形山为例来说明分形图形生成的方法。

设分形山生成的矩阵参数a如式(1)所示,它是一个8行7列的矩阵,该矩阵可作为分形图形生成的密钥传给秘密信息接收方。给定随机数生成的种子seed,生成长度为N的伪随机数列R={R(i)|R(i)∈[0,1]},则分形山的生成算法如下(用Matlab程序表示),其中N是迭代的次数。生成的分形山如图1所示。

(1)

分形山迭代生成算法如下:

x0=1;y0=1; %给定初始值

for i=1:N

r=R(i);

total=a(1,7);

k=1;

while(total

k=k+1;

total=total+a(k,7);

end

x1=a(k,1)*x0+a(k,2)*y0+a(k,5);

y1=a(k,3)*x0+a(k,4)*y0+a(k,6);

x0=x1;y0=y1;

plot(x1,y1);

hold on

end

图1 生成的分形山图形

1.2 分形图形转化为像素图像

由于Matlab存储图形时,数据量比较大,当迭代次数N为5 000时和10 000时,其*.fig文件所占存储空间分别是408 KB和1.98 MB,这对于基于信息隐藏的隐密通信是不利的;同时,*.fig文件进行信息隐藏、提取等操作也不方便。因此,为方便秘密信息隐藏、传输和提取,利用式(2)将其转化为像素图形的形式。其中A和B分别是转化为像素图形时的纵横像素数,Xmax和Xmin分别是Matlab分成山图形(图1)中最大和最小的横坐标,Ymax和Ymin分别是Matlab分成山图形(图1)最大和最小的纵坐标,⎣*」表示对*进行向下取整。图2是由Matlab生成的分形图形(图1)转化而成的像素图形,其中的黑色边框是为方便与图1对比观看加上去的。

(2)

图2 分形山图形转化为像素图像

2 分形图形中的信息隐藏

由第1章可以看出,分形图形具有明显的特点:1)分形图形生成简单,只需要一些参数和随机序列生成的种子;2)由黑白像素点组成;3)黑白像素分布不均匀,也正是这种不均匀性,才能形成不同的分形图形。根据分形图形并考虑信息隐藏的容量、安全性、隐蔽性等重要指标,本文提出了如下秘密信息的隐藏和提取方法。

2.1 秘密信息隐藏

假设秘密信息是0和1组成的随机序列,提出的分形图形信息隐藏的基本思想是:将分形图形分成一个个小块,根据隐藏0或1的不同,通过调整小块中黑像素的位置或个数来隐藏秘密信息。以生成分形山的图形为例,基于分形图形的信息隐藏的步骤如下:

步骤1 给定分形山生成的矩阵参数为a,伪随机序列生成的种子seed及将分形图形转化为像素图形格式的图形尺寸A和B等参数,这些参数都可作为秘密信息接收方提取秘密信息需要的密钥。

步骤2 根据第1章描述的分形山生成算法生成分形图形,并利用式(1)将其转化为像素图形Ip。

步骤3 将生成的像素图形从上到下、从左到右分成不重叠2×2小块,统计小块中黑像素个数,记为n。

图3 调整黑像素位置隐藏

2.2 秘密信息提取

秘密信息提取与传统的信息隐藏提取方法不同,在这里可以将分形图形生成矩阵a、迭代次数N、生成随机序列的种子seed作为密钥、像素图形尺寸A和B经安全信道传输给秘密信息的接收者。秘密信息接收者利用这些参数生成原始的分形图形;然后,将其转化为像素图形,再将像素图形分成不重叠的2×2像素块并统计其中黑像素个数;最后,将接收到的含密像素图形与其对应的2×2像素块比较,判断是否隐藏有秘密信息并提取。具体步骤如下。

步骤1 利用事先约定或通过安全信道获得的分形图形生成矩阵a、迭代次数N、随机序列的种子seed等,生成分形图形。

步骤2 根据图形尺寸参数A和B即分形图形中最大、最小纵横坐标,利用式(2)将步骤1中生成的分形图形转化为像素图形Ip。

步骤3 将生成的像素图形Ip从上到下、从左到右分成不重叠2×2小块,统计小块中黑像素个数,记为n。

3 实验结果及分析

3.1 隐蔽性

本文算法所采用的载体是通过一个个像素点描绘的分形图形,秘密比特信息隐藏是通过修改分形图形2×2分块中黑像素的位置来实现的。由于分块很小且只改变黑像素的位置,在没有原始分形图形的情况下,根本看不出图形存在隐藏信息的问题,同时质量评价也不能用传统的峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)来衡量,其隐蔽性在视觉主观评价方面是很好的。图4(a)是原始分形山图形,图4(b)是隐藏有4 459 bit信息的含密分形图形,并且是在极端情况下(即每个2×2分块黑像素位置都改变)得到的隐藏图形。不仔细比较,看不出两幅图的差别,在没有原始分形图形的情况下,可以说其隐蔽是非常好的。在图4中为了方便观看,又不增加类似图2那样的黑边框,作了反色处理,即白色变为黑色,黑色变成了白色。

3.2 隐藏容量

分形图形迭代生成次数N决定了分形图形中的坐标点数,从而决定了分形图像的像素数;分形图像尺寸的大小A和B决定了像素的分布稀疏情况。因此,从2.1节信息隐藏算法可以看出,隐藏容量不仅取决于分形图形生成时的迭代次数N,而且取决于步骤2中图像尺寸参数A和B,即式(2)中的A和B的大小。下面就从这两个方面来讨论它们与隐藏容量的关系。

图4 分形图形和隐藏信息后的分形图形(N=10 000)

3.2.1 隐藏容量与迭代次数的关系

根据2.1节信息隐藏算法步骤可知,该算法的隐藏容量等于分形像素图形Ip进行不重叠2×2分块后,其黑像素数n在1≤n<4范围内的像素块个数。当迭代次数N较小,像素点很稀疏,满足1≤n<4的像素块个数比较少,因此隐藏容量也比较小。随着迭代次数的增加,像素点增多,满足可隐藏信息的像素块增加,隐藏容量也随之增加。但隐藏容量也不是无限制增加的,因为随着迭代次数增加,像素点增多后,原来没有像素点的地方也被填满了像素点,从而不能通过改变黑像素的位置来隐藏信息,即满足1≤n<4的像素块减少,导致隐藏容量会有所减少。生成分形图形的迭代次数与隐藏容量仿真实验结果如图5所示,可以看出:隐藏容量不仅与迭代次数有关,而且与随机数生成的种子有关。用Matlab仿真时,图5是种子seed分别设为0和1时隐藏容量和迭代次数的关系曲线,它们都存在一个峰值。当种子seed设为0时,N=28 850,隐藏容量达到最大为5 801 b。当种子seed设为1时,N=35 400,隐藏容量达到最大为5 633 b。从图5可看出,seed=0,当N<28 850时,随着迭代次数的增加隐藏容量也增加;当N>28 850时,随着N的增加,隐藏容量随着减少。

3.2.2 隐藏容量与转化的分形图像大小的关系

在图像信息隐藏领域,一般说来随着图像尺寸的增加信息隐藏容量也增加。2.1节提出的基于分形图形的信息隐藏,当由分形图形转化为分形图像时,随着尺寸增加,像素点分布也将稀疏一些,满足隐藏条件黑的像素数n在1≤n<4范围内的像素块个数也将增加,从而隐藏容量将增加。

当N=85 000时,分形图像尺寸与容量的关系如图6所示,可以看出,隐藏容量与分形图像尺寸大小近似成线性增加关系。

图5 生成分形图形的迭代次数与隐藏容量的关系

图6 生成分形图像的尺寸与隐藏容量的关系

3.3 抗隐藏分析能力

目前,隐密分析的主要方法一般包含3个步骤:残差计算、特征提取和二元分类[8]。这些隐密分析方法或是针对图像灰度值的变化情况进行统计分析,或是考察图像灰度值间的相关性而进行隐密分析,而本文提出的信息隐藏方法并没有改变像素的灰度值,只是交换了灰度值的位置。同时,本文的载体是分形图像,由一些看似离散的点组成,用灰度图像的相关性来分析将不适用。一些隐密分析方法通过提取图像多种多维特征进行分类识别,判断图像是否隐藏有秘密信息,而针对分形图像特征提取的分类识别隐密分析方法目前并没有出现。2018年发表的最新的隐密分析论文[9],也只是对灰度图像和彩色图像进行隐密分析的,因此,现有的隐密分析方法不能成功对本文信息隐藏方法进行隐密分析。以下从隐密分析的主要对象、常用特征方法和通用分析方法三个方面进行分析。

1)关于隐密分析对象。目前,针对彩色图像、灰度图像进行隐密分析的文献较多,较少文献针对二值图像进行隐密分析。文献[10]虽然对二值图像进行了隐密分析,但不适合半色调图像,本文用分形生成的载体图像本质上就是半色调图像。文献[11]虽然专门针对半色调图像进行了隐密分析,但其基本思想是假定信息隐藏在图像中引入了“噪声”,而本文的载体图像是一些离散的点,且大部分区域是像素为0的黑像素区域,用相邻像素的相关性来分析信息隐藏前后相邻像素的相关性,相关系数差别也不会太大。比如,随机选取N对相邻(包括水平、垂直和对角方向相邻)的像素点对,设x、y表示两个相邻的像素灰度值,用如下离散化公式(3)计算相关系数。当N=85 000,A=B=300经过10次计算取平均值得到原始分形图像、含密分形图像的水平相关系数分别为0.688 67和0.654 07;当N=28 850,A=B=300经过10次计算取平均值得到原始分形图像、含密分形图像的水平相关系数分别为0.497 01和0.457 64。由此看出相关系数相差不足0.04,是非常小的,作出隐密分析的判定比较困难。计算垂直和对角方向的相关系数,也得到类似的结果。

(3)

2)关于隐密分析方法。特征提取是现阶段隐写分析领域中常用的方法,并认为是一个非常关键的问题,但针对二值图像特征提取方法并不多见,传统的方法中主要依赖于人工设计的特征。近些年来,虽然隐写分析研究领域取得了较大的进步,但是不断提出的先进隐写术给隐写分析带来了更加严峻的挑战。传统基于人工设计特征的方法研究也变得更加困难,未来围绕隐写分析这一研究方向,从特征学习的角度来研究隐写分析中的极为关键的特征表达问题,或许是有效的方法之一,文献[12]从特征学习的角度,将深度学习引入隐写分析领域,对常用的标准库BOSS1.01灰度图像进行了实验分析,但对分形图像并没有作出分析。

3)关于通用隐密分析。通用盲隐密分析技术是该领域一直追求的目标,文献[13]是目前较新的通用隐密分析方法,但其中存在两个局限性。其中之一是,它的隐密分析基础依赖一个重要的假设——测试样本点是相互邻近的,而本文提出以分形图像为载体,无论是载体图像还是含密图像不满足其假设,因此,也不能对所提出的隐藏方法成功进行隐密分析。另一个局限是,没有讨论所提出的隐密分析方法中一些参数的影响,如在测试图像中含密图像所占比例、最近邻k的数量。

信息隐藏领域至今没有证明其理论上是安全的,本文提出的方法也一样。尽管目前的隐密分析方法不能成功进行隐密分析,但存在两个方面破解途径:1)由于迭代函数系统生成分形图形时,多数采用的是仿射变换,而仿射变换参数的修改会使生成的分形植物、景物有差别,有经验的攻击者或许能根据这些差别,猜出隐藏者对那些参数进行了修改,再适当结合蛮力攻击,或许能测出仿射变换的部分直至全部参数值,估计出分形图像含有秘密信息。2)秘密信息嵌入时,要改变像素的位置,虽然位置改变很小,仅上下、左右或沿对角方向移动了一个像素位置,也会导致其像素值间的相关性有所改变,尽管改变很小,再借助别的特征辅助,这或许可以作为隐密分析一种方法。因此,在基于本文方法的隐藏过程中,应避免黑白像素改变太多,如不进行对角像素的交换,可以使改变的黑白像素减少,从而降低隐密分析成功的可能性。

4 结语

本文提出的信息隐藏算法与传统信息隐藏算法相比有两点不同:1)载体不同。本文方法的载体不是传统的自然图像,而是基于数学分形迭代生成的分形图形。2)隐藏方式不同。本文方法不对图形的像素值进行改变,只改变像素位置,这与绝大多数传统的图像信息隐藏方法是不同的。实验结果表明,本文方法具有较好的隐蔽性和较高的隐藏容量,此种方法目前没有隐密分析的方法,因此该方法具有抗隐密分析的能力。

此外,本文提出的方法有三方面的发展趋势:1)为增强隐蔽性,可利用分形迭代函数系统生成真实感的图像,不仅通过调整像素位置来隐藏秘密信息,还可以通过修改颜色来隐藏秘密信息。2)为增强抗破解的能力,充分研究迭代函数系统的规律,找到生成各种植物的映射关系,即仿射变换的参数,每次生成不同种类的植物,在秘密信息通信时形成类似“一次一密”的通信方式,增强抵抗被破解的能力。3)为增加隐藏容量,在分形图形生成过程中,当嵌入秘密信息0或1时,分别用不同的颜色表示分形生成的点,以使每一个点都能隐藏1比特秘密信息。这些也是下一步研究的主要内容。未来我们还将研究更多的分形图形生成方法,使信息隐藏的分形图形载体更丰富、更美观、更有意义,同时研究通过黑像素位置调整方式的不同编码隐藏不止1比特的信息,从而进一步提高信息隐藏的容量和其他安全性。

猜你喜欢
分形容量秘密
柞蚕茧系统分形研究
感受分形
水瓶的容量
分形理论在经济管理中的巧妙应用
分形
愿望树的秘密(二)
小桶装水
我心中的秘密
第十三章 进化的秘密!
鼹鼠牌游乐场