资源描述:
《基于图像位平面级的信息隐藏算法的研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2006年12月四川大学学报(自然科学版)Dec.2006第43卷第6期JournalofSichuanUniversity(NaturalScienceEdition)Vol.43No.6文章编号:049026756(2006)0621215205基于图像位平面级的信息隐藏算法的研究123尹德辉,李炳法,唐 燕(1.泸州医学院数学与信息技术部,泸州646000;2.四川大学计算机学院,成都610064;3.四川电视大学,成都610073)摘要:根据图像的灰度值表示范围,应用位平面分解的方法,将其转化为若干个二值图像,将需要隐藏的图像进行
2、置乱后,用其替换某一个位平面,而隐藏到图像中去.提取时,将该位平面提取出来,并进行逆置乱变换,即可恢复隐藏的二值图像.该算法的特点是隐藏效果好,提取时不需要原始图像.在置乱时,以一维置乱算法为基础,提出了两种新的置乱算法,算法可适应用AM×N(M≠N)数据矩阵.除置乱效果好外,算法安全性也很高.关键词:位平面;置乱;信息隐藏中图分类号:TP392 文献标识码:A随着Internet和多媒体技术的迅速发展,数字媒体图像、音频、视频的应用越来越广泛,它在给人们带来极大便利的同时,也带来了不少的副作用,信息安全和版权保护问题日益突出.如何有
3、效地防范对信息的非法窃取和传播,是信息管理和保护中的一个重要问题.数字隐藏技术为这一问题提供了一个有效的解决方案,由于数字图像与一般的文字相比,可以携带更多的信息量,利用图像本身的这一数据特性,常把需隐蔽的数字信息隐藏在图像之中,因而图像隐藏近年来成为研究热点.研究学者提出了不少关于图像数字[1~5]隐藏的设计方案.为提高隐藏信息的安全性,在隐藏前需对其进行置乱操作,而目前的许多置乱算法不适用于AM×N(M≠N)数据矩阵.为克服其局限性,我们提出了两种新的图像置乱算法:算法1在一维变换的基础上,推广到二维变换,使其可适用于任意大小且(M≠
4、N)数据矩阵;算法2将AM×N数据矩阵视作M′×N′的块元素矩阵,可采用算法1进行置乱变换,而每个块,由于是大小为l×l的方阵,因此可采用二维方阵置乱算法进行置乱.由于分块是随机的,因此该算法除置乱效果好外,安全性也很高.在隐藏信息时,本文根据图像的灰度值表示范围,应用位平面分解的方法,将其转化为若干个二值图像,将需要隐藏的信息进行置乱,用其替换分级以后的某一个位平面.提取时,将该位平面提取出来,并进行逆置乱变换,即可恢复隐藏的二值图像.算法的特点是隐藏效果好,提取时不需要原始图像.1 图像分级的理论一幅灰度图像,由于灰度值很大,往往不利
5、于信息的隐藏,可考虑用位平面分解的方法,将其转化为若干个二值图像,再做进一步的处理.其基本原理为:对一幅用多个比特表示其灰度值的图像来说,其中的每一个比特平面可看作表示一个二值的平面,亦称位平面,借助图像的位平面表示形式,可以将一个灰度图像分解为多个二值图像.设灰度图像为AN×N,灰度级为表示灰度的取值范围所用的二进制位的位数,设01l-1灰度级为0,1,2,⋯,l-1,每个灰度值均可表示为二进制形式:a0·2+a1·2+⋯al-1·2.如一幅其灰收稿日期:2005206226基金项目:四川省社会发展重点科技攻关项目(03GG006200
6、2)作者简介:尹德辉(1963-),男,教授,主要从事计算机数字水印与图像处理方面的研究.1216四川大学学报(自然科学版)第43卷度用8比特表示的图像,l=8,灰度值的变化范围为0~255,其灰度级为0,1,2,⋯,7,因此有8个位平面.2 置乱算法目前许多的置乱算法,仅仅适合于对数据方阵置乱操作,而不适合于AM×N(M≠N)数据矩阵,为克服算法的局限性,我们提出了两种新的图像置乱算法.2.1 一维置乱变换设A[0,1,⋯,M-1],P与M互素,作如下置乱:(1)正变换:B(i)=A((i·p)modM)i=0,1,2,⋯,M-1A=B
7、当P与M互素时,其变换是一一映射的.(2)逆变换:B((i·p)modM)=A(i)i=0,1,2,⋯,M-1A=B以上算法可连续作多次,达到一维置乱的目的.2.2 二维置乱变换算法1:根据一维置乱算法的原理,可构造出以下的二维置乱算法:(1)正变换:intx=1,y=1;foru=1:Tforx=1:Mfory=1:N{j=[(x3M+y)3p]mod(M×N)x’=fix(j/M);y’=jmodM;B(x’,y’)=A(x,y)//将(x,y)→(x′,y′)}endendA=Bend当p与(M×N)互素时,其变换是一一映射的.其中
8、A是源数据矩阵,B是与A同样大小用于存取中间结果的临时数据矩阵,T表示置乱的次数,mod()为求模函数,fix()为取整函数.(2)逆变换:逆变换的过程与正变换非常相似,只是修改语句B(x′,