オフライン版 — パスフレーズ生成

サイコロを 振れ。

Diceware 方式のパスフレーズとランダムなパスワードを、ブラウザの暗号論的擬似乱数生成器(CSPRNG)から生成します。何も送信・保存・記録されません。このページにはネットワーク接続を開く権限すらありません。

区切り
大文字・小文字
77.5ビットのエントロピー

02 — 解読にかかる時間

どれだけ 持ちこたえるか。

見つかるまでの平均時間(鍵空間の半分)です。攻撃者が生成方法を正確に知っていると仮定しています。速度は桁の目安であり、ベンチマークではありません。

攻撃者速度平均時間
オンラインログイン(試行回数制限あり)100回 / 時間
オフライン · bcrypt(cost 10)GPU 8基 · 約5×10⁴ / 秒
オフライン · NTLM / 高速ハッシュGPU 8基 · 約2×10¹² / 秒
Bitcoin ネットワーク規模の ASIC 群約10²¹ / 秒(仮定)

03 — 信用せず、検証を

何も 外に出ない。

  • connect-src 'none' このページの CSP は fetch・XHR・WebSocket・beacon をすべて禁止しています。同じドメイン宛てでも同様です。
  • ストレージなし Cookie、localStorage、IndexedDB は一切使いません。設定は再読み込みでリセットされます(意図的です)。
  • CSPRNG crypto.getRandomValues と棄却サンプリングを使用。剰余による偏りはありません。
  • 単一オリジン passwd.entropywatch.dev では他に何も動いていません。サードパーティのコードもありません。
セルフテスト
  1. サンドボックスからの脱出を試み、ブラウザが何をブロックしたかを表示します。

04 — 仕組み

短い 回答。

「エントロピーのビット数」とは?

攻撃者が当てなければならないコイン投げ(表か裏か)の回数です。1ビット増えるごとに手間は2倍になります。7776語のリストから6語を選ぶと 7776⁶ ≈ 2⁷⁷·⁵ 通りになり、攻撃者がリストと方法を知っていてもこれは変わりません。

なぜ X7#q! ではなく単語なのですか?

1文字あたりのエントロピーはランダムな記号のほうが大きいですが、単語のほうが入力しやすく覚えやすいです。複雑さより長さが勝ちます。correct-horse のようなフレーズなら、付箋なしで70〜90ビットに届きます。ランダムなパスワードは、パスワードマネージャーが代わりに入力してくれる場所で使いましょう。

何ビット必要ですか?

オンラインでしか攻撃できず、試行回数制限があるアカウントなら50ビット以上で十分です。ハッシュが漏えいしてオフラインで攻撃されうるもの、たとえばドメインアカウントは75ビット以上(6語)。パスワードマネージャーのマスターパスワード、ディスク暗号化、SSH 鍵のパスフレーズは90ビット(7語)。計算の詳細と、Windows ネットワークでオフライン攻撃が起きる場所についての記事(英語):How long should a passphrase be?

こういうことに Web サイトを信用してよいのですか?

健全な疑いです。だからこそ、このページはネットワークに接続できず、セルフテストを備えています。さらに安全なのは、オフラインで使うこと(読み込んでから接続を切る)か、EFF のリストと本物のサイコロを使うことです。

なぜ単語が英語なのですか?

このジェネレーターは英語の EFF Large Wordlist を使っています。強度はリストの大きさとランダムな選択だけで決まり、言語には依存しません。7776語のリストなら、どの言語でも6語で同じ77.5ビットです。EFF のリストを使うのは、公開されていて第三者のレビューを受けており、SHA-256 のハッシュで検証できるからです。