コンテンツへスキップ
uencoder

AES を GCM モードで認証付き暗号化に使う

AES-GCM は 1 回の操作で機密性と完全性の両方を提供し、別途 HMAC なしで改ざんを検出します。ほとんどのアプリケーションで推奨される AES モードです。

  1. 1

    GCM(Galois/Counter Mode)は、暗号化に AES-CTR を、認証に GHASH を組み合わせます。暗号文に加えて 16 バイトの認証タグを生成します。復号時にタグが検証されなければ、データは改ざんされているため拒否しなければなりません。認証なしの AES-CTR 単独は決して使わないでください。

  2. 2
    AES 暗号化ツール →

    AES でデータを暗号化して暗号文を生成します。GCM モードでは、認証タグも生成され、暗号文と一緒に保存しなければなりません。

  3. 3
    AES 復号ツール →

    同じ鍵で復号し、認証タグを検証します。検証に失敗した場合、暗号文は転送中に改変されています。復号せずに拒否してください。

  4. 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 を使ってください。

このタスクを解決するワークフロー

関連ツール