AES-GCM
AES-GCM とは何ですか?
AES-GCMAES のカウンターモードと GHASH ベースの認証タグを組み合わせ、機密性と完全性を一度の処理で実現する認証付き暗号モード。
AES-GCM(ガロア/カウンタモード)は、NIST SP 800-38D で標準化された関連データ付き認証暗号(AEAD)モードです。AES(ブロック長 128 ビット、鍵長 128/192/256 ビット)を CTR モードで用いて暗号化し、GF(2^128) 上の GHASH 関数によって、暗号文と追加認証データ(AAD)に対する 128 ビットの認証タグを生成します。一度の処理で機密性と完全性の両方が得られ、カウンタモードは完全に並列化でき AES-NI ハードウェア命令の恩恵を受けられるため、AES-GCM は TLS 1.2/1.3(RFC 5288、RFC 8446)、IPsec、SSH、802.11ac の既定方式となっています。
その決定的な弱点は、nonce 再利用時に壊滅的な破綻を招く点です。GCM の認証はゼロブロックを暗号化して導出した鍵で評価される多項式 MAC であり、同一鍵のもとで 96 ビット nonce を繰り返すと、2 つの暗号文のタグ方程式から攻撃者がその認証鍵を解くことができます(Antoine Joux が記述した 「禁断の攻撃(forbidden attack)」)。認証鍵が一度復元されると、攻撃者は任意のメッセージに対して有効なタグを偽造できます。これは理論上の話ではありません。2016 年の Nonce-Disrespecting Adversaries の研究(Böck、Zauner、Devlin、Somorovsky、Jovanovic、USENIX WOOT)はインターネットを走査し、金融機関を含む 184 台の HTTPS サーバーが nonce を再利用しており、その接続の真正性が完全に破られていることを発見しました。さらに、長時間のセッション中に衝突のリスクがある乱数 nonce を使用するサーバーが 70,000 台以上見つかりました。
防御策としては、乱数ではなく決定論的またはカウンタベースの nonce を使うこと、鍵あたりのデータ量を制限すること(NIST は約 2³² ブロックに制限)、または AES-GCM-SIV(RFC 8452)のような nonce 誤用耐性モードを採用することが挙げられます。
flowchart TD K[AES 鍵] --> CTR N[96 ビット nonce/IV] --> CTR[AES-CTR 暗号化] P[平文] --> CTR CTR --> C[暗号文] C --> G[GHASH over GF 2^128] AAD[追加認証データ] --> G G --> T[128 ビット認証タグ] C --> OUT[暗号文 + タグ] T --> OUT N -. 同一鍵での再利用 .-> X[禁断の攻撃:<br/>認証鍵を復元しタグを偽造]
● 例
- 01
TLS 1.3 暗号スイート TLS_AES_128_GCM_SHA256。
- 02
クラウド KMS でのディスク暗号化やレコード単位の暗号化。
● よくある質問
AES-GCM とは何ですか?
AES のカウンターモードと GHASH ベースの認証タグを組み合わせ、機密性と完全性を一度の処理で実現する認証付き暗号モード。 サイバーセキュリティの 暗号 カテゴリに属します。
AES-GCM とはどういう意味ですか?
AES のカウンターモードと GHASH ベースの認証タグを組み合わせ、機密性と完全性を一度の処理で実現する認証付き暗号モード。
AES-GCM からどのように防御しますか?
AES-GCM に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
AES-GCM の別名は何ですか?
一般的な別名: ガロア/カウンタモード, AES-128-GCM, AES-256-GCM。