個人のセキュリティ

AES-GCM暗号化/復号

ローカルで動作

ツール自体は英語ですが、このページではお客様の言語でその使い方を説明しています。

AES-GCM暗号化/復号 を使用してください

機能の説明

パスフレーズとAES-256-GCMでテキストを暗号化するか、このツールで作成したBase64文字列を復号します。鍵はパスフレーズのSHA-256ハッシュを1回計算しただけのものなので、長くランダムなパスフレーズを使ってください。

すべてブラウザ上で動作します。入力した内容は一切アップロードされません。

AES-GCM暗号化/復号 の使い方

  1. パスフレーズを入力する. Password / Keyに長くランダムなパスフレーズを入力します。この欄は空の値も受け付けますが、その場合は何も保護されません。
  2. テキストを貼り付ける. 暗号化するテキスト、またはこのツールで作成したBase64文字列をPlaintext / Ciphertextに入力します。
  3. 暗号化または復号する. Encrypt(暗号化)を押すとBase64文字列が得られ、Decrypt(復号)を押すとその文字列がテキストに戻ります。
  4. コピーして安全に共有する. Copyを押し、Base64をある経路で送ります。パスフレーズは、対面や電話など別の経路で伝えてください。
  5. 復号の失敗に対処する. DecryptでError: wrong key or invalid dataと表示された場合は、パスフレーズを1文字ずつ確認し、Base64文字列全体がコピーされているか確かめてください。

例

短いメッセージ

入力
Meet at the usual place at 10:00.
出力(2026-10-20に記録)
sc/i5ncy6JbuW/+WPWQo6pboxhwf1K3tR7fOW49jHPXbZOVhlKrJEXqGkWJ31PqgI7moKwETaLovN0/tlA==

Encrypt(暗号化)は、ランダムな12バイトのIV、暗号文、16バイトのタグをBase64にしたものを返し、実行するたびに結果が変わります。先にPassword / Keyにパスフレーズを入力してください。このツールは空のパスフレーズも受け付けますが、その場合は何も保護されません。

チェック対象

シグナルその意味
鍵パスフレーズのSHA-256で、AES-256の鍵として使われます。ソルトも低速な導出もないため、同じパスフレーズからは常に同じ鍵が得られます。
Base64の先頭16文字12バイトのIVです。Encryptは毎回新しいランダムなIVを生成するため、同じテキストでも実行するたびに出力が変わります。
出力の長さ12バイトのIV、テキストのバイト列、16バイトのタグの順で、すべてBase64になっています。空のテキストでは40文字、23バイトのテキストでは68文字になります。
Error: wrong key or invalid dataパスフレーズが異なる(大文字小文字や空白も区別されます)、文字列が変更されたり途中で切れたりしている、またはBase64ではない、のいずれかです。検証に失敗した場合、GCMはテキストを返しません。
形式ヘッダーなし出力にはバージョンやアルゴリズムの印も関連データ(associated data)も含まれないため、他のソフトウェアで読むには、これとまったく同じ配置と鍵導出が必要です。
Base64の入力Decryptは、Encryptが出力する標準のBase64を想定しています。メールソフトが追加した空白や改行は無視されますが、文字が欠けていたり変更されていたりすると復号に失敗します。
空のパスフレーズも受け付けるその場合、鍵は空文字列のSHA-256となり、誰でも計算できるため、テキストは実質的に暗号化されていません。

その他の例

サンプルを復号する

入力
Password / Key: example passphrase, not a real secret; Ciphertext: AAAAAAAAAAAAAAAAmdUgeZatb2KYwe2btQ+qgA3xKNnswXrrQ6AeKTDSu03TnrvNXygf
結果

DecryptでHello from PhishDestroyと表示されます。このサンプルは説明のためだけに、すべてゼロのIV(先頭のAAAAAAAAAAAAAAAA)で作成されています。Encryptは常にランダムなIVを使います。

パスフレーズの1文字を変えた場合

入力
The same ciphertext with Password / Key: Example passphrase, not a real secret
結果

Error: wrong key or invalid data

空のテキストを暗号化する

入力
Plaintext / Ciphertext empty, any passphrase, Encrypt
結果

40文字のBase64文字列(12バイトのIVと16バイトのタグ)で、押すたびに異なります。

よくある質問

パスフレーズから鍵はどのように作られますか?

AES-256の鍵は、パスフレーズのSHA-256ハッシュを1回計算したもので、ソルトも、PBKDF2やArgon2のような低速な鍵導出も使っていません。そのため、短いパスフレーズや推測しやすいパスフレーズはオフラインで素早く総当たりされる可能性があります。Passphrase Generatorなどで作成した、長くランダムなパスフレーズを使ってください。

出力には何が含まれ、他のソフトウェアで復号できますか?

ランダムな12バイトのIV、続いて暗号文と16バイトのGCM認証タグをBase64にしたものです。パスフレーズが誤っているか、1バイトでも変更されていると、復号時にError: wrong key or invalid dataと表示されます。他のソフトウェアで復号できるのは、同じSHA-256の鍵とバイト配置を使う場合だけです。

テキストやパスフレーズはどこかへ送信されますか?

いいえ。暗号化はWeb Crypto APIを使ってブラウザ内で行われます。パスフレーズとテキストがアップロードされたり保存されたりすることはありません。

シードフレーズをここで暗号化すべきですか?

いいえ。ウォレットのシードフレーズは決してWebサイトに入力しないでください。また、ソルトなしのSHA-256ハッシュ1回で作られた鍵では、弱いパスフレーズがオフラインで総当たりされる可能性があります。シードフレーズは、紙や金属、ハードウェアウォレットなど、オフラインで保管してください。

他のソフトウェアで出力を復号できますか?

はい。同じ配置に従えば可能です。鍵はUTF-8のパスフレーズのSHA-256、IVは先頭12バイト、タグは末尾16バイトで、関連データはありません。Pythonのcryptographyパッケージやその他のAES-GCMライブラリで復号できます。

1つのパスフレーズを多くのメッセージに使い回してもよいですか?

各メッセージには新しいランダムな12バイトのIVが使われるため、使い回しても実際にIVが重複することはありません。本当のリスクはパスフレーズそのものです。それを知った人は、そのパスフレーズで作られたすべてのメッセージを読むことができます。

GCMは通常のAESに何を加えますか?

認証タグです。IV、暗号文、タグのいずれかが変更されると検出され、改変されたテキストを返す代わりに復号が失敗します。

用語解説

PhishDestroyの調査