mtt*_*ttr 5 passwords cryptography aes
在过去的几天里,我看了一下密码学和相关问题,现在我很困惑.我有一个关于密码强度的问题,我希望有人可以通过分享他们如何思考以下问题来消除我的困惑.我对这些事情很着迷,但需要花费我的时间,否则:-)
假设我们有一个八位数的密码,包括大写和小写字母,数字和常用符号.这意味着我们有96 ^ 8~ = 7.2千万种不同的可能密码.
据我所知,至少有两种方法可以破解这个密码.一种是尝试蛮力攻击,我们试图猜测每种可能的角色组合.现代处理器(2010年,Core i7 Extreme)每秒猜测多少密码(单个密码猜测需要多少指令以及为什么)?我的猜测是需要多年的现代处理器来破解这样的密码.
另一种方法包括获取操作系统存储的密码哈希值,然后搜索冲突.根据所使用的哈希类型,我们可能会比暴力攻击更快地获得密码.关于这一点的一些问题:
最后,无论使用AES-128/256的文件加密强度如何,弱链接仍然是我使用的加密/解密密码.即使打破加密的文本需要比宇宙的生命周期更长的时间,对我的de /加密密码的蛮力攻击(猜测密码,然后尝试解密文件,尝试下一个密码......),可能会提前很多成功而不是宇宙的尽头.那是对的吗?
如果人们可以怜悯我并帮助我思考这些可能简单的问题,我会非常感激,这样我才能重新开始工作.
据我了解,至少有两种方法可以破解此密码。一种是尝试暴力攻击,我们尝试猜测每种可能的字符组合。现代处理器(例如 2010 年的 Core i7 Extreme)每秒可以猜测多少个密码(单个密码猜测需要多少条指令以及原因)?
正如您所观察到的,这取决于所使用的算法。SHA1 是一种常见(尽管很糟糕)的选择,所以让我们考虑一下。
软件中最好的 SHA1 实现声称在 1024 字节块上每字节仅需 5.8 个周期;让我们慷慨地假设它在单个 512 位块上同样高效;这意味着每个块需要 371.2 个周期,或者等效地,每个密码猜测需要 371.2 个周期。在您建议的处理器上,维基百科声称其速度为 147,600 MIPS,非常乐观的是,每个核心每秒进行 4 亿次猜测,或者整个处理器每秒略低于 23 亿次。请注意,这些都非常乐观,但至少应该在大致范围内。
另一种可能性是专用硬件:它声称在 FPGA 上运行,每个块执行 82 个时钟周期,并以 350mhz 运行 - 这听起来并不令人印象深刻,每秒只有 420 万次猜测,直到您考虑到每个核心只有 14,500 个门,你可以建造很多,您可以在 Core i7 的大小中
另请记住,良好的密码哈希方案会重复对密码进行哈希处理(数百次甚至数千次),这会增加您必须完成的工作量。
然而,如果您无权访问密码哈希(您通常不会这样做),那么所有这些都有些无关紧要。在这种情况下,您的猜测速度会受到限制,而设计良好的系统将很容易检测到您的暴力攻击,并切断您的连接,从而使密码的大小在某种程度上变得无关紧要。
另一种方法包括获取操作系统存储的密码的哈希值,然后搜索冲突。根据所使用的哈希类型,我们可能比暴力攻击更快地获得密码。与此相关的一些问题:
上述句子中的断言正确吗?
不完全是。您似乎已经假设您在第一个问题中拥有密码哈希值。暴力攻击正在搜索所有可能的密码 - 它们不是两个不同的东西。
我如何考虑查找 MD4、MD5 等哈希值冲突所需的时间?
目前还没有已知的针对 MD5 或 SHA1 的实用原像攻击。我不确定 MD4,但现在任何头脑正常的人都不应该使用它!
最后,无论使用 AES-128/256 的文件加密强度如何,薄弱环节仍然是我使用的加密/解密密码。即使破解密文需要比宇宙的生命周期更长的时间,对我的解密/加密密码的暴力攻击(猜测密码,然后尝试解密文件,尝试下一个密码......)可能会更早成功比宇宙的尽头。那是对的吗?
正确,这就是为什么好的加密系统不会直接使用密码生成的密钥来加密消息,而是使用其他系统(例如公钥加密),要求攻击者首先获取您的私钥(这首先应该很困难) ),然后尝试破解密码。