如何计算密码强度?

时间:2014-12-17 15:13:28

标签: math passwords password-protection

我使用的是某种电子货币,他们使用密码作为密码。 基本上每个密码都是12个英文单词长。我如何计算这是多么安全? 我对这些事情知之甚少,但是对于字典攻击来说,12个字似乎相当可行(至少在我看来)。

当然,我担心这是多么安全,而不仅仅是询问它是否存在,我想知道自己计算它的方法(当然,你可以破坏答案)。

欢迎任何建议,链接,文献推荐等!

PS:普通计算机需要多长时间才能获得上面提供的详细信息的有效密码短语?我需要知道,如果真的不需要那么多努力,我是否必须定期开设新账户以转移资金。我也很感激有关如何计算的信息,但这不是主要问题。再次感谢!

1 个答案:

答案 0 :(得分:6)

这都是entropy的问题。有多少个不同的符号需要测试?

传统上,密码是一串字符。符号就是字符。如果使用小写字母,则a-z是26个可能字母的范围。使用大写和数字,您将获得62个符号。对于ASCII集中的所有特殊符号(因此没有花哨的编码),您已经获得了90多个可能的符号。在你的情况下,符号就是一个单词。

从这里http://www.oxforddictionaries.com/words/how-many-words-are-there-in-the-english-language,我会收集到你可以期待的115000个单词(没有过时和衍生物)。

然后,对于给定位置的每个可能角色,您可以选择其他位置的每个可能角色。因此,如果您的密码以$开头,则您仍然可以为其他职位设置任何角色。这意味着我们必须将每个符号位置的可能符号数相乘。因此,对于具有可能符号的2个字符,您有s*s种可能性。一般情况下,您可能需要c个字符s c 来获取密码。

请注意,这意味着在字典单词的情况下,您可以放置​​随机单词而不是制作句子!

但在你的情况下,这可能有115000 12 ,约为5.3 * 10 60 。非常多。

然后,通过测试密码需要多长时间t来给出强制密码的时间,基本上(t*5.3*10 60 {{ 1}}在你的情况下。


作为旁注,如果您尝试使用完全随机密码而不是逐个枚举所有可能性,那么平均尝试次数会增加一倍。如果我们模拟尝试使用Bernoulli distribution的密码,这是随机变量的概率分布,其取值为1,成功概率为p,值为0,失败概率为q = 1-p,则p = 1 /(5.3 * 10 ^ 60)和伯努利试验是一次尝试(输入随机密码)。

然后我们可以使用几何分布,它模拟了获得一次成功所需的独立和相同的伯努利试验的数量。它的预期值为1 / p,因此我们可以在获得密码之前平均尝试5.3 * 10 ^ 60次。