我读了声名狼藉的xkcd动画,比较了两个密码及其强度。出于好奇他们的计算是否准确,我搜索了许多熵计算器,并插入了xkcd中的两个例子。
Tr0ub4dor&3
~28
correcthorsebatterystaple
~44Tr0ub4dor&3
46.74
correcthorsebatterystaple
47.43Tr0ub4dor&3
ShannonEntropyBits: 36.05
TrigraphEntropyBits: 71.96
correcthorsebatterystaple
ShannonEntropyBits: 84.10
TrigraphEntropyBits: 110.74Tr0ub4dor&3
63
correcthorsebatterystaple
92Tr0ub4dor&3
Lower Latin 6
Upper Latin 1
Digits 3
Special 1
72.1
correcthorsebatterystaple
Lower Latin 25
Upper Latin 0
Digits 0
Special 0
117.5不仅数字不同,两者之间的差异程度也有波动。KeePassXC引起了我的注意,因为它暗示这两个密码是平等的。为什么会有区别?是否有比H= 1og 2N^L更多的度量标准?
发布于 2023-05-04 06:34:26
熵是不确定性的一种度量。根据上下文的不同,不确定性可能会有所不同。这就是为什么熵不是绝对的。熵取决于上下文。
例如,让我们看看“汽车”这个词。如果我们知道密码是由3个英文小写字母组成的单词,那么就有可能出现26^3=17576不同的密码。如果从该集合中随机选择密码,则熵为14位。
如果我们知道密码是从Diceware列表中随机挑选的,7776个单词,那么熵是13位。字长并不重要。
如果我们知道密码是随机从牛津字典中挑选出来的(约60万字),熵是19位。字长并不重要。"car“(3个字母)和”脑电图“(27个字母)具有相同的19位熵。
如果我们知道密码是从一组4个单词(汽车、卡车、公共汽车、车辆)中随机挑选出来的,那么熵是2位。再说一遍,长度并不重要。
您提到的站点使用的是已知的和不知道的不同的模型。这就是为什么对于相同的密码有不同的估计。
在上面的例子中,我的意思是Shannon熵。另一种类型的熵是最小熵。另见这个职位。还有其他的熵的定义和相应的其他指标。
例如,您可以使用一些高质量的随机生成器生成密码,将密码存储在密码管理器中,并且只记住主密码,即密码管理器的密码。
发布于 2023-05-04 13:59:23
除了使用不同的模型来选择纯粹随机的密码,上面的一些密码强度估计(如KeePassXC 1)考虑到,在构造密码时,用户并不总是随机地从一组可能性中选择。像123456或abcdef这样的密码遵循一个明显的模式,应该被认为比6个随机选择的数字或拉丁字符弱得多。因此,KeePassXC有一个自定义评分算法,它使用zxcvbn密码强度估计器并额外惩罚密码重用和过期密码。这显然会导致与基本熵计算完全不同的分数。
您列出的许多其他算法也会在网站本身或源代码中得到解释,所以如果您想知道结果是如何计算的以及它们为什么不同,您可以检查一下。
https://security.stackexchange.com/questions/270037
复制相似问题