Diceware パスフレーズ ジェネレーター — ランダムな単語のパスフレーズ
Diceware メソッドを使用して、実際のランダムな単語から構築された強力で記憶に残るパスフレーズを生成します。これは、実際のエントロピーをビット単位で正直に表示する、真の暗号学的ランダム性です。
結果
このツールは、Diceware の方法でパスフレーズを生成します。入力するのが難しく、覚えるのがさらに難しいランダムな文字の密集した文字列の代わりに、個別にランダムに選択されたいくつかの普通の単語をつなぎ合わせます。 「森、彗星、ランタン、ギター、オアシス、アザミ」のようなパスフレーズは、人間が声に出して読み上げたり、電話のキーボードで入力したり、数回試行すれば記憶できるものでありながら、実際の計算可能なエントロピーを運びます。これはまさに、Diceware スタイルの世代が設計されたトレードオフです。
重要なのはランダム性であるため、ここではそれを真剣に取り上げます。各単語はブラウザの crypto.getRandomValues() 暗号的に安全な乱数生成器を使用して選択され、抽出ごとに適切な拒否サンプリングが行われます。生の 32 ビットのランダム値は、ワードリストの長さで割り切れる範囲にある場合にのみ受け入れられます。残った不均等な剰余の値は破棄され、再ロールされます。このステップをスキップして value % wordlistLength を実行すると、インデックスの高い単語よりもインデックスの低い単語がわずかに優先されます。これは、単純な実装が黙って導入する微妙な統計的バイアスです。このジェネレーターは決してそのような近道をしません。
エントロピーについての正直さは、設計の残りの半分です。バンドルされている単語リストには、1,821 個のユニークで明確な日常的な英単語が含まれています。これは大規模で代表的なリストですが、古典的な Diceware プロジェクトで使用される特定の 7,776 語のリストではないため、このツールは、その正確なリストにのみ適用される有名な 12.9 ビット/ワードという数字を主張することはありません。代わりに、単語ごとのエントロピーが log2(リストの長さ) としてライブで計算され、ここでは単語あたり約 10.8 ビットになります。また、画面上の結果には常に完全な式 (単語カウントと単語あたりのビット数の積、およびその他の要素の正直な寄与分) が表示されるため、マーケティング数値を信頼するのではなく、合計がどのように達成されたかを正確に確認できます。
オプションのトグルも同様に誠実に扱われます。すべての単語を大文字にすることは、毎回同じように適用される固定の決定論的なルールであるため、実際のエントロピーはまったく追加されません。ルールを知っている攻撃者は、どの文字が大文字であるかを知らなくても何も得られません。ツールはそれを明白に示しています。対照的に、ランダムな 2 桁の数値を追加することは、100 個の同様に可能性の高い値にわたって真の追加のランダムな描画であり、実際の明示された ~6.6 ビットを単語の先頭に追加します。すべてはサーバーを介さずにブラウザ内でローカルに計算およびレンダリングされるため、生成したパスフレーズはあなた以外の誰にも見られることはありません。