Galois/Counter Mode
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/27 03:24 UTC 版)
Galois/Counter Mode(ガロア カウンター モード、GCM)は、ブロック暗号の暗号利用モードの一つであり、認証付き暗号の一つである。
GCMは認証付き暗号の一つであり、データ保護とメッセージ認証(完全性確認)の両方の機能を提供する。したがって、GCMには鍵 K、平文 P (暗号化されるデータ)、関連データ(associated data. 暗号化せず認証だけされるデータ) A が与えられ、平文から暗号文 C が計算され、C と A から認証タグ T が計算される。 鍵 K を知っている受信者が A, C, T を受け取ったならば、受信者は暗号文を復号して平文 P を得ることができ、また認証タグ T をチェックすることで、暗号文や関連データが改ざんされていないことを確認できる。 GCMはブロック長128ビットのブロック暗号に適用可能である。Galois Message Authentication Code (GMAC) は、認証のみに特化したGCMの派生であり、メッセージ認証符号として利用できる。GCM、GMACのいずれも、任意長の初期化ベクトルを用いることが可能である。
同じブロック暗号であっても、暗号利用モードが異なればそのパフォーマンスや効率には大きな違いが生じる。GCMは並列処理が可能であり、また、その実装は命令パイプラインやハードウェアでのパイプラインを活用することが可能である。一方、CBCモードはしばしばパイプラインストール(命令やユニット間の相互関係によってパイプラインが停止すること)に陥る。
処理の概要
名称が示すように、GCMは暗号化としてCTRモードを、認証として新しいGalois modeを組み合わせたものである。
暗号化においては、CTRモードと同様に、初期化ベクトル IV からブロック暗号(通常,AES)を用いて鍵ストリームを生成し、平文と鍵ストリームとの排他的論理和を取ることで、暗号文を生成する。暗号化はストリーム暗号であるため、鍵ストリームの生成ごとに異なる IV を用いることが重要である.
CTRモードの暗号文は、関連データ(associated data)に連結され、認証のためのGalois modeで処理される。Galois modeでは、入力されたデータをガロア体 (Galois field)上の多項式とみなし、鍵に依存した値 H における多項式評価をし、最後にその評価値を、鍵と IV に依存した値でマスクすることで認証タグを得る。Galois modeにおいて、認証タグの計算のメインである多項式評価は、ガロア体上の加算と乗算からなり、並列計算が可能である。そのため、CBCモードのように連鎖モードを用いる認証アルゴリズムよりも高速化が可能である。
暗号化と認証タグ生成の詳細

まず、初期化ベクトル IV から初期カウンタ値 counter0 を定める。IV は任意長のビット列を用いることができるが、典型的には96ビットが用いられる。その場合、counter0 は以下で定義される。
カテゴリ:ハッシュ関数・メッセージ認証コード・認証付き暗号
カテゴリ
- Galois/Counter_Modeのページへのリンク