Diceware

Diceware是一种使用普通骰子作为硬件随机数生成器创建密码或其他加密变量的方法。密码中的每个单词，需要掷五次六面骰子。掷骰子出现的1到6的数字将组合成一个五位数，例如43146。然后使用这个数字在密码学词表中查找一个单词。在原始的Diceware词表中，43146对应munch。通过连续生成多个单词，可以随机构建一个长密码。

Diceware词表是任何包含个独一无二的单词的列表，最好是用户能够轻松拼写和记忆的单词。词表的内容不需要以任何方式进行保护或隐藏，因为Diceware密码的安全性在于所选择的单词数量，以及单词表的容量。Diceware已经为中文、英语、俄语、法语、德语、日语、意大利语、西班牙语等30种语言编制了词表。

Diceware密码的不可预测性水平可以很容易地计算：每个单词为密码增加的熵 (即比特)。最初，在1995年，Diceware的作者Arnold Reinhold认为五个单词 () 对于普通用户来说是最小长度。然而，2014年Reinhold开始建议至少使用六个单词 ()。

这种不可预测性水平假设潜在攻击者知道三件事：Diceware被用于生成密码，使用的特定词表，以及组成密码的确切单词数量。如果攻击者拥有的信息较少，熵可能大于。
根据Diceware作者的建议，上述Diceware熵的计算假设每个单词之间使用一个空格分隔。如果单词只是简单地串联在一起，由于冗余性，计算出的熵会稍微降低；例如，三个单词的Diceware短语"in put clammy"和"input clam my"如果去除掉空格就变成了相同的内容。

电子前哨基金会单词表
在2016年，EFF发布了三个英语Diceware备选词表，进一步强调易记性，并避免使用晦涩、抽象或有其他问题的单词；但缺点是典型的EFF风格的密码短语需要输入更多的字符。
片段
原始的Diceware词表包含了种可能的五个骰子组合。一个片段：

...
43136	mulct
43141	mule
43142	mull
43143	multi
43144	mum
43145	mummy
43146	munch
43151	mung
...

例子
Diceware词表例子:
 dobbs bella bump flash begin ansi
 easel venom aver flung jon call

EFF词表例子:
 conjoined sterling securely chitchat spinout pelvis
 rice immorally worrisome shopping traverse recharger
参见
PGP词汇表使用两个256词的列表，每个词有8比特的熵。
蛮力攻击
密码强度
密钥长度
随机数生成

参考资料

 Internet Secrets, 2nd Edition. John R. Levine, Editor, Chapter 37, IDG Books, 2000, 

外部链接
 此漫画图 展示了Diceware密码和一般的密码生成器生成的密码的不同点。
 英语Diceware页面 有多语言版的diceware词表和定义
 一个diceware多词表密码生成器客户端与完整的源代码
 基于Web的diceware应用程序，使用加密安全的getRandomValues()函数 
 EFF的diceware英语词表 


Category:随机数生成
Category:密码
Category:口令认证
Category:骰子