基于汉明码和Logistic-正弦映射的图像隐写

2018-08-22 02:13刘应红孙树亮
郑州大学学报(理学版) 2018年3期
关键词:码字正弦载体

刘应红, 孙树亮

(福建师范大学福清分校 电子与信息工程学院 福建 福清 350300)

0 引言

随着科技的发展,人们对于信息的安全也越来越重视.隐写术和密码学是信息安全的两大技术,各有不同的应用范围,将两者相结合,能够有效地提高信息的安全性.

汉明码由于编码简单,因此得到广泛的应用.近年来,人们对边缘检测和汉明码的研究已经取得了一些显著成果.文献[1]提出了一种基于Canny边缘检测的自适应空域检测算法,该算法对常见的隐写分析方法具有鲁棒性.文献[2]提出了基于2k修正和霍夫曼编码的图像隐写,该方法能够有效地增强隐写图像的视觉效果.文献[3]提出的算法既具有很高的隐藏能力,又具有很好的隐藏效率.文献[4]提出了使用(7,4)汉明码对压缩图像进行信息隐藏,把信息隐藏在使用动量绝对值区块截短码进行压缩的图像中.文献[5]提出了使用(15,11)汉明码在半色调图像中进行信息隐藏的方法.

1 Logistic-正弦映射

1.1 Logistic映射

Logistic映射是最简单常用的一维混沌映射.表达式为xn+1=L(μ,xn)=μxn(1-xn),参数μ的取值范围是[3.57, 4].但在这个区间内,也并不是所有值都能使系统处于混沌状态.Logistic 映射的李雅普诺夫指数较小,而且生成的混沌序列分布并不均匀,这些都是Logistic 映射存在的不足之处.

1.2 正弦映射

xn+1=S(μ,xn)=μsin (πxn)/4,

(1)

当式(1)的参数μ在[3.48, 4]范围内,正弦映射系统处于混沌状态.其混沌特性与Logistic 映射类似,同Logistic映射一样,具有有限的参数范围和生成的混沌序列分布不均匀的缺点.

1.3 Logistic-正弦映射

xn+1=(L(μ,xn)+S((4-μ),xn))mod 1=(μxn(1-xn)+(4-μ)sin (πxn)/4)mod 1,

(2)

当式(2)的参数μ在(0, 4]范围内,系统处于混沌状态.与Logistic映射和正弦映射相比,Logistic-正弦映射具有更大的参数空间,混沌序列分布得更加均匀,同时具有更大的李雅普诺夫指数[6],因此更适合混沌图像加密的需要.

2 汉明码

汉明码是由Richard Hamming[7]提出的,它是一种能够检测并修正误差的块码.在所有汉明码中,(7, 4) 汉明码的应用最为广泛.它把4 bit的数据位(m1,m2,m3,m4) 与3 bit的校验位(p1,p2,p3) 组合在一起成为7 bit的码字.每一bit的校验位是由相应的数据位决定的.汉明码是通过校验位与相应的数据位是否形成偶校验来检测是否存在误差的[8].检测过程又称为校验,所用公式为

2r-1≥n或者2r-1≥k+r,

其中:n是码字的长度;k是数据位的长度;r是校验位的长度,r≥2.

表1显示了数据位和校验位之间的关系,这里“√”表示相应的校验位和数据位之间存在关系.m1、m2、m3和m4是数据位,p1、p2和p3是校验位.

校验位能用相应的数据位产生,

p1=m1⨁m2⨁m4,p2=m1⨁m3⨁m4,p3=m2⨁m3⨁m4,

“⨁”表示异或操作.

对于(7, 4) 汉明码来说,相应的数据位和校验位的关系如表2所示.

表2 (7, 4)汉明码的码字

把数据位与校验位组合在一起形成码字的方法是把校验位放在2i位置上,例如p1p2m1p3m2m3m4.

在使用汉明码进行编码的时候,需要用到校验矩阵H和产生矩阵G.矩阵G用来编码,矩阵H用来校验数据.在发送端,每4 bit数据乘以编码矩阵G,并把结果对2求模,得到码字R,所用公式为

