110.一种图像Hash算法的实现.doc
《110.一种图像Hash算法的实现.doc》由会员分享,可在线阅读,更多相关《110.一种图像Hash算法的实现.doc(11页珍藏版)》请在三一办公上搜索。
1、一种图像Hash算法的实现摘要:随着图像处理技术的发展,人们对数字图像内容的更改和编辑变得非常容易,且不留痕迹,用眼睛很难判定其真实性。当数字图像中包含有政治、军事、商业、监控、个人、及医疗等敏感的或重要的信息时,必须有相关的技术对其进行认证。面向认证的图像Hash是图像认证的一种主要的技术手段。近年来受到了广泛的重视并出现了多种图象Hash算法。其中Fridrich等人提出的一种鲁棒的图象Hash算法被认为是经典的图象Hash算法之一。面向认证的图像Hash主要包括以下三个性能指标:1) 稳健性,2) 脆弱性, 3) 安全性,其是图像Hash的核心性能指标。为了更深入的研究面向认证的Hash
2、算法的性能,需要实现一些经典的算法。本论文深入地了解Fridrich所提出的算法,并实现了该算法。在实现的过程中重点解决了阈值的选取问题,使图象Hash值中的0,1个数尽可能相同。关键词:图像认证 图像安全 密钥保护 Hash函数Image identify based on Hash functionAbstract: With the development of the technology of the processing of image, it is easy for people to change and edit the image and that is invisibl
3、e to eyes. If the content of the image involved the some critical information such as politician, military, business and medical treatment, We need a kind of technology to identify the picture. Hash function which can identify the image is a major way. There are a lot of Hash functions in recent yea
4、rs. One of them which was offered by Fridrich with robust is widely recognized as a classical arithmetic. There are three major indexes of the Hash function : (1)stability (2) frangibility (3)safety. We need to realize some classical arithmetic in order to study the Hash function for image further.
5、This theory analysis the Fridichs Hash function, and realize the Hash. During the process, how to calculate a threshold so as to the number of the 1 and 0 are approximately equal. 第一章 引言1.1 图像认证随着电脑的日益普及和互联网的飞速发展,人们通过互联网传输数据数量也急剧增长。由于网络的开放性和易操作性使得信息传输过程中被恶意篡改的可能性非常高。这其中多媒体图像传输的安全性是一个急需解决的问题。计算机网络也已经
6、成为发布信息的重要媒介。许多商业卖主和开发者,利用Internet发布多媒体产品或事务来获取利润。然而,在通过计算机网络提供这些服务的时候,存在两个主要的问题。一方面,这些服务很难进行保护12。另一个问题是,这些服务易被未授权的用户使用13。因此版权保护和网上服务授权就成为很重要的研究课题13。本文将介绍一种被称之为Hash算法的特征值提取法来认证图像的安全性。图像在传输过程中被攻击修改的可能性非常高,传输者之间需要建立一种方便快捷的认证方式,来认证图像是否被修改过。Hash算法就是基于这种思想构建出来的一种算法。接收方通过由事先约定的Hash算法得到二进制串与发送方发出的二进制串进行比较,就
7、可以判别出图像是否被攻击和修改。1.2 Hash 简介Hash是一种算法的概念或者说是一种思想。这种思想是:把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。这是基于传统密码学的hash函数1.2.1 Hash 需要满足的性质信息安全领域中应用的Hash算法,还需要满足其他关键特性: 第一当然是单向性(one-way),从预映射,能够简单迅速的得到散列值,而在计算上不可能 构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应的M=H
8、-1(h)不可行。 这样,散列值就能在统计上唯一的表征输入值,因此,密码学上的 Hash 又被称为消息摘要(message digest),就是要求能方便的将消息进行摘要,但在摘要中无法得到比摘要本身更多的关于消息的信息。 第二是抗冲突性(collision-resistant),即在统计上无法产生2个散列值相同的预映射。给定M,计算上无法找到M,满足H(M)=H(M) ,此谓弱抗冲突性;计算上也难以寻找一对任意的M和M,使满足H(M)=H(M) ,此谓强抗冲突性。要求强抗冲突性主要是为了防范所谓生日攻击(birthday attack),在一个10人的团体中,你能找到和你生日相同的人的概率是
9、2.4%,而在同一团体中,有2人生日相同的概率是11.7%。类似的,当预映射的空间很大的情况下,算法必须有足够的强度来保证不能轻易找到相同生日的人。 第三是映射分布均匀性和差分分布均匀性,散列结果中,为 0 的 bit 和为 1 的 bit ,其总数应该大致相等;输入中一个 bit 的变化,散列结果中将有一半以上的 bit 改变,在这又叫做雪崩效应(avalanche effect);要实现使散列结果中出现 1bit 的变化,则输入中至少有一半以上的 bit 必须发生变化。其实质是必须使输入中每一个 bit 的信息,尽量均匀的反映到输出的每一个 bit 上去;输出中的每一个 bit,都是输入中
10、尽可能多bit 的信息一起作用的结果。1.2.3 压缩函数 Damgard 和 Merkle 定义了所谓“压缩函数(compression function)”,就是将一个固定长度输入,变换成较短的固定长度的输出,这对密码学实践上 Hash 函数的设计产生了很大的影响。Hash函数就是被设计为基于通过特定压缩函数的不断重复“压缩”输入的分组和前一次压缩处理的结果的过程,直到整个消息都被压缩完毕,最后的输出作为整个消息的散列值。尽管还缺乏严格的证明,但绝大多数业界的研究者都同意,如果压缩函数是安全的,那么以上述形式散列任意长度的消息也将是安全的。1.3 其它图像加密技术的简介除了Hash算法可以
11、用作信息的加密,还有其他的技术也可以实现这项功能。数字水印和数字签名就是另外的两项加密技术,这里将做简单的介绍。1.3.1数字水印数字水印(Digital Watermarking)技术是将一些标识信息(即数字水印)直接嵌入数字载体(包括多媒体、文档、软件等)当中,但不影响原载体的使用价值,也不容易被人的知觉系统(如视觉或听觉系统)觉察或注意到。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。数字水印是信息隐藏技术的一个重要研究方向。数字水印技术已经发展了两大类方法:第一种是将数字水印嵌入到图像频域中,频域中振幅较小的特定的某一段被改变10
12、;第二种是水印信息被嵌入到图像的灰度值或者数据流中11。1.3.2数字签名数字签名(Digital Signature)就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。数字签名技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处
13、理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。1.4 Hash算法与其他技术的比较 目前所采取的数字水印技术大多水印信息的生成与图像信息是无关的。这样虽然水印信息对于恶意篡改有着较高的灵敏度,但是其对图像特征却有着一定程度的改变。4虽然想在也有不少水印技术采用水印信息生成与图像信息有关的做法,但针对不同的图像应该提取何种图像特征,如何生成水印信息长度与宿主信息可容量相匹配,以及如可确定水印的嵌入不影响图像的特征,确保的到一个篡改灵敏,视觉透明性好,抗攻击能力强并且局部纠错能力高的水印认证系统,这些问题至
14、今没有圆满的答案。而对于数字签名,数字签名一般都是与图像捆绑在一起进行传输和存储的,也就是说签名是独立于图像数据存在的。虽然这样不会影响图像本身,但是其独立于图像的特点很容易在被传输的过程中删除3。Hash函数其特征值来源于,图像信息本身,并不会对图像有所改变。并且在双方事先约定的函数框架中进行认证,并且有密钥保护。Hash算法也属于数字签名的一种,他们有着共同的特点1.5 Hash算法的研究现状 近年来也有不少学者对这方面有着不少研究,也已经有了不少成果。Swaminathan2等人给出一种基于Fourier-Mellin变换的图像Hashing算法。该算法首先将图像进行二维Fourier变
15、换,并在极坐标下对每个角度的Fourier系数幅值求和,将结果以密钥产生的随机序列为系数进行线性组合,得到图像特征值即中间Hash,然后量化压缩得到固定长度的图像Hash序列。该算法得到的图像Hash对JPEG压缩和滤波等操作具有鲁棒性,且能够抵抗一定程度的几何失真,并能区分出剪切和替换的恶意篡改操作。文献7 基于原始图像比特平面产生参考图像,根据选定的两个误差参数,保留高位比特平面同时舍弃一些像素的低比特平面,使参考图像能容忍一定程度的失真。对参考图像而不是原始图像进行特征提取并产生最终的H 文献8在小波域根据密钥将图像各子带伪随机地划分成许多矩形区域,将低频近似子带每个矩形区域系数的平均值
16、和高频细节子带的每个矩形区域系数的方差作为特征值,最后将提取的特征值送入基于密钥的取整量化器,得到最终的图像Hash。Hash序列的长度取决于图像大小。Fridrich1指出图像不可能在发生显著变化后仍保持DCT低频系数不变,从而给出一种基于DCT的图像Hashing算法:将图像的DCT系数矩阵分别投影到N个由密钥控制产生并经过低通滤波的光滑随机模板上,通过判断每个投影结果的内积是否大于0将其量化成长度为N的二进制序列,作为图像Hash。其中DCT系数矩阵投影到光滑模板得到的是图像的低频特征,有一定的鲁棒性,而模板的生成由密钥控制使得Hashing算法具有安全性。文献2中提出一种基于人眼的特性
17、,根据人眼对图像的敏感性来确定DCT变换种各个系数的权重,使Hash能更好地反映图像视觉特征,有效地增强对JPEG压缩、滤波等常见信号处理的鲁棒性,该方法还能区分恶意篡改。视觉上完全不同的图像具有显著不同的Hash。1.6 本论文本论文的目标是实现由Fridrich等人所提出的经典hash图像算法。通过阅读Fridrich等人的论文,用自己所学过的知识运用Matlab这个强大的软件编写一个Hash函数程序实现hash图像算法。在这其中遇到的问题也不少。比较突出的有,刚开始由于对于Matlab这款软件先前接触的较少,所以刚开始用起来非常陌生,对于其本身所带的函数不甚了解,花了较长时见用于学习Ma
18、tlab,不过现在已无大碍。在平滑随机模板的选取时遇到的困难是哪个低通滤波器能够很好实现的低通滤波效应,最终还是确定使用高斯滤波。阈值的选取上也遇到过麻烦,一开始使用的是逐次比较法,从0开始这定阈值,每量化一次比较一次,知道找到合适的阈值。该方法最然可行但是程序运算花费的时间实在太长,没有普遍是用性。后改用自动选取中位数法,改进了运算大大减少了无为的运算。第二章 一种经典的图象Hash算法2.1 图像的Hash算法本人在这篇论文中将论述从图像中提取一串特征值并且量化成一串Hash值的算法实现,以及Hash值对于图像认证的作用,对于图像认证的可操作性。还有对于Hash只生成过程中对于密钥的讨论,
19、密钥的作用是否明显,安全性等问题,都将在本文中一一讨论。本文所采用的是Fridrich等人所提出的方法目前所用的流程图首先对图像进行特征提取,该过程可基于密钥,且提取的特征应对常用的信号处理具有鲁棒性,然后对特征值进行基于密钥的量化,得到固定长度的序列,作为最终的图像Hash;当图像Hash用于认证时需计算待认证图像的Hash,并与接收到的原始Hash进行比较,若二者的汉明距离小于预先设定的阈值,则通过认证,反之拒绝。其流程如图21所示。图像 量化得到Hash特征值提取密钥密钥钥接受的图像特征提取得到Hash是。通过 密钥密钥相同接受的Hash否。拒绝图 21 2.2 Hash算法的实现2.2
20、.1 图像的预处理 对一个优秀的Hash算法它不仅要能够提取出图像的特征值,而且好要有好的抗干扰性。由于通常Hash串对于像素的变化非常敏感,即只要有一个像素变化其Hash值就有可能改变,这样对于图像来说则很不方便。由于人眼对于图像的像素变化的灵敏度不高,如果图片有所压缩,并不影响图像的视觉效果。但是对于Hash函数来说会得到不同的值。这就要求在图像在提取特征之前先对图像进行预处理,基本思想是要抓住图像的主要信息,我们的要求是对于相似的图像要返回一组相似的Hash值串。对于图像来说通常最主要的信息是集中在图像的边缘上。现在通常都是用其相关值对称的算法,比如DCT(离散余弦变化),就是一种最常用
21、的方法。离散余弦变化把人眼对图像敏感的重要信息都集中在变化的一部分系数当中。所以在这里对图像进行分块做DCT变化作为预处理。这里采用256256的图像进行变换,将会的到64位的Hash值串。DCT变化后,图像的主要信息都集中在低频分量系数上面,Fridrich指出1,不可能对绝对值较小低频分量做出很大的改动而又不明显的改动图像,同样低频分量很大的话,也不可能把它变小而又不显著的影响图像。所以为了对抗图像压缩等干扰而又不明显的改变Hash值,就要对图像尽享分块后在对每一块矩阵做DCT变化,让每一块DCT变化后的矩阵来确定一位Hash值,这样就不会因为局部点的改变而很大的改变Hash值串。本文中把
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 110. 一种 图像 Hash 算法 实现
链接地址:https://www.31ppt.com/p-2397723.html