PWWong脆弱性水印算法.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PWWong脆弱性水印算法

《信息隐藏课程大作业》 —P.W.Wong脆弱性水印算法学 院 计通学院专业班级 信安1102 ?姓?名 尹 昊? ?学 号??基本原理典型的脆弱水印是P.W.Wong水印系统。这是基于公钥的图像认证和完整性数字水印系统。基本思想就是利用hash函数的单向性和能在输入发生微小变化时得到完全不同输出值的特点,结合图像分块来完成对图像像素值微小改变的定位。借助公钥系统的便利性,使得任何人,只要他能获得作者的公钥,便可以完成对图像的完整性检测和身份认证。算法实现嵌入过程以大小为M*N像素灰度图像为例,要把同样大小的二值化水印图像嵌入到载体图像中得到含水印图像。为此,逐块进行水印的嵌入,嵌入过程如下:假定X表示载体图像中第r块子图,将X的LSB(最低有效位)平面值置为0得到X’设H()是一种哈希加密函数,用下式计算哈希值,H(M,N,X’)=(,, … ,)其中:是哈希函数的输出比特值,S是输出比特位的大小,其值取决于所使用的特定哈希函数,例如对SHA256算法而言S=256。取前I*J位构成哈希值输出矩阵对和对应的中的子块中的子块通过逐位异或运算得到新矩阵,使用非对称加密公钥中的私钥对进行加密运算,,其中E()表示一公钥加密系统,K表示私钥最后把得到的二进制值嵌入到X’的LSB位得到含水印图像取反后的第r个子块重复上面的步骤直到最后每一块水印都被添加到宿主图像中流程图:Xor加密S嵌入X’的LSBLSB置00-1取反Wong算法水印嵌入流程图提取过程水印提取过程与嵌入过程相似,首先将待检测图像分块记为,水印的检测过程如下图所示:把待检测的图像的每个子块分为两部分:第一部分是子块中每个像素最低有效位的值,第二部分Z’是把子块的LSB平面置零的值利用公钥加密系统的公钥K对解密得到,计算M,N和Z’的哈希值记为使用嵌入水印时第三步骤的操作提取出水印:重复上面步骤,直到恢复出每一块的水印信息,得到提取的二值水印图像取反后流程图:Xor解密0-1取反LSB置0Wong算法水印提取流程图提取LSB值实验过程本次实验是在matlab环境下进行编程实现的,在main文件下是主要运行的过程函数,.\image文件下是图片素材,.\code文件是密码算法的实现过程函数,.\hide文件哈希算法的实现过程函数。选用.\image\origin.png图像像素256X256的灰度图像作为载体,和同样大小的.\image\print.png二值图像作为标志水印将载体图像分为16X16的块并去掉LSB,对每块在.\hide文件下提供的接口函数inter.m采用SHA256算法计算HASH值并且与二值化的水印图像进行异或运算得到嵌入值把上一步得到的嵌入值作为明文,对每块的嵌入值在.\code文件下提供的接口函数interen.m采用RSA公钥密码算法计算出密文,最后将其嵌入原始图像的LSB中得到嵌入水印后的图像把嵌入水印后的图像进行篡改,篡改的图像同样分为16X16的块并去掉LSB,也同样采用SHA256算法计算HASH值提取图像的LSB值对每块在.\code文件下提供的接口函数interde.m采用RSA公钥密码算法计算出明文后再与得到的HASH值进行异或运算还原出水印图像实验结果如下图:总结本次实验由于考虑过于单一,采用的是256X256大小的图像和水印并生成的HASH值也是256位,RSA密码算法所采用的公钥和私钥也是按照等明文密文分组长度测试选取的,有很大的局限性,只是满足了生成的HASH值位数与图像像素点的的个数能一一对应,尽量满足全部嵌入图像的LSB。后经过考虑,认为可以有两种办法能更好的灵活运用。1.可以嵌入图像的多个层面,经实验发现最多可以嵌到4层而人眼不易觉察到。这样可以不用限定HASH算法得到的值的长度以及密码算法明文密文分组的不同。2.可以对获得的HASH值进行分段选取,因为同样的文件用相同参数和算法算得的摘要肯定是一样的,所以选取算得的HASH值的一部分作为要嵌入的初始数值,或者是选取HASH值的多个段做异或后作为嵌入的初始数值,总之是设定一个所需要的数值长度,这同样可以宽松对于密码算法密钥选择的限制。在实际运用中可以考虑上述改进的考虑方案。对课程的思考建议:信息隐藏技术这门课通过理论知识的学习让我更加了解了信息安全运用的广泛性,并且提高了对于信息处理的思考方式,通过老师上课所列举的实例让我更加明白了信息隐藏的具体应用和实现方法,又通过实验对编程实践能力有了一定的提高,也对文件格式有了进一步的认识。程序源文件->/s/1jGwpGpSmatlab程序实现

文档评论(0)

haocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档