任志敏,曾文军,张 良
(1.常州纺织服装职业技术学院机电学院,江苏 常州 213164;2.武进区信息中心,江苏 常州 213159)
随着信息技术的不断发展,数以千万计的海量数据通过互联网被下载、上传、操作和交换,在给人们生产、生活带来便利的同时,信息安全问题也越来越突出。传统上,人们通过密码保护对数据进行打乱以改变其含义的方式实现信息安全传输,与密码保护不同的是,信息隐藏是把数据隐藏在文本、音频、图片或视频等文件中,使得除了发送者和接收者之外的任何人都看不到隐藏信息,通过隐藏数据的存在实现数据被保护的目的[1]。与信息隐藏相关的操作过程主要包括[2]:
1) 宿主文件(cover),用于嵌入隐藏信息的原始文件,若宿主文件是图片,则称为宿主图片。
2) 隐写文件(stego),嵌入了隐藏信息的输出文件,若隐写文件为图片,则称为隐写图片。
3) 隐藏信息(message),需要嵌入或传输的数据。
4) 数据嵌入过程(Embedding Processing),把隐藏数据嵌入到宿主文件的过程,生成隐写文件stego。
5) 数据提取过程(Extraction Processing),把数据从隐写文件提取的过程,获取隐藏信息message。
评价一种信息隐藏方法优劣的标准主要包括三个方面[3]:
1) 嵌入隐藏信息的数据量多少。
2) 在执行了一系列的压缩、旋转、裁剪等操作后,隐藏信息是否仍旧未被破坏。
3) 隐写文件的质量,HVS(human visual system),即人眼对隐写文件的感知。
边缘是一副图片的某一部分区别两个区域的轮廓边界。边缘检测是图像处理和机器视觉及其重要的处理方式和手段,经典的边缘检测算法有Sobel,Laplacian,Canny等。其中Canny边缘检测算法是由John F.Canny在1986年提出的,因其具有优异的定位和检测而广受欢迎[5-7]。Canny边缘检测算法的典型步骤如下:
1) 消除噪声,图像首先通过高斯滤波器掩码进行平滑处理。将图像分成与5×5高斯核大小相等的数据块,并进行卷积运算。
2) 确定每个像素的梯度大小和梯度方向。
3) 对梯度幅值进行非极大值抑制,如果某个像素的梯度幅值大于梯度方向周边像素的梯度幅值,标记该像素点为边缘。否则,标记为非边缘。
4) 通过双阈值去除一些弱边缘。
采用Canny边缘检测算法处理的图片如图1所示。
图1 Canny边缘检测算法处理的图片
图1(a)为灰度图,大小为256×256,总计65536个像素。图1(b)为经过Canny边缘检测算法处理的图片,其中低阈值为50,高阈值为150,经过计算,总计4554个边缘像素。
基于Canny边缘检测算法的信息隐藏方法包括两个部分[8],一是嵌入过程,二是提取过程。
隐藏信息的嵌入过程如图2所示。
图2 隐藏信息嵌入过程
图2所示的信息嵌入过程一共分为3个阶段。
1) 对灰度宿主图片Ⅰ采用Canny算法进行边缘处理,从而获得边缘轮廓二值化图片Ⅰ′。
2) 把图片Ⅰ′分成若干个块,每个块包括n个像素点,并标记为P1,P2,P3,……,Pn。其中P1的二进制位存储后面(n-1)个像素点的边缘状态,若为边缘标记为1,否则标记为0。比如设置n=3,则该块有3个像素点,若P1和P3为边缘,P2为非边缘,则P1的LSB的最低两位标记为‘01’。对于像素点是否是边缘由第一阶段经过Canny算子计算得来。考虑到P1是用来标记后续像素点的边缘状态,为了平衡整个隐写图片的质量和嵌入的数据量,根据后续实验结果,n的值宜采用3,4或5。
图3 隐藏信息嵌入过程
隐藏信息的提取过程分为两个阶段。
实验图片选择256×256的灰度图片。评价隐写图片的质量主要考虑两个方面,一是PSNR(peak signal-to-noise ratio),PSNR即峰值信噪比,用于衡量宿主图片与隐写图片之间的差异。二是HVS。PSNR的计算公式为:
其中MSE(Mean Square Error)表示隐写图片与宿主图片的均方误差。如宿主图片的宽度用W表示,高度用H表示,则MSE的计算公式为:
图4 基于Canny边缘检测的信息隐藏方法生成的隐写图片
图4中n=2,把宿主图片每2个像素分割成一块。x=1,在非边缘的像素点的嵌入1位,y=1,2,……,6,在边缘像素点嵌入1位~6位。从图4中可以看出,虽然在y=6的时候PSNR值有所下降,但是依旧保持了良好的HVS。
图5展示了采用经典的LSB算法嵌入隐藏信息后的隐藏图片,为了比较两种方法的优劣性,在嵌入相同数据量的前提下,在对应像素点嵌入1位~6位。对比两种方法生成的隐写图片,可以看出:1) 在嵌入相同数据量的前期下,基于Canny边缘检测的信息隐藏方法生成的隐写图片的PSNR值高于经典LSB算法生成的隐写图片,即与宿主图片更接近。2) 从HVS的角度看,采用经典LSB算法,嵌入1位~3位还是感觉不出与宿主图片的差异,嵌入4位~6位是无法接受的,将会产生大量噪声。
图5 基于经典的LSB信息隐藏方法生成的隐写图片
综上所述,比起经典的LSB信息隐藏算法,基于Canny边缘检测的信息隐藏方法在嵌入数据量规模,PSNR值,生成的隐写图片质量等方面更优。