毕业设计(论文)-融文件于图像的伪装.doc_第1页
毕业设计(论文)-融文件于图像的伪装.doc_第2页
毕业设计(论文)-融文件于图像的伪装.doc_第3页
毕业设计(论文)-融文件于图像的伪装.doc_第4页
毕业设计(论文)-融文件于图像的伪装.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

融文件于图像的伪装 摘要:研究图像对象数据的保存机制和获取其完整图像数据的方法,以文档中图像对象作为秘密信息的直接载体,在基于lsb 的图像信息隐藏算法结合matbl。作为信息隐藏载体的算法相比,该算法的隐藏随机性大,隐藏信息量大,运算效率更高和稳定性越强。 关键词:文件;图像;信息隐藏;lsb 算法1.概述 随着internet 的迅速发展和广泛应用,信息安全问题日益突出,信息隐藏技术作为一种新兴技术,已成为信息安全领域的一个重要组成部分。目前,以word 文档为信息载体的信息隐藏技术有以文献1为代表的通过垂直移动行距、水平调整字距、调整文字特性等来实现信息嵌入的信息隐藏技术。以数字图像为信息载体的信息隐藏技术主要是以lsb 为基础的改进型lsb 信息隐藏方法。文献2较早提出针对lsb 替换信息伪装的隐写算法。文献3给出一种新的图像隐藏方案,使得隐藏秘密信息后的图像既包含隐藏信息又包含密钥信息。文献4提出一种用载体图像像素值各位与秘密信息位的异或运算对秘密信息进行加密后嵌入低位的改进lsb 算法。基于lsb 的图像信息隐藏算法lsb(leastsignificant bits)算法:将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。 2.1lsb算法的基本原理: 对空域的lsb做替换,用来替换lsb的序列就是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。由于水印信息嵌入的位置是lsb,为了满足水印的不可见性,允许嵌入的水印强度不可能太高。然而针对空域的各种处理,如游程编码前的预处理,会对不显著分量进行一定的压缩,所以lsb算法对这些操作很敏感。因此lsb算法最初是用于脆弱性水印的。 lsb算法基本步骤: (1) 将得到的隐藏有秘密信息的十进制像素值转换为二进制数据; (2) 用二进制秘密信息中的每一比特信息替换与之相对应的载体数据的最低有效位; (3) 将得到的含秘密信息的二进制数据转换为十进制像素值,从而获得含秘密信息的图像。对于本文提出的信息隐藏技术,首先要确定信息载体图像文件格式,然后确定信息的嵌入位置和嵌入方式。确保载秘图像在插入文档后以及从文档中取出的载秘图像能保持图像数据的完整性。2.2信息载体图像选择 根据数字图像信息隐藏技术的要求,信息载体图像可以根据如下情况选择:(1)如载体图像原是无损格式,则可以直接用原格式图像,可以转换成png 格式图像,也可以从文档中生成web格式导出的对应png 图像文件。载密图像一定要保存为无损格式文件。(2)如载体图像是jpg 有损格式,或文档以web 格式导出的图像是jpg 格式,或采用基于lsb 的信息隐藏算法,则先将jpg 格式转为无损格式,然后在无损格式图像嵌入秘密信息,最后载密图像要保存为无损格式文件。如采用dct 变换域信息隐藏算法,则可以使用jpg 格式为载体图像和载密图像格式。2.3 信息嵌入位置确定 lsb 算法的可靠性和安全性主要依赖隐藏位置的选择、隐藏的信息加密和信息量。目前主要通过2 类方法确定隐藏位置:序贯法和伪随机序列法。本文采用伪随机序列法,它可以使秘密信息均匀分布在载体图像内,减少视觉变化和统计特性的变化。确定信息嵌入的位置,实际上是确定要在载体图像的哪一个像素点上嵌入秘密信息。设载体图像的容量为total=mn byte,秘密信息的长度为count bit,bits 为每个字节中嵌入秘密信息的总位数,要嵌入总像素为count/bits。设以密钥key 产生服从1, total整数分布的混沌随机序列randno0, randno1, ,randnototol-1(totalcount/bits),取randnocount/bits-1之前的序列值为信息嵌入的像素位置。第i 个要嵌入信息的像素位置为 imbedding_address=randnoi在mn 像素矩阵a(row, col)中的位置为 row randnoi 1col=randnoi mod n在上式计算后,若col=0,则row=row-1, col=n。2.4 嵌入与提取算法信息隐藏包括信息嵌入算法和信息提取算法。对于秘密信息的嵌入过程,首先选择载体图像嵌入的像素点,然后直接或经某种运算在这些像素点上执行替换或修改操作。对于提取过程,首先要找出载体图像中隐藏时使用的像素序列,然后提取信息,最后按嵌入时顺序排列,便可重构出秘密信息。本文在文献4的基础上,提出一种引入自定义加密函数的更为安全的基于异或运算(xor)的lsb 算法。2.5. lsb编解码基本原理rohc头标压缩机制使用最低有效位lsb (least significant bits)方案来对那些变化较少的分组头标域进行编码;这种编码方案使用尽量少的低比特位来表达原始值。在rohc中,一般并不发送原始的头标域,而是传输域中较少的k(ko)个lsb编码比特。当收到这k个比特时,解压方将参照在此之前收到的一个参考值来恢复编码前的原始值。为保证解码准确无误,lsb 编码、解码的取值区间必须保留原始值的信息,并保证在此区间上,原始值是唯一一个与这k个比特相对应的域值。根据这两个条件,该取值区间可以用如下函数表示: (p为整数)公式中的函数具有这样的特性:任意的k个lsb编码比特将在中唯一确定一个值。函数中引入参数p是为了使该取值区间可以针对域值的特点进行适当的平移,从而使编码方法更加有效。如对那些总是增长的域值,p可置为-l,这时取值区间为:。2.6 lsb压缩、解压缩基本过程应用于rohc中的一个lsb压缩(解压缩)的过程如下:(1)选取参考值: 压缩方使用最新一个带crc保护的待压缩值作为压缩参考值; 解压方使用最新一个解压正确并通过crc验证的值作为解压参考值;(2)当压缩一个值v时,压缩方寻找使v落入编码取值区间中的最小的k值,定义这个过程为函数;(3)当收到m个lsb编码值时,解压方从解码取值区间中挑选这样的值作为解压值:其lsb编码和收到的m个lsb编码相吻合。2.7 基于窗口的lsb编码基于窗口的lsb编码(wlsb)是一种支持tcp协议rohc 编码方案,它利用差值来进行编码。使用tcp拥塞控制来确定哪个分组已经被收到。基于窗口的lsb编码可以获得更大的鲁棒性。由于解压方总是使用收到的最新一个通过crc校验的值作为参考值,压缩方便可维持一个滑动窗,这个滑动窗包含了候选的值,初始化为空。以下是压缩方对这个滑动窗的操作:(1)发送一个带有crc保护的v值(压缩或未被压缩)后,压缩方把此值加入滑动窗中。(2)对每个待压缩的v值,压缩方按下式选择lsb编码比特数k:k = max(,)其中和是滑动窗中的最小值和最大值。(3)当压缩方确信某个v值以及比这个v更早的任何值,再也不会被解压方作为解压参考值时,压缩方就把这些值(包括v)从窗中移除。2.8.wlsb压缩算法的fpga实现分析wlsb压缩算法可知,该算法的实现主要要用到以下几个函数,其函数名和及其实现的功能如下表所示:函数功能struct c_wlsb *c_create_wlsb()创建wlsb压缩算法的对象void c_destroy_wlsb()销毁所创建的wlsb压缩算法对象void c_add_wlsb()为所创建的对象的变量赋值void f()计算保留原始值信息的编解码取值区间int g()计算使待压缩数据v在上述区间的k的最小取值int c_get_k_wlsb()计算窗基算法时的上述k值void c_ack_sn_wlsb()查找sn所标记的窗入口windowivoid c_ack_time_wlsb()查找time所标记的窗入口windowjvoid c_ack_remove() 删除标记窗入口以及之前的所有窗入口int c_sum_wlsb()计算当前窗口中所有value的总和int c_mean_wlsb()计算当前窗口中所有value的平均值void print_wlsb_stats()打印当前wlsb压缩算法的对象的某些变量的值考虑到fpga不适宜做乘方运算,实际中,可以用下式来计算k的值:k=max(length(v),length(v)其中为异或运算符,length 为取二进制编码长度值函数。通过对wlsb压缩和解压缩算法和每个函数的分析,我们知道,可以采用如下的逻辑示意图来实现: 参考值滑动窗模块实现上述c_add_wlsb(),c_ack_sn_wlsb()和c_ack_remove()函数的功能,在该模块中可以定义一个存储空间windown,用于存所有可能的参考值,当解压缩算法采用如下所示的逻辑示意图来实现: 使用fpga来实现wlsb压缩和解压缩算法时,其各个模块的示意图如下所示: 其中,参考值滑动窗模块用于接收待编码的数据流v和参考值,窗处理模块用于窗的管理,包括计算k值,计算编解码区间,判断v值是否属于编解码区间,是则将计算出输出编码值交给发送模块发送,否则更新重新计算。解压模块根据从发送模块接收到的数据解压出原始的v的值。算法1 嵌入算法设x7, x6, x5, x4, x3, x2, x1, x0 为载体图像嵌入信息的像素点i 的像素值对应的8 个二进制位,sp 为第p 位秘密信息,自定义8 bit 二进制数加密函数f=f(i) mod 256,f 对应的8 个二进制数位为f7, f6, f5, f4, f3, f2, f1, f0。设信息嵌入位为x1 和x0,则秘密信息的映射值为x0=x2x4x6f0f2f4f6spx1=x3x5x7f1f3f5f7sp+1算法2 提取算法 提取运算是嵌入的逆运算。条件同算法1。根据xor 运算性质,隐藏到某像素的实际信息值为sp=x0x2x4x6f0f2f4f6sp+1=x1x3x5x7f1f3f5f7把隐藏有秘密信息文档图像的文档文件另存为web 格式,取出信息载体图像,使用提取算法即可取出秘密信息。本算法由像素部分位、秘密信息位和部分构造函数f 的8 bit 二进制数位组合xor 运算共同决定像素低位的修改值,即秘密信息的映射值。在信息嵌入图像载体后,可以插入原文档按原样排版,一切与原文档一样.嵌入文档流程图如下:水印信息密钥载体图片水印图片加密算法 图1 数字水印的嵌入过程水印图片密钥水印信息解密算法 图2 数字水印的提取过程图1是数字水印的嵌入过程,加入密钥可以提高数字水印的隐蔽性、抗攻击性,而并非是必须的。根据用途不同,嵌入的水印有些是需要还原的,而有些则只需验证水印的存在性,前者需要数字水印的提取算法,而图2需要数字水印的检测算法,根据具体的水印算法,嵌入或提取的过程可能有所不同。数字水印技术可以从不同的角度进行分类,因此有多种分类方法。按数字水印的特性可分为鲁捧数字水印和脆弱数字水印。鲁棒数字水印主要用于标识数字媒体信息的版权信息,它要求嵌入的水印能够抵抗对媒体的常规编辑和恶意攻击,在对媒体进行如:裁剪、旋转、缩放、压缩的变换后水印信息不受到较大损害。而脆弱水印相反,它对攻击敏感,可以根据脆弱水印的状态判断原始信息是否被修改过。按数字水印所附载的媒体可分为图像水印、音频水印、视频水印和文本水印等。每一种数字化的媒体都有相应的水印算法,这也造成了数字水印算法的复杂性。按数字水印隐藏的位置划分可以分为空 (时)域数字水印、频域数字水印、时频域数字水印和时间度数字水印。原始信息通常在空域或者时域上表示,根据信号处理理论有多种变换将信号变化到另外的域上,每一种域上都可以嵌入数字水 印,也就产生了相应的数字水印算法。按数字水印的可见性可以分为可见数字水印和非可见数字水印。可见数字水印通常是将公司表示叠加到原始图像上,算法比较简单,也有相应的应用软件,如undreamt marking technologies公司的photo watermark。而不可见数字水印要求嵌入的水印是不能被人的视觉系统感知的,其算法相对复杂。关于数字水印算法的分类还有很多不同的分类方法,比如按用途划分,按检测过程划分等,限于篇幅,本文仅介绍了较为常见的几种分类。这里要嵌入一个二值的图像。然后,适当调整数字水印图像的大小和比特位数,以适应数字水 印图像数据量的要求。最后,对原始图像中要使用的最低位置0,再将数字水印数据放人原始图像的最低位即可。下面通过matlab 2010b2实现这一算法这里选用一幅300400像素,256灰度的图像,数字水印用“衡阳师范学院”的字样的二值图像。置0的方法是调用模2函数mod(a,2),将得到的数值与原水印相减,从而得到最低位为0的图片。(使用两位最低有效位的话则用模4函数mod(a,4)然后相减)。因为这里加入了噪声干扰,所以对水印和原始图片进行了重编码,首先将原图片扩大两倍,并且使用两位最低有效位然后图片相加得到加入水印的图像。然后对图片加入噪声得到输出图像。程序如下:clear allclose all%=% read image%=mat = imread(1.jpg);mbt = imread(2.bmp);imgread = rgb2gray(mat);mbt = uint8(mbt);maa,mab = size(imgread);%=% progress the image%=for i=1:1:maafor j=1:1:mabimgread(i,j)=imgread(i,j)-mod(imgread(i,j),4);endend%=% enlarge the image%=for j=1:1:mabfor i=1:1:maama(2*i-1,2*j-1) = imgread(i,j);ma(2*i,2*j-1) = imgread(i,j); ma(2*i-1,2*j) = imgread(i,j);ma(2*i,2*j) = imgread(i,j);mb(2*i-1,2*j-1) = mbt(i,j);mb(2*i,2*j-1) = mbt(i,j);ma(2*i,2*j) = imgread(i,j); mb(2*i-1,2*j-1) = mbt(i,j);mb(2*i,2*j-1) = mbt(i,j);mb(2*i-1,2*j) = mbt(i,j);mb(2*i,2*j) = mbt(i,j); endendma = ma+mb*3;%=% attack%=noise = normrnd(0,0.3,2*maa,2*mab);ma = double(ma);ma = ma+ noise;ma = uint8(ma);figure(1);subplot(2,2,1);imshow(imgread);subplot(2,2,2);imshow(mbt,0,1);subplot(2,2,3);imshow(ma);得到的图形如下所示: 图3 原图件 衡阳师范学院 图4 水印图片 图5 加入水印的图件 实验与算法性能分析 lsb算法简单,实现容易,同时可以保证数字水印的不可见性,由于可以在最低位的每个像素上都插人数字水印信息,因此有较大的信息嵌入量。lsb算法一般嵌入图像的最低一位或者两位,如果嵌入的位数太多,则会被人眼察觉到。但是由于数字水印位于图像的不重要像素位上,因此很容易被图像过滤、量化和几何型变等操作破坏,以致无法恢复数字水印。针对基本的lsb算法的缺点,一些研究者也提出了一些改进的算法,如奇偶标识位隐藏算法、索引数据链隐藏算法等,这些算 法能增强数字水印的隐蔽性。本文算法实验结果 本文实验结果的正确性是由文档图像数据保存机制和本文信息隐藏算法的正确性共同保证的。本文的信息隐藏算法是安全的,其原因是混沌随机序列是安全的,自定义构造8 bit 二进制数加密函数f(x)是不公开的。结束语本文提出的信息隐藏算法具有如下特点:(1) 以文档中图像作为秘密信息的直接载体可以用文档中的图像隐藏文档中的文字信息,以防文字信息被篡改;(2) 由于文档图像数据的完整性保存机制,因此无论文档以doc, docx, ppt, pptx,pps 和ppsx 中任何格式转存,以及在文档中任意编辑,都能够从载密图像中完整取出秘密信息;(3) 由于文档中的图像通常是缩放的,因此视觉效果差于原图效果,利用这个特性可以通过加大像素值的改变提高信息嵌入量;(4) 由于文档结构特点,因此信息隐藏量大,可在文档中实现信息分存。理论分析和实验结果证明了本文提出的信息隐藏技术的实用性和有效性。下一步研究方向是本文算法在政府招投标系统中的应用研究与推广。参考文献:1 kong jiejun, hong xiaoyan. anodr: anonymous on demandrouting with untraceable routes for mobile ad-hocnetworksc/proceedings of the 4th acm internationalsymposium on mobile ad hoc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论