AES を GCM モードで認証付き暗号化に使う
AES-GCM は 1 回の操作で機密性と完全性の両方を提供し、別途 HMAC なしで改ざんを検出します。ほとんどのアプリケーションで推奨される AES モードです。
- 1
GCM(Galois/Counter Mode)は、暗号化に AES-CTR を、認証に GHASH を組み合わせます。暗号文に加えて 16 バイトの認証タグを生成します。復号時にタグが検証されなければ、データは改ざんされているため拒否しなければなりません。認証なしの AES-CTR 単独は決して使わないでください。
- 2 AES 暗号化ツール →
AES でデータを暗号化して暗号文を生成します。GCM モードでは、認証タグも生成され、暗号文と一緒に保存しなければなりません。
- 3 AES 復号ツール →
同じ鍵で復号し、認証タグを検証します。検証に失敗した場合、暗号文は転送中に改変されています。復号せずに拒否してください。
- 4
GCM の要件:暗号化ごとに一意の 96 ビット nonce(同じ鍵で再利用しない)、平文を信頼する前に 128 ビットの認証タグを検証すること。GCM は並列化可能でハードウェアアクセラレーション(AES-NI)も効くため、最近の CPU で最速の認証付きモードです。
よくある質問
- GCM の nonce を再利用するとどうなりますか?
- GCM での nonce の再利用は壊滅的です。認証鍵(H)が漏洩し、有効なタグの偽造が可能になります。CTR モードでの nonce 再利用より悪いです。カウンターベースかランダムの nonce を使い、絶対に繰り返さないでください。
- GCM と CBC+HMAC の違いは?
- GCM は高速で(シングルパス、並列化可能、ハードウェアアクセラレーション)、タグも短くなります。CBC+HMAC は 2 パスですが、nonce 再利用による壊滅的失敗はありません。ほとんどの新しいシステムでは GCM を使ってください。
このタスクを解決するワークフロー
関連ツール
AES 暗号化ツール
Encrypt text or binary data with AES (CBC/GCM/ECB) using Web Crypto API。無料、プライベート、100%クライアントサイド。 ツール
AES 復号ツール
Decrypt AES-encrypted data (CBC/GCM/ECB) using Web Crypto API。無料、プライベート、100%クライアントサイド。 ツール
HMAC ジェネレーター
Generate HMAC (Keyed-Hash Message Authentication Code) with SHA-1/256/512。無料、プライベート、100%クライアントサイド。 ツール