AEAD ファイル暗号化/復号化
AES-256-GCM または (X)ChaCha20-Poly1305 と Argon2id でファイルをパスワード暗号化し、復号も可能。ファイルはブラウザから出ません。
入力内容とファイルはブラウザ内に留まります
暗号化
大きなファイルはブラウザでチャンク単位で処理されます。
メモリとパス数を増やすとパスワードの総当たりは遅くなりますが、暗号化と復号にも時間がかかり、同じ量のメモリが必要です。設定はファイルに保存され、復号時に自動で使われます。
Argon2id の OWASP 最低基準(19 MiB × 2 パス)を下回っています。弱いパスワードはすぐに推測される可能性があります。
パスワードの先頭または末尾に空白があります。空白も含め、入力どおりに使用されます。
復号化
ファイルとパスワードを指定して暗号化または復号すると、結果のファイルとヘッダーがここに表示されます。
- 結果
- 鍵導出
- ヘッダー
このページの内容
AEAD ファイル暗号化/復号化は、認証付き暗号(AES-256-GCM、ChaCha20-Poly1305、XChaCha20-Poly1305)でファイルをパスワード保護し、元のファイルに戻します。すべてブラウザ内で行われ、ファイルもパスワードもアップロードされません。
詳細な機能
パスワードは Argon2id(メモリ 64 MiB、3 パス)とランダムな 16 バイトのソルトで 256 ビットの鍵に変換されるため、高性能なハードウェアでもパスワードの総当たりは遅くなります。その後 Rust/WebAssembly モジュールがファイルを 1 MiB のチャンク単位で暗号化します。各チャンクには固有の nonce(ランダムな接頭辞+チャンク番号)と 16 バイトの認証タグが付きます。進捗バーに速度と残り時間が表示され、キャンセル でチャンクの区切りで停止できます。
鍵導出(Argon2id) でコストを選べます。軽量、標準(既定)、強化、最大(1 GiB、PC 向け)、またはメモリ・パス数・レーン数を自分で指定します。コストを上げるほど、パスワードの推測も毎回の暗号化・復号も同じ割合で遅くなります。既定以外の設定は認証付きヘッダーに書き込まれる(9 バイト増)ため、復号に必要なのは引き続きパスワードだけです。OWASP の最低基準を下回る設定には警告が表示されます。
出力は MDT3 形式の .aead コンテナで、アルゴリズム・ソルト・nonce 接頭辞を含む 35 バイト(XChaCha20 では 47 バイト)のヘッダーの後にチャンクが続きます。ヘッダーと「最終チャンク」フラグは各チャンクと一緒に認証されるため、パスワードの誤り、1 バイトの改変、チャンクの入れ替え、切り詰め(チャンク境界ちょうどの場合も含む)、末尾へのデータ追加はいずれも拒否され、壊れた出力にはなりません。アルゴリズムはヘッダーから読み取るので、復号に必要なのはパスワードだけです。
以前のバージョンで作られたコンテナ(MDT2)も引き続き復号できます。ただしこの旧形式は 1 MiB 境界ちょうどの切り詰めを検出できないため、復号後にその旨が表示されます。パスワードは入力どおりに使われます。旧ファイルについては、以前のバージョンが空白を削除していたため、先頭・末尾の空白を除いたパスワードも試します。暗号化・復号したファイルはダウンロード前にメモリ上で組み立てられるため、実質的なサイズ上限は端末の RAM です。
実用例
クラウドに上げる前に暗号化: report.pdf(2.5 MiB)を AES-256-GCM で暗号化すると report.pdf.aead になり、サイズは 2.5 MiB+ヘッダー 35 バイト+タグ 3 × 16 バイトです。ヘッダー 欄は 4d445433(ASCII の MDT3)で始まります。
別の PC で復号: ツールを開き、復号パネルで report.pdf.aead を選び、同じパスワードを入力して report.pdf をダウンロードします。拡張子 .aead のないファイルは名前に .dec を付けて保存されます。
転送の中断: report.pdf.aead の最初の 2 MiB しか届かなかった場合、短くなった PDF を返すのではなく、「復号に失敗しました。パスワードが間違っているか、ファイルが破損または改ざんされています。」というエラーで停止します。
空のファイル: 0 バイトのファイルからも 51 バイトのコンテナ(ヘッダー+認証済みの空チャンク 1 つ)ができるため、中身を消されたコンテナも検出できます。
このツールの使い方
暗号化するファイルを選ぶ
暗号化 パネルの ファイル で ファイルを選択 をクリックします。
アルゴリズムとパスワードを決める
アルゴリズム(既定は AES-256-GCM)を選び、パスワード を入力します。先頭や末尾に空白があると注意が表示されます(空白も含まれます)。
暗号化してダウンロード
ファイルを暗号化 をクリックし、進捗バーが終わったら ダウンロード で
<名前>.aeadを保存します。後で復号する
復号化 パネルで
.aeadファイルを選び、上の欄に同じパスワードを入力して ファイルを復号化、続けて ダウンロード をクリックします。
ヒントとベストプラクティス
- パスワードの復旧手段はありません。忘れると、このツールを含め誰も復号できません。
- 短く「複雑な」パスワードより長いパスフレーズが有効です。Argon2id は総当たりを遅くしますが、
123456は救えません。 - XChaCha20-Poly1305 は 128 ビットのランダムな nonce 接頭辞を使います。同じパスワードで非常に多くのファイルを暗号化するならこちらを選びましょう。
- 「パスワード違い」と「ファイル改変」は意図的に同じエラーになります。タグ検証では区別できないためです。
- 古い MDT2 ファイルは暗号化し直すと MDT3 になり、切り詰め検出が有効になります。
- 一度開いたページは、ネットワークがなくても動作します。