数字水印与隐写术信息隐藏隐写术(Steganography)/信息伪装数字水印(DigitalWatermark)第一部分隐写术隐写术隐写术(steganography)一词来源于希腊词汇stegons和graphia,意即“隐藏”(cover)和“书写”(writing),是一种保密通信技术,通常解释为把秘密消息隐藏于其他信息当中,其中消息的存在形式较为隐秘。数字隐写技术的特性无法感知:将资料隐藏至媒体后不可大幅度降低原始媒体的质量,藏入的资料必须让人无法察觉异样情况。换言之,隐藏的信息对原始掩护媒体具有良好的透明性。不可检测:利用隐写技术进行秘密通讯时,嵌入的信息无法被察觉并不意味着绝对安全。例如,当掩护媒体嵌入了信息后,其与内容相关的固有特性可能发生变动,使其无法避过基于统计方法的检测,从而暴露了秘密通讯行为。高安全性:隐藏的秘密信息难以被移除或篡改,必须能抵御拦截者的检测及分析。大容量:在隐蔽能力相同的情况下,能嵌入更多信息量的隐写方法更好。多数情况下隐蔽性和隐写容量相互制约:隐写容量越大,则对掩护媒体的改变愈多,被检测察觉的可能性就越高。高效:隐写方法应使用简单,秘密信息的嵌入与提取操作要快速便捷,系统的执行时间应当尽量少。JPEG图像的数字隐写JPEG是目前最常见的一种图像格式,其先进的压缩技术使得JPEG文件占用的磁盘空间较少,并且可以通过不同的压缩比例来调节图像的质量。正是由于JPEG这方面的杰出表现,它也成为网络上最受欢迎的图像格式,因此把JPEG图像作为载体的数字隐写技术的应用也越来越多,受到了国内外研究者的广泛关注。采用JPEG图像作为隐藏消息的载体优点首先,JPEG图像格式是互联网上图像传输的事实标准,使用这一图像格式比起其它格式来更不会引起怀疑。其次,JPEG压缩造成的和秘密消息嵌入带来的图像质量退化是肉眼很难分辨。最后,它的隐藏容量较可观。常用的JPEG图像隐写算法JPEG图像的隐写算法嵌入流程为:1、对JPEG图像的压缩数据进行解码,得到量化后的DCT系数。2、按照某种隐写算法的嵌入规则对DC量化系数做些微小的修改,将要隐藏的秘密消息嵌入到量化系数中。3、对修改后的量化系数表进行熵编码,重新生成压缩数据,即载密JPEG图像。Jpeg-steg隐写法Jpeg-steg方法将秘密信息藏在JPEG文件中DCT系数的LSB里,从而保证在隐写之后人眼无法分辨隐写图与原图的差别。提取秘密消息时,只需将载密图像中不等于0、l的量化DCT系数的LSB取出即。其算法步骤如下:(1)选择掩护图像,并将图像区分为不重迭的8×8区块(2)将每个区块利用离散余弦转换成频率域系数;(3)利用用户选定的量化表对频率域系数进行量化(4)对秘密信息进行z字形扫描,并对除了0与1之外的DCT系数的最低位加以替换(5)进行熵编码,产生JPEG隐写图像Jpeg-steg法的优点、缺点Jpeg-steg法的优点在于针对广泛应用的JPEG图像进行隐写,具有较好的实用性;缺点是是利用x2分析可以很容易地检测出秘密信息的存在,因此,其安全性并不好。F3算法F3密写可以对抗x2分析。但由于在隐藏秘密信息0时,可能产生无效隐藏。相当于增加了0的隐藏数量,因此,嵌入后DCT系数直方图中,偶数位置的灰色柱要比奇数位置上灰色柱突出。分析者可根据这个特征分析出秘密信息的存在。F4隐写算法在F4隐写中,用正奇数和负偶数代表1,负奇数和正偶数代表0,其他同F3隐写算法相同。经过这样的改进,嵌入秘密比特1时也会产生无效隐藏,也要重新嵌入,所以避免了F3隐写算法的不足,可以对抗x2分析。F5隐写算法F5隐写对F4隐写的改进主要有两点:一是在秘密信息嵌入前混洗DCT系数,混洗的方法作为密钥。这也是密码术同隐写术结合的令一种方式。在隐写后,进行逆混洗,得到含密图像。另一改进是实施矩阵编码嵌入。使用矩阵编码可以在只修改一个数据的情况下,在2k-1个数据中,隐藏k比特信息,减少对数据的修改,提高嵌入效率。也就减少了隐藏秘密信息带来的失真。数字隐写的应用前景分析数字隐写技术在进行信息保密传输时,需要载体文件的支持,在一定程度上,限制数字隐写技术的应用。可是,数字隐写技术掩盖了秘密通信的存在性,而加密技术是不能做的。数字隐写技术最直接的应用是在军事方面,不但可隐秘地传递各种军事信息,还避免暴露通信双方的身份。随着数字隐写技术的发展和网络传输速度的提高,数字隐写技术还会在民用方面发挥巨大的作用,成为密码技术的补充,如采用数字隐写技术替代密码技术传递商务合同等。数字隐写技术会逐渐地应用到几乎所有的保密传输领域。第二部分数字水印数字水印数字水印(digitalwatermark)技术,是指在数字化的数据内容中嵌入不明显的记号。被嵌入的记号通常是不可见或不可察的,但是通过一些计算操作可以检测或者提取。水印与源数据(如图象、音频、视频数据)紧密结合并隐藏其中,成为源数据不可分离的一部分,并可以经历一些不破坏源数据使用价值或商用价值的操作而存活下来。数字水印的应用最重要的应用:版权保护盗版跟踪:数字指纹拷贝保护:DVD播放器图像鉴定:检测数据是否被修改票据防伪数字水印的特性透明性(隐藏性):是指利用人类视觉系统或人类听觉系统属性,经过一系列隐藏处理,使目标数据没有明显的降质现象,在视觉或听觉上具有不可感知性。鲁棒性:指不因图象文件的某种改动而导致隐藏信息丢失的能力,这些改动包括传输过程中的信道噪声、滤波、增强、有损压缩、几何变换、D/A或A/D转换等。隐藏位置的安全性:指将水印信息藏于目标数据的内容之中,而非文件头等处,防止因格式变换而遭到破坏。无歧义性:恢复出的水印或水印判决的结果应该能够确定地表明所有权,不会发生多重所有权的纠纷。通用性:好的水印算法适用于多种文件格式和媒体格式。通用性在某种程度上意味着易用性。数字水印的分类鲁棒水印和脆弱水印。鲁棒水印要求嵌入的水印能够经受各种常用的编辑处理,主要用于在数字作品中标识著作权信息;脆弱水印对信号的改动很敏感,根据脆弱水印的状态就可以判断数据是否被篡改过,主要用于完整性保护。空间域水印和频率域水印:直接在空间域中对采样点的幅度值作出改变,嵌入水印信息的称为空间域水印;对变换域中的系数作出改变,嵌入水印信息的称为频率域水印。非盲水印和盲水印。非盲水印在检测过程中需要原始数据,而盲水印的检测只需要密钥,不需要原始数据。可见水印与不可见水印。通用数字水印系统框架图像数字水印的主要算法空域算法:此算法首先把一个密钥输入一个m-序列发生器来产生水印信号,然后排列成2维水印信号,按象素点逐一插入到原始图象象素值的最低位。由于水印信号被安排在了最低位上,它是不可见的,基于同样的原因,它可以轻易地被移去,因此不够强壮。.文本水印算法:它们主要是通过轻微改变字符间距,行间距或是增加、删除字符特征如底纹线等方法来嵌入水印。或是在符号级或语义级加入水印。例如,可以用big替换文本中的large。压缩域算法:把水印信号加到表示视频帧的数据流中去。对于输入的MPEG-2数据流而言,可分为数据头信息、运动向量和DCT编码信号块三部分,对DCT编码数据块中每一输入的Huffman码进行解码和逆量化,把得到的DCT系数与相应水印信号块的变换系数相加,对新的DCT系数重新进行量化和Huffman编码。然后比较新的Huffman码字的位数n1与原来的无水印系数的码字n0,只在n1不大于n0的时候才传输水印码字,否则传输原码字。这就保证了不增加视频数据流的位率。NEC算法:NEC实验室的COX等人提出的基于扩展频谱的水印算法,原则为:1)水印信号应该嵌入源数据中对人的感觉最重要的部分。在频谱空间中,这种重要部分就是低频分量。这样,攻击者在破坏水印的过程中,不可避免地会引起图象质量的严重下降。2)水印信号应该由具有高斯分布的独立同分布随机实数序列构成。这使得水印经受多拷贝联合攻击的能力大大增强。3)实现方法是:对整幅图象做DCT变换,选取除DC分量外的1000个最大的DCT系数插入由N(0,1)所产生的一个实数序列水印信号。生理模型算法:利用人的生理模型的特性,包括HVS和HAS来提高多媒体数据压缩系统质量和效率。它们的基本思想是利用从视觉模型导出的JND描述来确定在图象的各个部分所能容忍的数字水印信号的最大强度,从而避免破坏视觉质量。这一方法同时具有好的透明性和强壮性。数字水印攻击分析鲁棒性攻击它包括常见的各种信号处理操作,如图象压缩、线性或非线性滤波、叠加噪声、图象量化与增强、图象裁剪、几何失真、模拟数字转换以及图象的校正等。IBM攻击这是针对可逆、非盲(non-oblivious)水印算法而进行的攻击。其原理为设原始图象为I,加入水印WA的图象为IA=I+WA。攻击者首先生成自己的水印WF,然后创建一个伪造的原图IF=IA-WF,也即IA=IF+WF。这就产生无法分辨与解释的情况。防止这一攻击的有效办法就是研究不可逆水印嵌入算法,如哈希过程。StirMark攻击Stirmark是英国剑桥大学开发的水印攻击软件,它采用软件方法,实现对水印载体图象进行的各种攻击,从而在水印载体图象中引入一定的误差,我们可以以水印检测器能否从遭受攻击的水印载体中提取/检测出水印信息来评定水印算法抗攻击的能力。如StirMark可对水印载体进行重采样攻击,它可模拟首先把图象用高质量打印机输出,然后再利用高质量扫描仪扫描重新得到其图象这一过程中引入的误差。马赛克攻击其攻击方法是首先把图象分割成为许多个小图象,然后将每个小图象放在HTML页面上拼凑成一个完整的图象。一般的Web浏览器都可以在组织这些图象时在图象中间不留任何缝隙,并且使其看起来这些图象的整体效果和原图一模一样,从而使得探测器无法从中检测到侵权行为。串谋攻击所谓串谋攻击就是利用同一原始多媒体数据集合的不同水印信号版本,来生成一个近似的多媒体数据集合,以此来逼近和恢复原始数据,其目的是使检测系统无法在这一近似的数据集合中检测出水印信号的存在。跳跃攻击跳跃攻击主要用于对音频信号数字水印系统的攻击,其一般实现方法是在音频信号上加入一个跳跃信号,即首先将信号数据分成500个采样点为一个单位的数据块,然后在每一数据块中随机复制或删除一个采样点,来得到499或501个采样点的数据块,然后将数据块按原来顺序重新组合起来。实验表明,这种改变对古典音乐信号数据也几乎感觉不到,但是却可以非常有效地阻止水印信号的检测定位,以达到难以提取水印信号的目的。类似的方法也可以用来攻击图象数据的数字水印系统,其实现方法也非常简单,即只要随机地删除一定数量的象素列,然后用另外的象素列补齐即可,该方法虽然简单,但是仍然能有效破坏水印信号存在的检验。涉及的相关理论和软件数字图像处理的编码与压缩原理数字图像相关的概率统计特征数字图像的DFT、DCT、DWT变换计算机密码学作为前处理和后处理各种攻击算法的原理VC++的编程环境或MATLAB软件等数字水印与隐写术的区别数字水印系统所隐藏的信息总是与被保护的数字对象或它的所有者有关,而信息隐写系统可以隐藏任何信息对于“健壮性”的要求不同,与隐写术相比,水印技术需要更好健壮性在发送者与接收者之间的通信方式不同。隐写术通常是点对点的,而数字水印技术通常是一点对多点的隐写术时信息隐藏的一个重要分支,专门研究如何隐藏实际存在的信息隐藏信息可以与被保护信息无任何关联水印并不总需隐藏,如可见水印,隐藏信息与被保护信息间由密切关系