问:什么是加密算法的“冲突”?攻击可能制造加密冲突吗? 答:为了解答您的问题,我要向您逐步展示加密学的各个方面。 加密算法的其中一种类型叫哈希函数法。哈希函数将任意长度的信息为输入,然后输入出一个短的、固定长度的结果,被称为哈希值(hash)、摘要(digest)或校验(checksum)。哈希函数在加密学中有许多用途,因为原输入中的任何突变或更改都将改变算出的哈希值。
这意味着哈希函数能够被应用到许多形式的验证中去,比如说数字签名和消息认证码。哈希函数还可以验证文件的完整性,因为即使对文档、信息或任何类型的数据最轻微的更改都将改变哈希值。 哈希函数跟加密函数并不一样,加密是一个双向……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:什么是加密算法的“冲突”?攻击可能制造加密冲突吗?
答:为了解答您的问题,我要向您逐步展示加密学的各个方面。
加密算法的其中一种类型叫哈希函数法。哈希函数将任意长度的信息为输入,然后输入出一个短的、固定长度的结果,被称为哈希值(hash)、摘要(digest)或校验(checksum)。哈希函数在加密学中有许多用途,因为原输入中的任何突变或更改都将改变算出的哈希值。这意味着哈希函数能够被应用到许多形式的验证中去,比如说数字签名和消息认证码。哈希函数还可以验证文件的完整性,因为即使对文档、信息或任何类型的数据最轻微的更改都将改变哈希值。
哈希函数跟加密函数并不一样,加密是一个双向操作,它将明文形式的的数据转化为密码和暗文(back)。然而,对于哈希函数,如果你愿意,它会将一串数据流汇编成一小段摘要(digest)和概要的形式,这是一个严格的单向操作。由于哈希函数的单向性质,密码的哈希值往往就作为密码本身被存储。由于没有办法找到是哪一个密码产生的哈希值,因此这些值对攻击者来说是没有用的。
但是,这又存在着一个不可避免的问题。如果我们产生一个短的、固定长度的哈希值(例如128位)来代表任何长度的数据(长的或短的数据),这意味着可能输入值的数量要远远超过特定的哈希值的数量。因此,多个输入数据流能够产生相同的哈希值。当这种情况发生时,它就被称为(加密)冲突。如果很难找出两个输入有相同的哈希输出,那么哈希函数就被认为是抗冲突(collision-resistant)的。但抗冲突(collision-resistant)并不意味着不存在冲突,它仅仅是指冲突出现的几率很低而已。
一次成功的、针对哈希函数的加密冲突攻击(encryption collision attack)能够破坏所有种类的数字系统的安全性。例如,许多软件出版商会为他们的下载软件提供MD5(Message-Digest algorithm 5)哈希值。但是,如果攻击者恶意地修改了源代码,同时又设法保持相同的哈希值,那么任何下载了被篡改过的版本的用户都不会知道其实自己使用的不是正版软件。
而针对你提出的第二个问题,我要说的是攻击的确试图找到加密冲突。2005年3月,两位研究人员利用不同的公共密钥但用相同的MD5哈希值创造出两个X.509数字证书。从此,一种可以在一分钟之内找到MD5碰撞冲突的算法面世了。
幸运的是,MD5的被证明是非抗冲突的(non-collision resistant),在大多数应用中它正在被哈希函数家族的SHA-2取代。
作者
翻译
相关推荐
-
1024位密钥加密已不再安全
因为“陷阱”素数(‘trapdoored’ primes)的出现,使用1024位密钥加密算法已不再安全。在本文中,专家Michael Cobb解释了加密后门的工作机制。
-
最小密码长度的最佳实践:14个字符的密码真有必要吗?
越来越多的安全专家说,为了阻止暴力密码黑客工具,密码应该超过14个字符。但对大多数企业用户群来说,这似乎有点儿要求太高了。这个密码长度标准是否有必要?
-
高级加密标准和AES加密:它们能否被破解?
高级加密标准(AES)是一种新的、非机密、公开披露的加密算法。这种为保护政府机密情报所采用的加密标准有哪些潜在的限制?
-
如何破解密码:识别加密哈希算法
假设你想要查看从外部源来的数据包,并且想用正确的解密工具来解密数据包。第一种答案是“可以”,第二种答案是“这可能是一个非法的活动。”