機能
AES(Advanced Encryption Standard)は、HTTPS、ディスク暗号化、パスワードマネージャー、メッセージアプリなど、ほぼあらゆる場所で使われる共通鍵暗号です。同じ秘密鍵で暗号化と復号を行います。このツールはテキストをどこにでも貼り付けられる Base64 に暗号化し、元に戻すこともできます。
使える鍵は次の 2 種類です:
- パスフレーズ:PBKDF2-HMAC-SHA256 とランダムなソルトで 128 ビットまたは 256 ビットの鍵に変換します。
- 16 進数の鍵:32 桁または 64 桁の 16 進数(128 / 256 ビット)をそのまま使います。ランダムな鍵で作成できます。
動作モードは 2 つです。AES-GCM は改ざんを検出できる現代の標準です。AES-CBC(PKCS#7 パディング)は古いシステムとの互換性のために用意しています。
使い方
- 暗号化か復号、アルゴリズム、鍵の種類を選びます。
- 入力欄の上部にパスフレーズを入力するか、16 進数の鍵を貼り付けます。
- テキスト(または復号する Base64)を貼り付けると、右側に結果が表示されます。入力に使うで方向を切り替えて往復を確認できます。
出力形式
メールやチャットでも崩れないよう、出力は 1 つの Base64 文字列です:
passphrase: salt (16 bytes) | IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)
hex key: IV (12 GCM / 16 CBC) | ciphertext (+ 16-byte tag for GCM)
復号には、暗号化時と同じアルゴリズム、鍵の種類、鍵長、反復回数を使ってください。これらの設定はページのアドレスに保存されるので、共有リンクには設定だけが含まれ、鍵は手元に残ります。
パスフレーズの選び方
PBKDF2 は推測を遅くしますが、短いパスフレーズやありがちなパスフレーズは守れません。パスワード生成ツールなどで作った長いランダムなパスフレーズを使い、暗号文とは別の経路で共有してください。反復回数を増やすと推測は難しくなり、復号は少し遅くなります。10 万〜60 万回が一般的です。
よくある質問
› GCM と CBC のどちらを選ぶべきですか?
他のシステムが CBC を求めない限り GCM を選んでください。GCM は認証付きなので、鍵の誤りや 1 バイトの改ざんも検出され、壊れた出力にはなりません。CBC は機密性だけを提供し、主に古いコードとの互換性のために使います。
› 暗号文が毎回違うのはなぜですか?
暗号化のたびに新しいランダムな IV を使い、パスフレーズの場合は新しいランダムなソルトも使います。どちらも出力の先頭に保存されるので、復号は問題なくできます。同じ鍵で IV を使い回すこと(特に GCM)は深刻な弱点になります。
› 自分のコードで復号するには?
Base64 をデコードします。パスフレーズの場合、先頭 16 バイトが PBKDF2 のソルト、次が IV(GCM は 12 バイト、CBC は 16 バイト)、その後が暗号文です。同じ反復回数の PBKDF2-HMAC-SHA256 で鍵を導出します。16 進数の鍵ならソルトはありません。GCM では末尾 16 バイトが認証タグです。
› パスフレーズや鍵は保存・送信されますか?
いいえ。暗号化はブラウザ内の Web Crypto API で行われます。パスフレーズや鍵はこのページのメモリ上にだけあり、保存もアドレスバーへの書き込みも共有リンクへの追加もされないので、鍵なしで暗号文だけを共有できます。