GCMとは何ですか?

2026年8月13日公開

← 用語集のすべての項目 Gへジャンプ

ガロア・カウンターモード(GCM)は、ブロック暗号(ほとんどの場合AES)とガロア体ハッシュを組み合わせて、1回の処理で暗号文と整合性タグを生成する認証付き暗号化モードです。これは、データを暗号化した後に別途ハッシュ処理を行う従来の手法に代わるものであり、現在ではIPsec、TLS、およびDTLSのデフォルトモードとなっています。

主なポイント

  • GCMは、1回の暗号化処理でデータの暗号化と認証を行います。
  • ブロック暗号(通常はAES)とGHASH認証を組み合わせています。
  • GCMでは、操作ごとに一意のノンスが必要です。ノンスを再利用すると、セキュリティが損なわれます。
  • ハードウェアアクセラレーションされたGCMは、CBCと別のハッシュ関数を組み合わせた方式よりも高速である。
  • VersaのIPsec、TLS、およびDTLSの各トランスフォームでは、すべてAES-GCM暗号方式が利用可能です。

このページの内容: その重要性仕組みGCMの構成要素GCMとVersaよくある質問

GCMはなぜ重要なのでしょうか?

すべての暗号化トンネルには、2つの保証が必要です。すなわち、盗聴者がデータを読み取れないこと、および攻撃者が転送中にデータを気づかれずに改ざんできないことです。 従来の設計では、これら2つの目標を「暗号化」と「その結果に対するハッシュ計算」という2つの別々のステップで達成していました。これにより、暗号処理の負荷が2倍になり、実装者がこれらの組み合わせを誤る可能性も高まっていました。GCMはこれら2つのステップを1つのアルゴリズムに統合しているため、機密性と完全性は、手作業で組み立てられた組み合わせではなく、単一の明確に定義された操作によって確保されます。

この効率性は、大規模な運用において最も重要となります。最新のCPUには、AESと、GCMの認証ステップで用いられるキャリーレス乗算の両方に対応した専用命令が搭載されているため、AES-GCMは、ほぼすべての現行ハードウェアにおいて、AES-CBC+ハッシュよりも高速に実行されます。 この「より強力な保証」と「低コスト」という組み合わせこそが、IPsec、TLS 1.2/1.3、およびDTLSに関するIETF仕様書がすべてAES-GCMを推奨またはデフォルトの暗号として指定している理由であり、Versaを含む業界全体の新規導入において、CBCベースの変換方式に取って代わった理由でもあります。

GCMとは何ですか?

GCMはカウンターモード(CTR)を基盤としています。ブロック暗号は、一連のカウンター値を暗号化してキーストリームを生成し、これを平文とXOR演算することで暗号文を生成します。これは、AESを高速なストリーム暗号に変えるのと同じ仕組みです。 GCMは、その上にGHASHと呼ばれる認証レイヤーを追加しています。GHASHは、暗号文(および追加の未暗号化ヘッダーデータ)をガロア体での乗算処理にかけ、通常128ビットの固定サイズの認証タグを生成します。

どちらの操作も独立した並列処理可能なブロック上で実行されるため、GCMは、認証を開始する前に暗号化を完了させなければならないモードよりもはるかに高速にデータを処理します。 その代償として、入力要件が厳格になります。すべての暗号化操作において、指定された鍵の下で一意のノンス(初期化ベクトル)が必要です。GCMにおいてノンスを再利用すると、単にセキュリティが徐々に弱まるだけでなく、認証鍵が漏洩し、攻撃者が有効な暗号文を偽造できる可能性があります。そのため、GCMを使用するプロトコルでは、固定の送信者識別子と厳密に増加するカウンタを組み合わせるなど、慎重なノンスの構築が義務付けられています。

GCMの構成要素

GCMは、単一の固定アルゴリズムというよりは、関連する一連の設定の集合体です。主な変数はタグの長さであり、128ビットが標準かつ最も安全な選択肢ですが、基礎となる仕様では、帯域幅に制約のあるリンク向けに、偽造防止の保証が弱まることを代償として、より短い切り詰めタグも定義されています。GMACは、GCMの認証専用版であり、暗号化を行わずに同じGHASHステップを実行します。これは、パケットヘッダーなど、平文のままにしておかなければならないが、整合性チェックが必要なデータを保護するのに役立ちます。

基となる暗号 もう一つの変数は、GCMです。GCMは、あらゆる128ビットブロック暗号を包み込むことができる汎用モードですが、実際にはAESと組み合わせて使用されることがほぼ独占的です。なぜなら、AES-NIによるハードウェアアクセラレーションこそが、GCMのパフォーマンス上の優位性を現実のものにするからです。 この組み合わせは「AES-GCM」と表記され、さらに鍵サイズ(AES-128-GCM や AES-256-GCM)によって詳細が指定されます。また、暗号スイートの名称においては、ハンドシェイクにおける鍵導出に使用されるハッシュ関数によって指定されます。例えば、 AES-256-GCM-SHA384.

