为了账号安全,请及时绑定邮箱和手机立即绑定

SHA512与Blowfish和Bcrypt

/ 猿问

SHA512与Blowfish和Bcrypt

慕少森 2019-08-06 13:09:36

SHA512与Blowfish和Bcrypt 

我正在看哈希算法,但找不到答案。

  • Bcrypt使用Blowfish

  • 河豚比MD5好

  • 问:但是Blowfish比SHA512好吗?

谢谢..

更新:

我想澄清一点,我理解散列和加密之间的区别。是什么促使我这样问这个问题的是这篇文章作者将bcrypt称为“自适应散列”

由于bcrypt基于Blowfish,因此我认为Blowfish是一种哈希算法。如果它的答案已经指出加密,那么在我看来它应该不会在本文中占有一席之地。更糟糕的是,他总结说bcrypt是最好的。现在让我感到困惑的是phpass类(我相信用于密码哈希)使用bcrypt(即河豚,即加密)。根据这些新信息,你们告诉我(河豚是加密),这个类听起来不对。我错过了什么吗?


查看完整描述

3 回答

?
冉冉说

应该说bcrypt或SHA-512(在像PBKDF2这样的适当算法的上下文中)是否足够好。答案是肯定的,要么算法足够安全,要么通过实施缺陷而不是密码分析发生破坏。

如果你坚持知道哪个更好“,那么SHA-512已经得到了NIST和其他人的深入评论。这很好,但是已经认识到缺陷,虽然现在不可利用,但却引发了针对新哈希算法的SHA-3竞争。另外,请记住,哈希算法的研究比密码更新,密码学家仍在学习它们。

尽管bcrypt作为一个整体并没有像Blowfish本身那么严格的审查,但我相信基于具有良好理解结构的密码可以为基于哈希的身份验证提供一些固有的安全性。此外,使用通用GPU作为攻击基于SHA-2的哈希的工具更容易; 由于其内存要求,优化bcrypt需要更专业的硬件,如FPGA和一些板载RAM。


注意:bcrypt是一种在内部使用Blowfish的算法。它本身不是加密算法。它用于不可逆地模糊密码,就像哈希函数用于执行“单向哈希”一样。

加密哈希算法被设计为无法逆转。换句话说,只给出散列函数的输出,它应该“永远”地找到将产生相同散列输出的消息。实际上,找到产生相同散列值的任何两个消息在计算上是不可行的。与密码不同,哈希函数不用密钥参数化; 相同的输入将始终产生相同的输出。

如果有人提供的密码与存储在密码表中的值进行哈希处理,则会对其进行身份验证。特别是,由于散列函数的不可逆性,假设用户不是持有散列并将其反转以找到工作密码的攻击者。

现在考虑bcrypt。它使用Blowfish来加密魔术字符串,使用密码中的“派生”密钥。之后,当用户输入密码时,再次导出密钥,并且如果通过使用该密钥加密产生的密文与存储的密文匹配,则对用户进行认证。密文存储在“密码”表中,但永远不会存储派生密钥。

为了在这里打破加密,攻击者必须从密文中恢复密钥。这被称为“已知明文”攻击,因为攻击知道已加密的魔术字符串,但不知道使用的密钥。Blowfish已经被广泛研究,并且还没有已知的攻击允许攻击者用单个已知的明文找到密钥。

因此,就像基于加密摘要的不可逆算法一样,bcrypt会从密码,盐和成本因素中产生不可逆的输出。它的优势在于Blowfish对已知明文攻击的抵抗力,这类似于摘要算法上的“第一次预映像攻击”。由于它可以代替哈希算法来保护密码,因此bcrypt被混淆地称为“哈希”算法本身。

假设通过正确使用盐来阻止彩虹表,任何真正不可逆转的功能都会使攻击者减少试错。攻击者可以进行试验的速度取决于不可逆转的“哈希”算法的速度。如果使用散列函数的单次迭代,攻击者可以使用价值1000美元的设备每秒进行数百万次试验,在几个月内测试长达8个字符的所有密码。

但是,如果摘要输出被“反馈”数千次,则需要数百年的时间来测试该硬件上的同一组密码。Bcrypt通过在其密钥派生例程中迭代来实现相同的“密钥强化”效果,并且像PBKDF2这样的适当的基于散列的方法也做同样的事情; 在这方面,这两种方法是相似的。

因此,我对bcrypt的建议源于以下假设:1)Blowfish与SHA-2系列哈希函数具有相似的审查水平,以及2)密码的密码分析方法比哈希函数的密码分析方法更好。


查看完整回答
反对 回复 2019-08-06
?
沧海一幻觉

Blowfish不是哈希算法。这是一种加密算法。这意味着您可以使用blowfish加密某些内容,然后您可以将其解密回纯文本。

SHA512是一种散列算法。这意味着(理论上)一旦您对输入进行散列,您就无法再次获得原始输入。

它们是两种不同的东西,旨在用于不同的任务。“河豚鱼比SHA512好吗?”没有“正确”的答案 你不妨问一下“苹果比袋鼠好吗?”

如果你想在这里阅读更多关于这个主题的一些链接:


查看完整回答
反对 回复 2019-08-06
  • 3 回答
  • 0 关注
  • 485 浏览
我要回答
慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信