消息摘要
消息摘要概念
消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通 过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。
消息摘要采用单向Hash 函数将需加密的明文"摘要"成一串128bit的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。这样这串摘要便可成为验证明文是否是"真身"的 "指纹"了。
HASH函数的抗冲突性使得如果一段明文稍有变化,哪怕只更改该段落的一个 字母,通过哈希算法作用后都将产生不同的值。而HASH算法的单向性使得要找到到哈希值相同的两个不同的输入消息,在计算上是不可能的。所以数据的哈希 值,即消息摘要,可以检验数据的完整性。
哈希函数的这种对不同的输入能够生成不同的值的 特性使得无法找到两个具有相同哈希值的输入。因此,如果两个文档经哈希转换后成为相同的值,就可以肯定它们是同一文档。所以,当希望有效地比较两个数据块 时,就可以比较它们的哈希值。例如,可以通过比较邮件发送前和发送后的哈希值来验证该邮件在传递时是否修改。
哈希算法特性
消息摘之所以能够保证信息的完整性,是由哈希算法的特性所决定的。
Hash算法,也被译做“散列算法”,就是把任意长度的输入,通过哈希算法,变换成固定长度的输出,该输出就是哈希值。数学表述为:h = H(M) ,其中H( )--单向散列函数,M--任意长度明文,h--固定长度哈希值。
在信息安全领域中应用的Hash算法,具有以下关键特性:
第一是单向性(one-way)。单向性指的是从输入值能够简单迅速的得到哈希值,而在计算上不可能构造一个输入值,使其散列结果等于某个特定的哈希值,即构造相应的M=H-1(h)不可行。这样,哈希值就能在统计上唯一的表征输入值。
第二是抗冲突性(collision-resistant),即在统计上无法产生2个哈希值相同的输入值。给定M,计算上无法找到M',满足H(M)=H (M') ,此谓弱抗冲突性;计算上也难以寻找一对任意的M和M',使满足H(M)=H(M') ,此谓强抗冲突性。
第三是映像结果分布均匀性和差分分布均匀性。哈希结果中,为 0 的 bit 和为 1 的 bit ,其总数应该大致相等;输入中一个 bit 的变化,哈希结果中将有一半以上的 bit 改变,这又叫做"雪崩效应(avalanche effect)";要实现使散列结果中出现 1bit 的变化,则输入中至少有一半以上的 bit 必须发生变化。其实质是必须使输入中每一个 bit 的信息,尽量均匀的反映到输出的每一个 bit 上去;输出中的每一个 bit,都是输入中尽可能多 bit 的信息一起作用的结果。
常用哈希算法
MD5 和 SHA-1是目前应用最广泛的Hash算法,而它们都是以 MD4 为基础设计的。
1) MD4
MD4(RFC 1320)是 MIT 的 Ronald L. Rivest 在 1990 年设计的,MD 是 Message Digest 的缩写。它适用在32位字长的处理器上用高速软件实现--它是基于 32 位操作数的位操作来实现的。它的安全性不像RSA那样基于数学假设,尽管 Den Boer、Bosselaers 和 Dobbertin 很快就用分析和差分成功的攻击了它3轮变换中的 2 轮,证明了它并不像期望的那样安全,但它的整个算法并没有真正被破解过,Rivest 也很快进行了改进。
2) MD5
MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。MD5比MD4来得复杂,不过速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。
3) SHA 和 SHA-1
安全哈希算法(SHA)是由美国国家标准和技术协会(National Institute of Standards and Technology)开发的,该协会隶属于美国商务部,负责发放密码规程的标准。然而,SHA算法的安全性要比其名称所暗示的低,1994 年又发布了SHA原始算法的修订版,称为 SHA-1。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。与 MD5 相比,SHA-1 生成 160 位的讯息摘要,虽然执行更慢,却被认为更安全。。它的抗穷举性更好。明文讯息的最大长度可达到 264 位。
消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通 过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。
消息摘要采用单向Hash 函数将需加密的明文"摘要"成一串128bit的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。这样这串摘要便可成为验证明文是否是"真身"的 "指纹"了。
HASH函数的抗冲突性使得如果一段明文稍有变化,哪怕只更改该段落的一个 字母,通过哈希算法作用后都将产生不同的值。而HASH算法的单向性使得要找到到哈希值相同的两个不同的输入消息,在计算上是不可能的。所以数据的哈希 值,即消息摘要,可以检验数据的完整性。
哈希函数的这种对不同的输入能够生成不同的值的 特性使得无法找到两个具有相同哈希值的输入。因此,如果两个文档经哈希转换后成为相同的值,就可以肯定它们是同一文档。所以,当希望有效地比较两个数据块 时,就可以比较它们的哈希值。例如,可以通过比较邮件发送前和发送后的哈希值来验证该邮件在传递时是否修改。
哈希算法特性
消息摘之所以能够保证信息的完整性,是由哈希算法的特性所决定的。
Hash算法,也被译做“散列算法”,就是把任意长度的输入,通过哈希算法,变换成固定长度的输出,该输出就是哈希值。数学表述为:h = H(M) ,其中H( )--单向散列函数,M--任意长度明文,h--固定长度哈希值。
在信息安全领域中应用的Hash算法,具有以下关键特性:
第一是单向性(one-way)。单向性指的是从输入值能够简单迅速的得到哈希值,而在计算上不可能构造一个输入值,使其散列结果等于某个特定的哈希值,即构造相应的M=H-1(h)不可行。这样,哈希值就能在统计上唯一的表征输入值。
第二是抗冲突性(collision-resistant),即在统计上无法产生2个哈希值相同的输入值。给定M,计算上无法找到M',满足H(M)=H (M') ,此谓弱抗冲突性;计算上也难以寻找一对任意的M和M',使满足H(M)=H(M') ,此谓强抗冲突性。
第三是映像结果分布均匀性和差分分布均匀性。哈希结果中,为 0 的 bit 和为 1 的 bit ,其总数应该大致相等;输入中一个 bit 的变化,哈希结果中将有一半以上的 bit 改变,这又叫做"雪崩效应(avalanche effect)";要实现使散列结果中出现 1bit 的变化,则输入中至少有一半以上的 bit 必须发生变化。其实质是必须使输入中每一个 bit 的信息,尽量均匀的反映到输出的每一个 bit 上去;输出中的每一个 bit,都是输入中尽可能多 bit 的信息一起作用的结果。
常用哈希算法
MD5 和 SHA-1是目前应用最广泛的Hash算法,而它们都是以 MD4 为基础设计的。
1) MD4
MD4(RFC 1320)是 MIT 的 Ronald L. Rivest 在 1990 年设计的,MD 是 Message Digest 的缩写。它适用在32位字长的处理器上用高速软件实现--它是基于 32 位操作数的位操作来实现的。它的安全性不像RSA那样基于数学假设,尽管 Den Boer、Bosselaers 和 Dobbertin 很快就用分析和差分成功的攻击了它3轮变换中的 2 轮,证明了它并不像期望的那样安全,但它的整个算法并没有真正被破解过,Rivest 也很快进行了改进。
2) MD5
MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。MD5比MD4来得复杂,不过速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。
3) SHA 和 SHA-1
安全哈希算法(SHA)是由美国国家标准和技术协会(National Institute of Standards and Technology)开发的,该协会隶属于美国商务部,负责发放密码规程的标准。然而,SHA算法的安全性要比其名称所暗示的低,1994 年又发布了SHA原始算法的修订版,称为 SHA-1。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。与 MD5 相比,SHA-1 生成 160 位的讯息摘要,虽然执行更慢,却被认为更安全。。它的抗穷举性更好。明文讯息的最大长度可达到 264 位。
浙公网安备 33010602011771号