パスフレーズジェネレーター
いくつかのランダムな単語からなるパスフレーズは、短い記号の寄せ集めよりも覚えやすく、多くの場合、推測されにくくなります。このジェネレーターは、一般的でつづりやすい英単語の内蔵リストからパスフレーズを作り、暗号学的に安全な乱数生成器で各単語を選びます。単語の数(2〜20)、単語間の区切り文字、各単語の先頭を大文字にするかどうか、末尾にランダムな 2 桁の数字を付けるかどうかを選べます。内蔵リストはコンパクトで覚えやすさを重視しています。強度を最大にしたいマスターパスワードには、後述のとおり本格的な Diceware リストに切り替えてください。
パスフレーズが作られる仕組み
-
1
単語の数を選ぶ
2〜20 の間で。単語が多いほど長く強いパスフレーズになります。日常使いには 5〜7 語がちょうどよいバランスです。
-
2
区切り文字を選ぶ
ハイフン、スペース、アンダースコア、ドット、または任意の文字(最大 3 文字)。区切り文字は読みやすさを助けますが、強度はほとんど上げません。
-
3
大文字にするかどうか
読みやすさのために各単語の先頭を大文字にします。これは強度を実質的に変えません。
-
4
数字を付ける(任意)
末尾にランダムな 2 桁の数字を加えます。
-
5
生成して引き直す
単語は暗号学的に安全な乱数生成器で選ばれます。イメージしにくいフレーズなら、しっくりくるものが出るまで生成し直しましょう。
パスフレーズの強度の仕組み
強度はエントロピーのビット数で測ります。これは、等しく起こりうるフレーズがいくつ生成されえたか、その 2 を底とする対数です。N 語のリストから引いたランダムな単語は 1 語あたり log2(N) ビットを加え、それに単語数を掛けたものが合計です。リストが大きく、単語が多いほど、エントロピーは高くなります。
このジェネレーターの単語リスト
このツールは一般的な英単語のコンパクトな内蔵リスト(約 90 語)から引くので、1 語あたり約 6.5 ビットを加えます。したがって 5 語のフレーズはおよそ 33 ビットで、任意の 2 桁の数字がさらに約 6 ビットを足します。これは重要度の低い、覚えやすいログインには十分ですが、マスターパスワードに求められる水準にははるかに及びません。価値の高い秘密には、より多くの単語を使い、フレーズをパスワードマネージャーと併用し、本格的な Diceware リストを選んでください。
参考となる単語リストとそのエントロピー
| 単語リスト | 単語数 | 1 語あたりのビット |
|---|---|---|
| このジェネレーターの内蔵リスト | ~90 | ~6.5 |
| EFF short list | 1,296 | 10.3 |
| EFF large list | 7,776 | 12.9 |
| Diceware original | 7,776 | 12.9 |
| BIP-39(暗号のシードワード) | 2,048 | 11.0 |
7,776 語の完全な Diceware リスト(1 語あたり 12.9 ビット)を使う場合:
- 4 語 ≈ 51.6 ビット(控えめ)
- 6 語 ≈ 77.4 ビット(強い)
- 8 語 ≈ 103.2 ビット(マスターパスワード級)
エントロピーと解読の労力の対応
- 50 ビット:ほとんどのオンライン攻撃には耐えますが、意欲的な攻撃者ならオフラインで数か月あれば解読できます。
- 70 ビット:現在のハードウェアでは、オフラインでの解読に何年も耐えます。
- 90 ビット:当面の将来にわたり、現在の大量解読の能力を超えています。
- 120 ビット:128 ビットの乱数から生成される AES-128 鍵の安全性を上回ります。
なぜランダムな単語が「複雑な」短いパスワードに勝るのか
Xp!9k@Lm3* のような 10 文字の混在パスワードは、本当にランダムなら約 66 ビットのエントロピーがあります。完全な Diceware リストから作った correct-horse-battery-staple-pine-kelp のような 6 語のパスフレーズは 77 ビットです。パスフレーズのほうが強く、入力しやすく、覚えやすいのです。有名な xkcd の漫画がこの直感を説明しています。人間は手作業でエントロピーを生み出すのが非常に苦手なので、解読者が何百万回も見てきた予測可能な「複雑な」パスワードを作ってしまうのです。
ヒント
- 最初の 2〜3 語をイメージで覚える。 単語同士を結びつける奇妙な情景を思い描きましょう。残りは後からついてきます。
- アカウント間で使い回さない。 パスフレーズはそれを保存する最も脆弱なサイトと同じだけしか安全ではありません。マネージャーを使い、ログインごとに固有のフレーズを使いましょう。
- 末尾の数字はわずかしか役立ちません。 2 桁を足してもエントロピーは約 6 ビットしか上がりません。単語を増やす代わりにはなりません。
- マスターパスフレーズは別扱いに。 パスワードマネージャーのマスターやディスク暗号化には、コンパクトな内蔵リストではなく完全な Diceware リストから 7 語以上を使ってください。
役に立たないこと
- ランダムな文字を大文字にする。 エントロピーはごくわずかしか増えず、覚えにくくなります。
- 記号を 1 つ足す。 その位置もランダムな場合にだけ数ビット増えます。ほとんど割に合いません。
- 文字を数字に置き換える(「p@ssw0rd」)。解読ツールは 2000 年代からこの種の置き換えに対応済みです。実質的な改善はありません。
よくある質問
多いほど強くなります。このツールのコンパクトな内蔵リストでは、重要なものには 7 語以上を使い、パスワードマネージャーと併用してください。マネージャーや全ディスク暗号化のマスターパスフレーズが必要なら、短い内蔵リストではなく完全な Diceware リスト(7,776 語)から生成してください。
いいえ。覚えやすさのために選んだ、一般的でつづりやすい英単語の小さな内蔵リスト(約 90 語)を使います。そのため 1 語あたりの寄与は完全な 7,776 語 Diceware リストの 12.9 ビットではなく約 6.5 ビットです。最大強度が必要なら、これは覚えやすい出発点と考え、重要な秘密には完全な Diceware リストに切り替えてください。
区切り文字は意味のあるエントロピーを加えません。快適に入力できるもの(ハイフンやスペース)を 1 つ選び、それを使い続けましょう。単語ごとに区切り文字を変えると、ごくわずかなエントロピーと引き換えに大きな認知的負担が増えるので、割に合いません。
代わりにパスワードマネージャーで、そのサイト用に 16〜20 文字のランダムなパスワードを生成してください。パスワードを 16 文字までに制限するサイトは、たいてい他のセキュリティ対策も間違っているので、使い回しには特に注意してください。
関連ツール
チェックサム検証
任意のテキストの MD5、SHA-1、SHA-256、SHA-384、SHA-512、CRC32 チェックサムを計算し、期待値と比較して一致・不一致を明確に判定します。
CSRジェネレーター
PEMエンコードされた証明書署名要求と対応するRSA秘密鍵を生成します。コモンネーム、組織の項目、鍵のサイズ(2048、3072、4096ビット)を指定できます。
暗号化識別子
暗号文またはハッシュ値を貼り付けると、識別子からMD5、SHA、bcrypt、AES、RSA、Base64などの推定されるアルゴリズムや符号化方式が示されます。
ETH/USD 変換ツール
最新のETH/USDレートまたは自分で入力したレートで、イーサリアム(ETH)を米ドルに変換します。任意のETH数量のUSD価値を確認できます。
暗号識別子
暗号文を貼り付けると、識別ツールが可能性の高いエンコード/暗号方式を示唆します: Base64、16進数、2進数、モールス、シーザーまたは換字、JWT、一般的なハッシュ。
Base64ファイルエンコーダー
あらゆるファイル(PDF、ZIP、画像、実行ファイル)をBase64テキストにエンコードし、JSON、メール、YAML、data URIへ埋め込めます。ブラウザ内でローカルに動作し、アップロードはありません。
このツールは他の言語でも利用できます
- Generator Frasa Sandi [ID]
- Gerador de frase-senha [PT]
- Passphrasen-Generator [DE]
- 패스프레이즈 생성기 [KO]
- เครื่องสร้างพาสเฟรส (Passphrase) [TH]
- مولّد عبارات المرور [AR]
- Generator fraz hasłowych [PL]
- Lösenordsfrasgenerator [SV]
- Trình tạo cụm mật khẩu [VI]
- Generador de frases de contraseña [ES]
- Générateur de phrase secrète [FR]
- Wachtwoordzin-generator [NL]
- Passphrase Generator [EN]
- Generatore di passphrase [IT]
- Генератор парольных фраз [RU]
- Parola Cümlesi Oluşturucu [TR]
- 密码短语生成器 [ZH]