《图像数字水印技术在信息安全中的应用...doc》由会员分享,可在线阅读,更多相关《图像数字水印技术在信息安全中的应用...doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date图像数字水印技术在信息安全中的应用.西安建筑科技大学华清学院课程设计(论文)课程名称:图像数字水印技术在信息安全中的应用院 (系): 信息与控制工程系 专业班级: 通信1102 姓 名: 党 浩 学 号: 201106020211 2014年 12 月 17 日西安建筑科技大学华清学院课程设计(论文)任务书专业班级: 通信1102班 学生姓名: 党 浩 指导教师(签名
2、): 一、 课程设计(论文)题目图像水印技术的在信息安全中的应用二、本次课程设计(论文)应达到的目的通过课程设计让学生较深入地理解信息网技术在通信工程专业系列课程中的地位、作用和意义;加深对基本概念和基本原理的理解和应用,并能够用所学知识分析、初步设计和解决与网络应用相关的现实技术问题,在实践中能够举一反三。 三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 主要内容:1)掌握图像处理的基本方法和原理2) 掌握水印技术的相关概念及水印技术在信息安全中应用原理;要求:1) 掌握图像水印算法;2) 写出相应算法的MATLAB程序,并给出仿真结果;四、应收集的资料及
3、主要参考文献: 1) 数字图像处理,王慧琴,北京邮电大学出版社;2) 数字信号处理,朱光明译,机械工业出版社3) MATLAB数字信号处理,王彬,机械工业出版社五、审核批准意见教研室主任(签字) -目 录摘 要3第一章 绪 论4第二章图像数字水印技术的基本原理及算法52.1图像数字水印的基本原理52.1.1水印的生成52.1.2 水印的嵌入52.1.3 水印的提取和检测62.1.4 仿真实验结果7 2.1.5 水印的评价标准.82.2图像数字水印具备的特点92.3图像数字水印算法10第三章MATLAB在图像数字水印技术中的应用133.1 MATLAB图像处理函数简介153.2 MATLAB在水
4、印预处理中的应用153.3 MATLAB在图像数字水印实现中实用、高效的体现17参考文献19 内容摘要 本文重点研究数字媒体信息隐藏技术的理论与方法,介绍了数字水印的研究背景、基本原理、应用领域以及当前国内外的发展状况。本论文结合数字水印技术的相关知识,讨论了如下问题:(1)数字水印系统模型。(2)数字水印的基本要求。(3)数字水印技术的应用前景。(4)数字水印的分类,包括各类水印的基本概念,相关算法、性能及发展趋势的分析与讨论。(5)数字水印的关键技术。(6)MATLAB在图像数字水印技术中的应用关键词: 数字水印 信息隐藏 版权保护 第一章 绪 论随着数字媒体技术和Internet技术的快
5、速发展,信息媒体的数字化为信息的存取提供了极大的便利性,同时也显著提高了信息表达的效率和准确性。Internet的普及又为数字信息在世界范围内的迅速传递开辟了便捷的途径。特别是随着计算机网络通讯技术的发达,数据的交换和传输变成了一个相对简单的过程。现在,数字音频、数字图像和数字视频等各种数字作品在网络上的发布比比皆是。人们借助于计算机、数字扫描仪、打印机等电子设备可以方便、迅速地将数字信息传输到所期望的地方,数字信息存储与传输技术的不断进步,带动了数字媒体应用的飞快发展。然而,开放的网络环境和便捷的信息处理技术,也导致信息安全和数字作品版权保护的问题日趋严重,这些数字形式的文件或作品使有恶意的
6、个人和团体在没有得到作品所有者的许可下拷贝和传播有版权的内容,例如,盗版者利用便利的网络信息制造出和原版一样复制品来获取暴利;一些重要的文件信息遭到篡改伪造和恶意攻击等等。这一系列便于我们使用的数字化特性所带来的负面效应,已成为信息产业健康、持续发展的一大障碍。对数字化信息产品实施有效的版权保护,成为迫在眉睫的研究课题。数字水印技术是信息隐藏技术研究领域的重要分支,作为传统加密技术的有效补充,近年来引起人们的高度重视,被认为是解决上述问题的最具潜力的技术之一,已成为信息安全领域的一个研究热点。在多媒体信息中加入数字水印可以确认版权所有者、认证多媒体信息来源的真实性、识别购买者、提供有关数字内容
7、的其它附加信息、确认所有权认证和跟踪侵权行为等等。它在篡改鉴定、数据的分级访问、数据跟踪和检测、商业和视频广播、Internet数字媒体的服务付费、电子商务认证鉴定等方面具有十分广阔的应用前景。第二章图像数字水印技术的基本原理及算法2.1图像数字水印的基本原理数字水印技术是通过一定的算法将一些标志性信息直接嵌到多媒体内容当中, 但不影响原内容的价值和使用, 并且不能被人的知觉系统觉察或注意到。水印信息可以是作者的序列号、公司标志、有特殊意义的文本等, 可用来识别文件、图像或音乐制品的来源、版本、原作者、拥有者、发行人、合法使用人对数字产品的拥有权。与加密技术不同,数字水印技术并不能阻止盗版活动
8、的发生, 但它可以判别对象是否受到保护, 监视被保护数据的传播、真伪鉴别和非法拷贝, 解决版权纠纷并为法庭提供证据。为了给攻击者增加去除水印的难度, 目前大多数水印制作方案都采用密码学中的加密(包括公开密钥、私有密钥) 体系来加强, 在水印的嵌入、提取时采用一种密钥, 甚至几种密钥联合使用。2.1.1水印的生成水印可由多种模型构成,如随机数字序列、数字标识、文本以及图像等。从鲁棒性和安全性考虑,常常需要对水印进行随机化以及加密处理。设I为原始图像,W为水印信号,K为密钥,那么加密处理后的水印由函数F定义如下:=F(I,W,K) (2-1)如果水印所有者不希望水印被其他人知道,那么函数F应该是非
9、可逆的,如经典的DES加密算法等。这是将水印技术与加密算法结合起来的一个通用方法,目的是为了提高水印的可靠性、安全性和通用性。2.1.2 水印的嵌入本文算法利用Watson提出的小波域人眼视觉系统的可见度阈值(JND),将宿主图像的小波系数量化为0,1序列,将此作为该图像的水印,并以稀疏矩阵的形式存储下来。为了在不损坏原始图像质量的情况下,把能量尽可能大的水印信息嵌到图像中,使认证水印具有对有损压缩等一般性操作最大的鲁棒性,本算法采用可见度阈值(JND)作为量化间隔。水印嵌入过程如图1所示。算法步骤如下:水印信号嵌入水印后的信号水印嵌入算法原始信号密 匙图2-1 水印嵌入框图2.1.3 水印的
10、提取和检测水印提取和检测过程分别如图2-2和2-3所示。水印的提取和检测可以作用于任何产品,提取和检测可以需要原始产品的参与,也可以不需要原始产品的参与。若将这一过程定义为解码函数D,那么输出可以是一个判定水印存在与否的0-1决策,也可以是包含各种信息的数据流,如文本、图像等。如果己知原始图像I和有版权疑问的图像,则有: (2-5)带水印信号水印嵌入算法提取的水印信号原始信号密 匙图2-2 水印提取框图在某些水印系统中,水印可以被精确地抽取出来,这一过程被称作水印提取。比如在完整性认证应用中,必须能够精确地提取出插入的水印,并且通过水印的完整性来确认多媒体数据的完整性。如果提取出的水印发生了部
11、分的变化,最好还能够通过发生变化的水印的位置来确定原始数据被篡改的位置。对于强壮水印,通常不可能精确地提取出插入的原始水印,因为一个应用如果需要强壮水印,说明这个应用很可能遭受到各种恶意的攻击,水印数据历经这些操作后,提取出的水印通常已经面目全非,这时需要一个水印检测过程。水印检测框图如图2-3所示:含水印待检测信号Y判断水印检测原始信号N无水印密 匙图2-3 水印检测框图从以上论述可以看出,水印提取的任务是从嵌入水印的数据中提取水印信号,而水印检测的任务是判断某一数据内容中是否存在指定的水印信号。另外,水印检测的结果依赖于一个阐值,当相关性检测的结果超过这个闽值时,给出含有指定水印的结论。通
12、常水印检测的第一步是水印提取,然后是水印判决。水印判决的通行做法是相关性检测。选择一个相关性判决标准,计算提取出的水印与指定的水印的相关值,如果相关值足够高,则可以基本断定被检测数据含有指定的水印。检测器的输出结果如充分可信则可在法庭上作为版权保护的潜在证据。2.1.4 仿真实验结果 为验证本文所提出的认证方法是否能够满足对一般性操作具有鲁棒性、对篡改操作具有敏感性的要求,我们对标准图像进行了测试。图像分解层数L=4。采用峰值信噪比客观评价水印图像的质量。2.1.5 水印的评价标准不同的应用对水印的特性要求是不同的。水印的特性对水印系统的性能提供了准确的评估,如何在多种性能评价标准下选择性能的
13、指标,则是由具体的应用来决定的。同时,也可以根据应用的需求调整水印系统的特性,使各个特性在调整的过程中获得平衡。某个特性的改善,通常是通过牺牲其他特性得到的。水印的特性可以从以下几个方面来研究: 1.嵌入水印的有效性:成功地将水印信息嵌入到随机载体的概率。 2.失真率:嵌入水印后宿主与原宿主的差别。 3.盲检测:不需要宿主信息就可以检测出水印信息。4.带辅助信息检测:需要原始载体有关的信息,才能检测出水印。5.鲁棒性:水印系统承载常规处理的能力。6.安全性:水印系统抵抗恶意攻击的能力。7.密钥:水印信息的加密解密或者通过密钥来控制水印的嵌入和提取。8.多水印:同一载体中是否可以嵌入多个水印(互
14、不干扰)。9.水印容量:水印系统可以携带的最大有效载荷数据量。10.计算量:嵌入算法与提取算法的计算成本。2.2图像数字水印应具备的特点(1) 不可感知性(unperceptivity) 。不可感知包含两方面的意思, 一个指视觉上的不可感知性(对听觉也是同样的要求) , 即因嵌入水印导致图像的变化对观察者的视觉系统来讲应该是不可察觉的,最理想的情况是水印图像与原始图像在视觉上一模一样, 这是绝大多数水印算法所应达到的要求; 另一方面水印用统计方法也是不能恢复的, 如对大量的用同样方法和水印处理过的信息产品即使用统计方法也无法提取水印或确定水印的存在。(2) 鲁棒性( robustness) 。
15、加入水印的图像在传播过程中必然会受到各种有意或无意的干扰。一个数字水印应该能够承受大量的、不同的物理和几何失真, 包括有意的如: 恶意攻击、移去水印和使水印无法提取, 无意的如: 图像压缩、滤波、扫描与复印、边缘增强、抖动、APD、DPA 转换等信号处理、噪声污染、尺寸变化等。(3) 安全性( safty) 。即使水印算法公开, 它同样能防止未授权团体移去水印或加入一个假的水印。(4) 透明性(invisibility) 。利用人类视觉系统或人类听觉系统属性, 经过一系列隐藏处理, 使目标数据没有明显的降质现象, 而隐藏的数据却无法人为地看见或听见。(5) 可证明性(justification
16、) 。水印应能为受到版权保护的信息产品的归属提供完全和可靠的证据。不难分析出, 某些要求之间存在冲突, 比如不可感知性和健壮性、隐藏能力和不可感知性, 增加一方必然会降低另一方。实际上, 水印技术的一个重要方面是研究如何折衷这些要求。(6) 水印容量(volume) 。嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息, 或是购买者的序列号。这样在发生版权纠纷时, 创建者或所有者的信息用于标示数据的版权所有者, 而序列号用于标示违反协议而为盗版提供多媒体数据的用户。2.3图像数字水印算法近年来,数字水印技术取得了很大进步,出现了许多优秀的算法,包括文本、图像、图形、视频及音频数字水
17、印算法。根据数字水印的加载方法的不同,可分为2大类:空间域水印算法和变换域水印算法。在这些算法中,水印信息一般是一个随机信号,水印嵌入在时域或变换域中进行,并采用假设检验来测试被测图像是否含有水印信息。下面对一些典型的算法进行分析讨论,除特别指明外,这些算法主要针对图像数据。(1)空域算法:该类算法中典型的水印算法是将信息嵌入到随机选择的图像点中最不重要的像素位 (LSB: least significant bits)上,这可保证嵌入的水印是不可见的。但是由于使用了图像不重要的像素位,算法的鲁棒性差,水印信息很容易为滤波、图像量化、几何变形的操作破坏。(2)Patchwork算法:方法是随机
18、选择N对像素点 (ai,bi) ,然后将每个ai点的亮度值加 1 ,每个bi点的亮度值减 1,这样整个图像的平均亮度保持不变。适当地调整参数,Patchwork方法对JPEG压缩、FIR滤波以及图像裁剪有一定的抵抗力,但该方法嵌入的信息量有限。为了嵌入更多的水印信息,可以将图像分块,然后对每一个图像块进行嵌入操作。(3)变换域算法:该类算法中,大部分水印算法采用了扩展频谱通信 (spread spectrum communication)技术。先计算图像的离散余弦变换 (DCT),然后将水印叠加到DCT域中幅值最大的前k系数上(不包括直流分量),通常为图像的低频分量。若DCT系数的前k个最大分
19、量表示为D= di ,i=1 , ,k,水印是服从高斯分布的随机实数序列W = wi ,i=1 , ,k,那么水印的嵌入算法为di = di(1 + awi),其中常数a为尺度因子,控制水印添加的强度。然后用新的系数做反变换得到水印图像I。解码函数则分别计算原始图像I和水印图像I的离散余弦变换,并提取嵌入的水印W,再做相关检验以确定水印的存在与否。该方法即使当水印图像经过一些通用的几何变形和信号处理操作而产生比较明显的变形后仍然能够提取出一个可信赖的水印拷贝。另外,还可以将数字图象的空间域数据通过离散傅里叶变换(DFT)或离散小波变换(DWT)转化为相应的频域系数;其次,根据待隐藏的信息类型,
20、对其进行适当编码或变形;再次,根据隐藏信息量的大小和其相应的安全目标,选择某些类型的频域系数序列(如高频或中频或低频);再次,确定某种规则或算法,用待隐藏的信息的相应数据去修改前面选定的频域系数序列;最后,将数字图象的频域系数经相应的反变换转化为空间域数据。该类算法的隐藏和提取信息操作复杂,隐藏信息量不能很大,但抗攻击能力强,很适合于数字作品版权保护的数字水印技术中。(4)压缩域算法:JPEG、MPEG标准的压缩域数字水印系统不仅节省了大量的完全解码和重新编码过程,而且在数字电视广播及VOD(Video on Demand)中有很大的实用价值。相应地,水印检测与提取也可直接在压缩域数据中进行。
21、例如对于输入的MPEG-2数据流而言,它可分为数据头信息、运动向量(用于运动补偿)和DCT编码信号块3部分,在方案中只有MPEG-2数据流最后一部分数据被改变,其原理是,首先对DCT编码数据块中每一输入的Huffman码进行解码和逆量化,以得到当前数据块的一个DCT系数;其次,把相应水印信号块的变换系数与之相加,从而得到水印叠加的DCT系数,再重新进行量化和Huffman编码,最后对新的Huffman码字的位数n1与原来的无水印系数的码字 n0进行比较,只在n1不大于n0的时候,才能传输水印码字,否则传输原码字,这就保证了不增加视频数据流位率。即水印信号的引入是一种引起降质的误差信号,而基于运
22、动补偿的编码方案会将一个误差扩散和累积起来,为解决此问题,该算法采取了漂移补偿的方案来抵消因水印信号的引入所引起的视觉变形。(5)NEC算法:该算法由NEC实验室的Cox等人提出,该算法在数字水印算法中占有重要地位,其实现方法是,首先以密钥为种子来产生伪随机序列,该序列具有高斯N(0, 1)分布,密钥一般由作者的标识码和图象的哈希值组成,其次对图象做DCT变换,最后用伪随机高斯序列来调制(叠加)该图象除直流(DC)分量外的1000个最大的DCT系数。该算法具有较强的鲁棒性、安全性、透明性等。由于采用特殊的密钥,因此可防止IBM攻击,而且该算法还提出了增强水印鲁棒性和抗攻击算法的重要原则,即水印
23、信号应该嵌入源数据中对人感觉最重要的部分,这种水印信号由独立同分布随机实数序列构成,且该实数序列应该具有高斯分布N (0,1)的特征。第三章MATLAB在图像数字水印技术中的应用3.1 MATLAB图像处理函数简介由于着重讨论图像数字水印,所以以表格形式只给出二维信号(语音为一维信号、图像为二维信号)处理函数,见表1至表4。表1图像显示和输入输出函数函数 功能Imread 从图形文件中读取图像Imshow 显示图像Imwrite 将图像写入图形文件中Truesize 调整图像显示尺寸Imfinfo 返回图形文件信息Subimage 在一幅图中显示多幅图像Load 将*.mat的图像文件调入到内
24、存Save 保存工作区中的变量到3 . mat格式的图像文件中表2图像变换函数函数 功能Fft2 计算二维快速傅里叶变换Ifft2 计算二维傅里叶变换的反变换Dct2 进行二维离散余弦变换Idct2 计算二维离散反余弦变换Dwt2 一层二维离散小波变换Idwt2 一层二维离散小波反变换Wavedec2 多层二维小波分解Waverec2 多层二维小波重构Detcoef2 提取二维小波分解高频系数Appcoef2 提取二维小波分解低频系数Upwlev2 二维小波分解的单层重构Wrcoef2 二维小波分解系数单层重构Upcoef2 二维小波分解的直接重构Radon 计算图像在指定角度的radon变换
25、表3图像类型转换和颜色空间转换函数 功能Gray2ind 将灰度图像转换为索引图像Ind2gray 将索引图像转换为灰度图像Rgb2gray 转换RGB图像或颜色映像表为灰度图像Im2bw 将图像转换为二进制图像Mat2gray 将矩阵转换为灰度图像Im2unit16 转换图像阵列为16位无符号整型Im2double 转换图像矩阵为双精度型im2uint8 转换图像阵列为8 位无符号整型Isbw 判断是否为二进制图像Isgray 判断是否为灰度图像Isind 判断是否为索引图像Isgrb 判断是否为RGB图像Rgb2hsv 转换RGB值为HSV颜色空间Hsv2rgb 转换HSV值为RGB颜色空
26、间Rgb2ycbcr 转换RGB的值为YcbCr颜色空间Ycbcr2rgb 转化YcbCr值为RGB颜色空间rgb2ntsc 转换RGB的值为NTSC颜色空间nts表4攻击测试函数函数 功能Imcrop 剪切图像Imrotate 旋转图像Imresize 改变图像大小Histeq 实现对输入图像的直方图均衡化Imadjust 调整图像灰度值或颜色映像表Imnoise 给图像加入噪声Imresize 改变图像大小Dither 通过抖动增加外观颜色分辨率Corr2 计算两个矩阵的二维相关系数Similar 计算两个矢量的相似度3.2 MATLAB在水印预处理中的应用置乱技术是一种图像加密技术,它利
27、用数字图像具有的数字阵列的特点,搅乱图像中像素的位置或颜色使之变成一幅杂乱无章的图像 1 ,从而达到无法辨认出原图像的目的,可用于数字图像水印的预处理和后处理过程。对水印进行置乱变换可以提高水印信息的安全性,增强水印的鲁棒性。置乱过程不仅可以在数字图像的空间域上进行,还可以在其频率域上进行 2 。常见置乱方法有Arnold变换、幻方变换、Hilbert曲线、Conway 游戏、广义Gray码变换、仿射变换、正交拉丁方变换等 3 。置乱技术具有以下特点:置乱技术一般来说具有周期性;置乱变换之后的图像大小不发生改变,直方图不变,只是打乱图像各像素的次序; 置乱技术是可逆变换 4 ,水印在提取后需要
28、进行置乱变换的逆变换。对水印进行置乱处理的优点如下。1)采用置乱技术的合法使用者可以自由控制算法的选择、参数的选择以及使用随机数技术,从而使非法使用者难以破译图像内容,即可以提高水印信息的安全性 5 。2)置乱技术可以分散错误比特的分布,提高数字水印的视觉效果,从而增强其鲁棒性 6 。以Arnold变换为例,可用下面给出的Matlab程序计算出任意大小的图像恢复至原图时所需的迭代周期。如大小为128 128的图像迭代96次后将回到原图。function Period =ArnoldPeriod (N)% 求周期,N为待求图像的像素尺寸if ( N 2 ) Period = 0;% 如果N 2,
29、即只有一个像素的情况下,周期为0 return;endn = 1; x = 1; y = 1; %初始位置%通过循环寻找周期while (n = 0) xn = x + y; yn = x + 23y;%Arnold变换公式if (mod (xn,N) = 1 & mod (yn,N) = 1)%再次的回到原来的位置,完成一次的周期Period = n;return;endx =mod (xn,N) ;y =mod ( yn,N) ;n = n + 1;end原图像青椒 置乱变换2次 置乱变换40次图1Arnold变换实现效果图3.3 MATLAB在图像数字水印实现中实用、高效的体现水印嵌入程
30、序应用实例k = 2; file_name = lena. bmp; cover_object = double ( imread ( file_name) ) ;Mc = size ( cover_object, 1) ; Nc = size ( cover_object, 2) ; file_name = copyright. bmp; message = double ( imread ( file_name) ) ; Mm = size (message, 1) ; Nm = size (message, 2) ;message_vector = round ( reshape (me
31、ssage,Mm3 Nm, 1) . /256) ; rand ( state, 16) ; cA1, cH1, cV1, cD1 = dwt2 ( cover _ object, haar) ;for ( kk = 1: length (message_vector) )pn_sequence_h = round (23 ( rand (Mc /2,Nc /2) - 0. 5) ) ; pn_se2quence_v = round (23 ( rand (Mc /2,Nc /2) - 0. 5) ) ;if (message ( kk) = = 0 ) cH1 = cH1 + k 3 pn
32、_ sequence _ h;cV1 = cV1 + k3 pn_sequence_v;endendwatermarked_image = idwt2 (cA1, cH1, cV1, cD1, haar, Mc,Nc );watermarked_image _ uint8 = uint8 (watermarked _ image);imwrite (watermarked_image_uint8, dwt_watermarked. bmp, bmp);p snr = p snr( cover_object,watermarked_image_uint8,Mc,Nc);subp lot(2, 2
33、, 1) ; A = imread ( copyright, bmp);imshow (A) ; title ( watermark :A) ;subp lot(2, 2, 2) ; I = imread ( lena, bmp) ;imshow ( I) ; title ( origine image: I) ;BW = edge ( I, p rewitt) ;subp lot(2, 2, 3) ; imshow (BW) ;title ( edge of origine image) ;subp lot(2, 2, 4) ;imshow (watermarked_image_uint8,
34、 ) ;title ( Watermarked Image)运行结果:P snr = 1. 8303e + 003s = 103 log10 (p snr)s = 32. 6253 dB 图2MATLAB 仿真试验结果显然,MATLAB 实现数字水印所需编程比较简练,并能给出可视化结果,说明适合选用MATLAB来解决水印算法实现问题。参考文献1 王慧琴.数字图像处理M北京邮电大学出版社,20062 朱光明译.数字信号处理M机械工业出版社,20053 王彬.MATLAB数字信号处理M机械工业出版社,2010,64 许红山.置乱技术在信息隐藏中的应用.广州大学学报(自然科学版),2004;3(2)
35、:1341365 刘建华,李燕,张昌年.数字图像置乱技术及Matlab实现.桂林航天工业高等专科学校学报,2002;(4):912.6 马苗,田红鹏,郝重阳.一种高效的数字水印研究工具MATLAB信息与控制,2002;31(5):461465.7 董长虹,赖至国,余啸海.Matlab图像处理与应用.北京:国防工业出版社,2004, 2425.8周翔,段晓辉,王道宪利用DCT与小波变换的一种数字水印算法全国第三届信息隐藏学术研讨会(2001年)论文集,北京电子技术应用研究所 主编,西安电子科技大学出版社9Cox I J,Miller M L,Bloom J ADigital watermarking MSan Francisco:Academic Press2002