我了解为什么 diceware 能够产生良好的安全性以及为什么现在七字密码是一个好主意的基础知识。
EFF 已帮助生成更新的 diceware 列表,消除了记忆 diceware 密码短语的许多麻烦。(见https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases)
但是,即使使用 EFF 新的长 diceware 列表,七字密码仍然很难记住。当然,随着时间的推移,大多数人会记住它,但我想知道是否没有更简单的方法来实现安全性和记忆性。
(如果这是对更聪明的人已经想到的事情的重述,请提前道歉。)
由于 diceware 列表的知识是无关紧要的,因为只有唯一单词列表的长度对熵有贡献,所以从多个列表中进行选择与从一个列表中反复选择一样安全。
那么为什么不创建四个单独的列表,每个列表有 7,776 个单词,但每个列表都严格限制为 a) 形容词、b) 名词、c) 动词和 d) 副词?
通常会创建一个 diceware 密码,每个单词掷 5 个骰子。
但是,假设我们的目标是七字密码,我们会选择:
列表 a 中的单词 1(形容词)列表 b 中的单词 2(名词)列表 c 中的单词 3(动词)列表 b 中的单词 4(名词)列表 d 中的单词 5(副词)
这将产生如下形式的英语句子:
形容词 名词 动词 名词 副词(例如蓝色壁炉轻快地吃狗)
对于大多数人来说,这可能很奇怪,但也很容易记住(熵不亚于从标准 diceware 列表或 EFF 改进的长 diceware 列表中选择的五个字密码)。
不过,这对于安全性来说还不够长,所以我们可以继续选择:
列表 b 中的单词 6(名词)列表 d 中的单词 7(副词)
产生一个 7 字的密码短语,形式如下:
形容词 名词 动词 名词 副词 名词 副词
在第 5 个和第 6 个单词之间加上一个“and”,这句话可能很容易记住。大概“and”不会降低安全性,因为即使知道它,我们在句子中仍然有 7776^7 个单词组合。
我认为这个方案的最大问题是英语中可能没有 7,776 个副词(或者可能有?)。
在这种情况下,我们仍然可以使用类似的方案,使用仅由形容词(在英语中可能比必要的数量级多一个数量级)、名词和动词列表构成的两个句子,如下所示:
列表 a(形容词)中的单词 1 列表 b(名词)中的单词 2 列表 c(动词)中的单词 3 列表 b(名词)中的单词 4 列表 b(名词)中的单词 6 列表 c(动词)中的单词 7来自列表 b(名词)
如果你愿意,可以在单词 4 和 5 之间加上一个分号或句号,你会得到这样的结果:
形容词 名词 动词 名词 名词 动词 名词 (例如蓝色壁炉吃狗;电视飞披萨)
我推测这些类型的句子对大多数人来说更容易记住,因为它们创造了人们容易记住的动作图像。在上面的例子中,它会是一个蓝色的壁炉吃一只狗,而一台电视机在披萨上飞。
显然,也可以通过在第二句中包含形容词来制作 8 个单词的密码。
这是一个已经探索过的策略吗?
它有已知的弱点吗?
是否有已发布的名词、动词和形容词的 diceware 列表?(还有副词?)