[发明专利]加强安全散列函数无效
申请号: | 200680022176.0 | 申请日: | 2006-06-13 |
公开(公告)号: | CN101204035A | 公开(公告)日: | 2008-06-18 |
发明(设计)人: | G·A·余瓦尔;R·文卡特萨 | 申请(专利权)人: | 微软公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00;G06Q99/00 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 陈斌 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加强 安全 函数 | ||
背景
安全散列函数常常被用于认证消息。例如,数字签名依靠安全散列函数。人们能通过签署使用安全散列函数计算得到的文件的散列而实现对该文件的数字签署。以后,该数字签名能通过使用相同的散列函数计算声称是被该人签署过的文件的文件散列而得到认证。如果第一散列和第二散列是相同的,那么该文件被认为是相同的。如果两份文件相同,那么数字签名就得到了认证。
这两份文件被认为是相同的——而不是已知是相同的,因为两个不同的文件的散列也有可能是相同的。这种情况被称作为“冲突”。
冲突的一个例子可用数学术语来显示。假设一安全散列函数“H(M)”可在任意长度的消息“M”上运行并返回一固定长度的散列“h”。由此,“h=H(M)”,其中“h”具有一固定长度。然而,这没有解决如下的可能性:如果消息“M1”大于固定长度散列“h”,那么两个不同的消息“M1”和“M2”可能具有相等的散列“h”,这样“H(M1)=H(M2)”。如果“H(M1)=H(M2)”,那就会产生冲突。
发生冲突的概率对于确定任何信息可靠的概率是很重要的。例如,对于产生160位的散列的安全散列函数,两个随机消息具有相同的散列的概率是1/2160。但对于其中任何两个消息可能具有相同散列的一组随机消息来说,,该组消息的数量不需要如人们所预计的那么大。对于160位的散列来说,该消息组只需要具有280个消息。
因此,试图引起造成冲突(即,使2个消息具有相同的散列)的人可以在280个或者更少数量的160位的散列中产生该冲突。例如,假设Willy想诈骗George。Willy可以写两个合同,一个对George有利而另一个只对Willy自己有利。Willy可对每个文档做微小的改变(例如添加一个空格)并对每个文档运行散列值。他可以继续这样做直到有利于Willy的合同之一的散列值与有利于George的合同之一的散列值相互匹配。通过这样的做法,Willy能在有利于George的合同“Mg”和表利于Willy的合同“Mw”之间制造出一冲突,使得“H(Mg)=H(Mw)”。一旦Willy完成这个工作之后,他让George使用George用来签署该合同的散列值为“h”的协议来签署有利于George的合同。在将来的某个时间,Willy用George没有签署过的有利于Willy的合同来替换之前George签署过的有利于George的合同。而Willy可以说服审判员(例如法院的法官)George签署过有利于Willy的合同因为有利于Willy的合同将匹配George对于有利于George的合同的签名的散列值。
用大的散列例如160位的散列中造成冲突,直到最近都被认为是非常困难的。根据当前的处理速度改变和计算280个消息的散列要使用数百台计算机花费数百或者数千年的时间。然而最近,一些人已经证明通过对消息的位做小的并且可控制的改变,只需要用269个消息就可以制造出冲突。如果这是真的,那么几百台计算机在数月中就可能产生冲突;在5或10年内,可能一台计算机能在一年之内产生冲突。
这种可能性和其它攻击使制造潜在冲突变得更加容易,从而使得人们对一些安全散列函数的安全性和用途产生了怀疑。
发明概述
描述用于加强安全散列函数系统和/或方法(“工具”)。在一些实施例中,所述工具可以基于消息创建随机出现元素。所述工具之后将元素与消息组合。使用一安全散列函数将该组合散列,其中所得到的散列与用相同的安全散列函数对不具有该元素的消息计算所得的散列的长度相同。通过这种做法,所述工具可通过降低一些类型的企图制造冲突的攻击的有效性来加强安全散列函数。
在一些其它的实施例中,所述工具可加密信息的子块,计算子块的异或(XOR)并加密子块,接着把子块和异或子块组合。通过这种做法,可对不能通过操纵消息中的位而轻易控制的位的可复制组合进行散列。所得到的散列比通过对消息自身计算而得到的散列更安全。本概述用于以一种简化的方式引入一种概念的节选,其将在下面的详细描述中进一步描述。本概述不是为了识别所要求的主题的关键或基本特征,也不是为了确定所要求主题的范围。
附图简述
图1示出其中可操作各个实施例的示例性操作环境。
图2是处理消息的示例性流程图。
图3是使用块加密和异或操作的安全散列函数的示例性过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680022176.0/2.html,转载请声明来源钻瓜专利网。