R=(M×G) mod 2,

(4)

其中:M=(m1,m2,m3,m4);

在接收端,为了校验收到的7 bit码字R(数据位加上校验位) 是否正确,将向量R乘以校验矩阵H的转置矩阵,结果对2求模,如式

Z=(R×HT) mod 2,

(5)

其中:

向量Z由3 bit向量(z1,z2,z3)组成.如果消息传输正确,则向量Z为0,即(0, 0, 0).否则,相应的位变为1,那么该消息就需要进行错误检测.

3 秘密信息隐藏算法

图1 信息隐藏过程框图Fig.1 Diagram of data hiding process

信息隐藏的过程如图1所示.具体算法步骤如下:

1) 读取载体图像和密码图像.

2) 用Canny边缘检测算子检测载体图像边缘.

3) 用Logistic-正弦映射产生密钥1、密钥2和密钥3.

4) 用密钥1置乱边界像素.

5) 秘密图像转换为1D比特流.

6) 用密钥2置乱1D比特流.

7) 用(7, 4) 汉明码编码1D比特流,并与用密钥3产生的随机数进行异或操作.

8) 比特流嵌入置乱后的边缘像素.

9) 用2k修正算法提高图像的视觉效果.

10) 最终获得隐写图像.

信息提取的过程是上述过程的逆过程.

4 实验过程和结果

本文的实验是在Windows 7下用Matlab 10实现的.为了衡量提出算法的效果,采用峰值信噪比(PSNR)、结构化的图像质量评价方法[9]和隐藏能力来度量.

为了计算PSNR,首先要计算均方误差(MSE),公式为

其中:I是载体图像;S是隐写图像;M和N是载体图像的大小.PSNR值计算公式为

(6)

信息隐藏能力Capacity用每个像素能够隐藏的bit数来表示. 本文所提出的方法与文献[10]以及最低3位有效位方法(LSB-3)进行比较.载体图像大小是512×512 的灰度图像,秘密图像大小是128×128的灰度图像.图2显示了应用Canny检测算子得出的载体图像的边缘.高斯滤波器的标准差为1.5,低门限设定为5,高门限设为40.本文把秘密信息隐藏在3种方法的边缘像素中.尽管负载较其他方法小,但是PSNR和Q值较大.从表3可见,本文的方法比LSB-3和文献[10]的方法更好.

图3显示了载体图像、隐写图像及其对应的直方图,同时显示出秘密图像及其提取的秘密图像.

图2 Canny算子检测的载体边缘Fig.2 Edge images with Canny detector

载体图像LSB-3文献[10]本文方法CameramenCapacity/bit36 75537 21638 147PSNR/dB51.457 155.670 363.370 2Q0.986 40.994 70.999 9PeppersCapacity/bit33 18634 24535 928PSNR/dB51.743 756.521 863.489 9Q0.988 40.995 70.999 8ManCapacity/bit31 14535 74235 931PSNR/dB51.963 155.837 462.721 8Q0.990 70.995 30.999 5LenaCapacity/bit36 96837 32638 453PSNR/dB51.246 555.542 963.463 6Q0.982 60.992 50.999 9

图3 隐写图像和提取的秘密图像Fig.3 Stego image and retrieved image

5 结论

本文提出了基于Logistic-正弦映射和汉明码的新型信息隐藏算法.由于人眼对平滑区域比对边缘区域更加敏感,因此秘密信息仅仅隐藏在载体的边缘像素中.用汉明码对秘密信息进行编码.利用Logistic-正弦映射生成3个密钥,最后用2k修正法提高隐写图像的视觉效果.实验证明本文提出的算法具有更好的安全性、有效性和鲁棒性.

猜你喜欢
码字正弦载体
创新举措强载体 为侨服务加速跑
正弦、余弦定理的应用
坚持以活动为载体有效拓展港澳台海外统战工作
放 下
数据链系统中软扩频码的优选及应用
“美”在二倍角正弦公式中的应用
放下
利用正弦定理解决拓展问题
正弦、余弦定理在三角形中的应用
码 字