Download the file
  1. #!/usr/bin/perl
  2.  
  3. while(<>) {
  4. next unless /^(\d{5})\t(.*)$/;
  5. my ($c, $w) = ($1, $2);
  6. $w =~ s/%/\\%/g;
  7. $w =~ s/&/\\&/g;
  8. $w =~ s/#/\\#/g;
  9. $w =~ s/\$/\\\$/g;
  10. push @word, [ $c, $w ];
  11. }
  12.  
  13. print "\\documentclass[10pt,a4paper]{article}\n
  14. \\usepackage[margin=2.5cm,noheadfoot]{geometry}
  15. \\usepackage{url}
  16. \\setlength{\\parindent}{0pt}
  17. \\begin{document}
  18. \\sffamily
  19.  
  20. \\thispagestyle{empty}
  21. \\vspace*{2cm}
  22. \\large
  23. \\begin{center}
  24. \\textbf{\\LARGE The Diceware\$^{TM}\$ Word List}
  25. \\end{center}
  26. \\bigskip
  27.  
  28. Diceware lets you make highly secure passphrases that are relatively easy
  29. to remember. To use the Diceware list you will need one or more dice. Dice come
  30. with many board games and are sold separately at toy, hobby, and magic stores.
  31. Toys``R''Us in the US sells a package of five dice for about \\\$0.99. You can
  32. purchase five ``casino-grade'' dice online from \\url{Casinocom.com} for
  33. about \\\$11.
  34. \\bigskip
  35.  
  36. First, decide how many words you want in your passphrase. We recommend a five
  37. word passphrase for use with PGP, S/MIME and similar encryption programs. For
  38. the paranoid, a six word pass phrase will make attacks on your passphrase
  39. infeasible for the foreseeable future. If you want to understand why, see the
  40. Diceware FAQ at \\url{www.diceware.com}.
  41. \\bigskip
  42.  
  43. Now roll the dice and write down the results on a slip of scrap paper. Write
  44. the numbers in groups of five. Make as many of these five digit groups as you
  45. want words in you passphrase. You can roll one die five times or roll five
  46. dice once, or any combination in between. If you do roll several dice at a
  47. time, read the dice from left to right.
  48. \\bigskip
  49.  
  50. Look up each five digit number in the Diceware list and find the word next
  51. to it. For example, 21124 means your next passphrase word would be ``clip''.
  52. When you are done, the words that you have found are your new passphrase.
  53. Memorize them and then either destroy the scrap of paper or keep it in a
  54. really safe place. That's all there is to it!
  55. \\bigskip
  56.  
  57. \\textbf{Example}
  58. \\medskip
  59.  
  60. Suppose you choose a five word passphrase, as we recommend for most users. You
  61. will need 5 times 5 or 25 dice rolls. Let's say they come out as:
  62.  
  63. \\begin{quote}
  64. 1, 6, 6, 6, 5, 1, 5, 6, 5, 3, 5, 6, 3, 2, 2, 3, 5, 6, 1, 6, 6, 5, 2, 2, and 4
  65. \\end{quote}
  66.  
  67. Write down the results on a scrap of paper in groups of five rolls:
  68. \\begin{quote}
  69. 1 6 6 6 5\\hspace{1cm} 1 5 6 5 3\\hspace{1cm} 5 6 3 2 2\\hspace{1cm}
  70. 3 5 6 1 6\\hspace{1cm} 6 5 2 2 4
  71. \\end{quote}
  72.  
  73. You then look up each group of five rolls in the Diceware word list by
  74. finding the number in the list and writing down the word next to the number.
  75. Your passphrase would then be: \\textbf{cleft cam synod lacy yr}
  76. \\bigskip
  77.  
  78. Copyright (c) 2004 by Matthieu Weber for the layout.
  79. Copyright (c) 1995, 2000 by Arnold Reinhold for the front page. The original
  80. document can be found at \\url{http://world.std.com/~reinhold/diceware.html}.
  81. This material may be distributed only subject to the terms and conditions set
  82. forth in the Open Publication License, v1.0 or later (the latest version is
  83. presently available at \\url{http://www.opencontent.org/})
  84. \\clearpage
  85.  
  86. In their February 1996 report, ``Minimal Key Lengths for Symmetric Ciphers to
  87. Provide Adequate Commercial Security'' a group of cryptography and
  88. computer security experts --- Matt Blaze, Whitfield Diffie, Ronald Rivest,
  89. Bruce Schneier, Tsutomo Shimomura, Eric Thompson, and Michael Weiner ---
  90. stated:
  91.  
  92. \\begin{quote}
  93. ``To provide adequate protection against the most serious threats... keys
  94. used to protect data today should be at least 75 bits long. To protect
  95. information adequately for the next 20 years ... keys in newly-deployed
  96. systems should be at least 90 bits long.''
  97. \\end{quote}
  98.  
  99. Each word in your Diceware passphrase yields 12.9 bits of entropy. A five-word
  100. Diceware passphrase has an entropy of at least 64.6 bits; six words have 77.5
  101. bits, seven words 90.4 bits, eight words 103 bits, four words 51.6 bits.
  102. Inserting an extra letter at random adds about 9.5 bits of entropy to a 20
  103. characters passphrase. Here is my best estimate of how much protection various
  104. lengths provide:
  105.  
  106. \\begin{itemize}
  107. \\item Four words are breakable with a hundred or so PCs.
  108. \\item Five words are only breakable by an organization with a large budget.
  109. \\item Six words appear unbreakable for the near future, thought they may be
  110. within the range of large governments.
  111. \\item Seven words and longer are unbreakable with any known technology.
  112. \\item Eight words should be completely secure for some time to come.
  113. \\end{itemize}
  114.  
  115. Pick your passphrase size based on the level of security you want.
  116. \\bigskip
  117.  
  118. For extra security without adding another word, insert one special character
  119. or digit chosen at random into your passphrase. Here is how to do this
  120. securely: Roll one die to choose a word in your passphrase, roll again to
  121. choose a letter in that word. Roll a third and fourth time to pick the added
  122. character from the following table:
  123. \\bigskip
  124.  
  125. ".'
  126. \begin{center}
  127. \begin{tabular}{lc|cccccc}
  128. \\multicolumn{8}{c}{Third roll}\\\\
  129. & & 1 & 2 & 3 & 4 & 5 & 6\\\\
  130. \\cline{2-8}
  131. F& 1 & \\raisebox{-.3em}{\~{}} & ! & \# & \$ & \% & \^{}\\\\
  132. o& 2 & \\& & * & ( & ) & - & =\\\\
  133. u& 3 & + & [ & ] & \\textbackslash & \{ & \}\\\\
  134. r& 4 & : & ; & " & '."'".' & $<$ & $>$\\\\
  135. t& 5 & ? & / & 0 & 1 & 2 & 3 \\\\
  136. h& 6 & 4 & 5 & 6 & 7 & 8 & 9
  137. \end{tabular}
  138. \end{center}'."
  139. \\bigskip
  140.  
  141. \\newgeometry{margin=1.5cm}
  142.  
  143. \\tiny";
  144.  
  145. for ($page=0; $page < 8; $page++) {
  146. print "\\begin{center}\n\\begin{tabular}{ll|ll|ll|ll|ll|ll|ll|ll}\n";
  147. for ($line=0; $line < 122; $line++) {
  148. for ($col=0; $col < 8; $col++) {
  149. print " \& " if $col;
  150. print "$word[$page*976+$line+$col*122]->[0] & $word[$page*976+$line+$col*122]->[1]";
  151. }
  152. print "\\\\\n";
  153. }
  154. print "\\end{tabular}\n\\end{center}\n\n";
  155. }
  156. print "\\end{document}\n";
  157.