从 N 个生成的密码中选择一个的安全性如何?

信息安全 密码
2021-09-04 14:54:18

我希望为自己生成一些易于记忆但难以破解的新密码。通过选择生成算法并用它生成一个随机密码,我可以相对自信地破解我的密码有多难。(我可以计算它的熵。)

相反,如果我一直生成密码,直到看到我喜欢的密码,我的密码的安全性(显着?)就会降低。更糟糕的是,因为我无法像分析算法那样分析自己的思想,我什至不知道我的密码有多不安全。最好(在安全性方面)控制自己并在生成密码之前说“无论生成什么密码都是我将使用的密码”。但它可能不像“正确的马电池订书钉”那样容易记住密码很难预测哪些内容容易/难记,而且因人而异。

一个快乐的媒介怎么样,我决定我将生成恰好 N 个(例如,10 个)随机密码,然后选择其中一个?这会比“1/N 倍”的安全性更糟吗?

1个回答

我喜欢的一个

就是精确熵计算的祸根:人类心理学。很难准确量化攻击者可以在多大程度上模拟您的审美选择。有两个极端:

  • 攻击者可能完全猜不出你喜欢或不喜欢什么样的密码。在这种情况下,攻击者无法利用您的选择,并且密码生成器的熵计算保持不变。

  • 攻击者可能对你的大脑有一个准确的模型,并且准确地知道什么是“讨人喜欢的”和“不讨人喜欢的”。在这种情况下,攻击者会首先尝试最喜欢的密​​码。在这种情况下,从攻击者的角度来看,熵最多将除以N(如果按照惯例将熵表示为“位”,那么您将丢失 log N位)。

现实将介于这两个极端之间。谨慎的立场是假设最坏的情况。因此,如果您生成N = 16 个密码并允许用户选择一个,则认为您刚刚丢失了 4 位熵(因为 16 = 2 4);在具有 2048 个单词列表中的四个单词的“正确马”方法中,因此熵是 44 位,你会下降到 40 位——随着密码的变化,这更弱但仍然相当不错。

至少可以从数学上证明,允许在N个随机密码中进行选择不能将熵减少超过N倍(即,您不能以这种方式丢失超过 log N位)。