GCM &Versa

GCMは、Versaの「セキュアアクセスサービス」でトンネルの暗号化が設定されている場合、どこでも表示されます。 Secure Access ServerまたはSASE クライアントプロファイルのIKE/IPsec設定において、IPsec (ESP) トランスフォーム一覧には、AES 128ビット暗号化とGCMハッシュを用いたESP、およびAES 256ビット暗号化とGCMハッシュを用いたESPが、単一の名称を持つトランスフォームとして提供されています。暗号化アルゴリズムとハッシュアルゴリズムを個別に組み合わせるCBCオプションとは異なり、GCMのエントリにはすでに両方が組み込まれています。

また、GCMは、セキュアアクセスポータルやSASE クライアントセッション向けに提供されるTLSおよびDTLSの暗号スイートリストにも組み込まれています。例えば、 TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 そして TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256. これらのオプションは、Secure SD-WAN 、一般的なセキュアアクセス、およびNGFWを前面に配置した展開環境において共通しています。相手側が対応している場合、AES-GCMは、AES-CBCとハッシュの組み合わせよりも、IPsec、TLS、およびDTLSにおいて推奨されるトランスフォームです。これは、AES-GCMが個別のハッシュ処理ステップを省略でき、最新のハードウェア上でより高いパフォーマンスを発揮するためです。

よくある質問

GCMとCBCの違いは何ですか?

CBCはデータを暗号化しますが、整合性を確認するためにSHAなどの別のハッシュ関数が必要であり、データに対して2回の処理が行われます。一方、GCMは暗号化と整合性検証を1回の処理で同時に行うため、最新のハードウェアでは処理速度が速く、現在では新しいIPsec、TLS、およびDTLSの導入において推奨されるモードとなっています。

なぜGCMでは、すべての操作ごとに一意のノンスが必要となるのでしょうか?

GCMのセキュリティ証明では、生成されるカウンタシーケンスが同一の鍵の下で決して再利用されないことを前提としています。ノンスを再利用すると、攻撃者が認証鍵を復元し、有効な暗号文を偽造できてしまうため、実装では、通常、固定値に厳密に増加するカウンタを加えるなどして、ノンスを慎重に生成する必要があります。

GMACとは何ですか?

GMACは、GCMの認証専用バリエーションです。GCMの整合性タグを生成するGHASH処理と同じ処理を実行しますが、それに付随する暗号化は行わないため、暗号化されたペイロードと併せて送信される暗号化されていないパケットヘッダーなど、読み取り可能な状態を維持する必要があるデータの認証を行うことができます。

GCMは、ハッシュを別途行うCBCよりも高速なのでしょうか?

概してそうです。GCMのカウンターモード暗号化とGHASH認証は、いずれも独立したブロックを並列に処理し、最新のCPUではこれらの処理の両方がハードウェアによって高速化されています。CBC+ハッシュではデータを2回連続で処理する必要があるため、同じハードウェア上では通常、GCMの方が高いスループットを実現します。

AES-256-GCMとはどういう意味ですか?

ここでは、特定の変換方式が指定されています。具体的には、ブロック暗号としてAES、256ビットの鍵、そして暗号化と完全性の両方を提供する動作モードとしてGCMが採用されています。これは、IPsec、TLS、およびDTLSにおいて広く導入されている最も強力なオプションの一つであり、VersaのESPおよび暗号スイート一覧に直接記載されています。

GCMに関する詳細

さらに詳しく知りたい場合は、私たちが信頼している情報源を以下にご紹介します。

RFC 4106: IPsec ESP における GCM の使用 RFC 5288: TLS 用 AES-GCM 暗号スイート
IPsec ESP向けの認証付き暗号化変換としてAES-GCMを定義するIETF仕様書。これにはノンスの生成方法も含まれる。 TLS向けのAES-GCM暗号スイートを定義するIETF仕様書。ハンドシェイクにおいて、GCMとSHA-256またはSHA-384を組み合わせたものである。

GCMについてお読みになっているなら、次はこれらもぜひチェックしてみてください。

高度暗号化規格 セキュア・ハッシュ・アルゴリズム データグラム型トランスポート層セキュリティ
ブロック暗号GCMは、ほぼ常にラップし、GHASHと組み合わさってAES-GCM変換を形成します。 CBCモードのハッシュファミリーは、完全性を確保するためにペアごとに変換を行いますが、GCMではこのステップが単一のパスに統合されています。 TLSと同様に、暗号スイートにおいて一般的にAES-GCM暗号をネゴシエートする、UDPベースのトンネルプロトコル。
この記事は役に立ちましたか?
問題を報告する