根据此报告:http://www.ecrypt.eu.org/csa/documents/D5.4-FinalAlgKeySizeProt.pdf
SHA2-512,SHA3-512,Whirlpool和Blake2b是可以安全使用的哈希函数在接下来的50年中。

对于永远不会收到安全更新的系统,要散列密码,我应该使用这4个功能中的哪一个来获得最大的安全性?

评论

只要哈希函数具有原像抵抗能力,密码选择对于长期安全性就比算法选择更为关键。无论您使用的密码哈希算法多么先进,使用字符串“ Password1”都是一个错误的决定。另一方面,像SHA-2这样的任何单向函数都足以使暴力破解(随机生成的)密码与暴力破解密钥一样困难。

@JamesReinstateMonicaPolk量子计算机不会破坏这些算法,而是会削弱其安全性。

@ 09182736471890:我实际上知道,我不知道写评论时的想法。立即删除。

#1 楼

没有。密码散列不直接适合于存储密码散列。

您应使用密码散列(如果用于派生密钥,也称为基于密码的密钥派生函数或PBKDF),例如

但是,如果您使用的是密码,那么50年来不更新安全性是疯狂的;关于密码的安全性,存在很多争论。密码通常仅提供一定程度的安全性,通常在30-50位范围内。这已经不能提供足够的熵,更不用说在50年的时间里了。

密码散列增加了一个工作因数,但是在50年后,由于芯片制造的进步,这个工作因数可能已经变得微不足道了。因此,额外的工作因数(例如,由迭代计数引入)已变得小得多。请注意,查找密码是一项容易并行化的任务,因此它并不是非常依赖于单核CPU速度。


您还可以使用128位甚至256位安全性,并允许人们编写而是选择一个随机生成的密码/密钥(例如32/64个十六进制数字)。这样,您可以使用简单的哈希来隐藏静止的密码/密钥。为此,您可以使用上面的哈希算法之一;我会选择SHA-3。但是,由于密码更大,您的密码管理变得更加复杂,因为人们可能无法记住它。

可以通过让人们使用易于维护的密码管理器来解决此问题。记住/不太复杂的密码或短语。这样的密码管理器应可直接用于黑客。使用密码管理器的另一个优点是,如果密码可能以任何方式变得易受攻击,则可以更新密码。


同样,您可以使用大型EC公钥并保护密钥对的私钥。但是,最常见的非对称算法容易受到量子计算机的攻击。在接下来的50年中,它们很可能会变得庞大并且相互关联。基本上,后量子密码学仍然是专家的领域(甚至比普通的现代密码学还多)。

评论


$ \ begingroup $
在您的问题领域中可能还有其他适用的解决方案(我们不知道),但这是一个相对通用的解决方案,应该可以使用。
$ \ endgroup $
–马腾·博德威斯♦
18年7月24日在13:26

$ \ begingroup $
非常感谢。我计划使用50年,因为更新过程需要人工干预(适用于没有Internet的嵌入式系统)。我正在考虑使用其他密码。但是,如果我需要获取文件的校验和,SHA3是否足够好? (以防止文件受到像MD5那样的碰撞攻击进行编辑en.wikipedia.org/wiki/MD5#Security)
$ \ endgroup $
– Myrage2000
18年7月24日在17:37

$ \ begingroup $
@ Myrage2000如果要设计这样的系统,则确实需要威胁模型。然后,您证明自己可以防范该威胁模型。在大多数情况下,通用建议是好的且有用的,但是如果您正在限制加密技术可以说的话,那么值得您一次真正地对您的独特问题进行一次性分析。
$ \ endgroup $
–Cort Ammon
18年7月24日在19:03

$ \ begingroup $
目前,我还不知道任何加密算法都可以连续运行50年,尽管RSA正在崛起。有更多经验的人也许可以在此方面纠正我。根据我们的往绩记录,您至少要定义50年范围内对您而言“安全”的含义。
$ \ endgroup $
–Cort Ammon
18年7月24日在19:06



$ \ begingroup $
@CortAmmon我不知道任何隔年都没有发现严重bug(或回顾性设计决策)的RSA或其他加密算法的实现。这似乎是一个更大的问题。如果明年有人在实现(或使用的硬件)中发现严重问题,谁会在乎数学算法从理论上讲是永恒的? (从这个角度来看,采用经过测试的较旧算法的实现,而不是采用最新,最酷的算法,甚至可能是有意义的)
$ \ endgroup $
– Voo
18年7月25日在9:17



#2 楼

正如Maarten所写,您应该使用专用的密码哈希算法,而不要使用通用哈希函数。

但是我想讨论在50年后的规划中徒劳无益。要知道到目前为止的未来对我们来说真的是不可能的。

尽管如此,可能会有各种各样的变化,我们现在甚至都无法想象。

我们最好的选择是回顾50年前,这50年将发生的变化。在过去的50年中,一切都改变了。密码术被重新发明了。 50年前我们甚至没有DES,更不用说我们认为安全的任何东西了。我们没有添加密码,没有存储硬功能或旁通道攻击或我们现在认为必不可少的任何东西。

提供一些安全性的最古老的密码哈希可能是基于DES的Unix密码;它有盐和迭代来减慢它。但是它仅支持8字节密码,无法调整迭代次数,并且盐少。那是40年前。

也许加密技术将达到平稳状态,而今天我们最好的加密技术将继续存在。但我不会给您带来很大的机会。

我们可能会发现您选择的任何漏洞,我们可能会发现广泛的新通用攻击。
我们可能会发现没有人可以攻击完全没有双向功能。

未来50年规划加密货币是徒劳的。

评论


$ \ begingroup $
谢谢。这是针对没有互联网的嵌入式系统,因此需要人工干预才能对其进行更新。这就是为什么我计划50年。
$ \ endgroup $
– Myrage2000
18年7月24日在17:30

$ \ begingroup $
没有人知道50年后会发生什么。但是,您今天可能会偏执,希望拥有最好的。尽力而为,不要妥协,您就有机会。对于嵌入式,您可能会因性能而妥协。对于密码散列,argon2i是用于文件指纹sha3的安全选择(除了有点新以外)。
$ \ endgroup $
–梅尔·莫尔(Meir Maor)
18年7月24日在18:11