ブロック暗号の利用モード
ブロック暗号の利用モードである GCM(Galois/Counter Mode)の説明として,適切なものはどれか。
- アCTR モードによる暗号化と,GHASH を用いた認証タグの生成を組み合わせ,機密性と完全性を同時に提供する。
- イ平文ブロックを直前の暗号文ブロックと XOR してから暗号化するので,暗号化処理を並列化できない。
- ウ各平文ブロックを同じ鍵で独立に暗号化するので,同じ平文ブロックからは常に同じ暗号文ブロックが得られる。
- エ暗号文ブロックを最後まで連鎖させ,最終ブロックの出力を MAC として用いる。データの暗号化は行わない。
正解と解説を見る
正解 ア
この問題の基礎知識
- ブロック暗号の主な利用モードには,各ブロックを独立に暗号化する ECB,平文ブロックを直前の暗号文ブロックと XOR してから暗号化する CBC,カウンタを暗号化した値と平文を XOR する CTR などがある。
- ECB では同じ平文ブロックが同じ暗号文ブロックになり,平文のパターンが現れる。CBC の暗号化は前のブロックの結果を使うので並列化できないが,CTR は並列化できる。
- 認証付き暗号(AEAD)は,暗号化による機密性と認証タグによる完全性を同時に提供する方式であり,GCM や CCM が代表例である。
- CBC-MAC や CMAC はブロック暗号を用いたメッセージ認証コードであり,改ざんの検知だけを行い,データを暗号化しない。
アCTR モードによる暗号化と,GHASH を用いた認証タグの生成を組み合わせ,機密性と完全性を同時に提供する。正解
GCM は認証付き暗号(AEAD)の利用モードで,CTR モードで暗号化し,暗号文と追加認証データから GHASH で認証タグを生成する。受信側はタグを検証して改ざんを検知できる。
イ平文ブロックを直前の暗号文ブロックと XOR してから暗号化するので,暗号化処理を並列化できない。
直前の暗号文ブロックとの XOR を取ってから暗号化するのは CBC モードの説明である。GCM は CTR モードを基にしているので暗号化処理を並列化できる。
ウ各平文ブロックを同じ鍵で独立に暗号化するので,同じ平文ブロックからは常に同じ暗号文ブロックが得られる。
各ブロックを独立に暗号化し,同じ平文ブロックが同じ暗号文ブロックになるのは ECB モードの説明である。平文のパターンが暗号文に現れる弱点がある。
エ暗号文ブロックを最後まで連鎖させ,最終ブロックの出力を MAC として用いる。データの暗号化は行わない。
CBC 方式で連鎖させた最終ブロックの出力をメッセージ認証に用いるのは CBC-MAC や CMAC の説明である。GCM は暗号化と認証の両方を行う。
検証用の出典出典照合済み
NIST SP 800-38D Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC / NIST SP 800-38A / NIST SP 800-38B照合の根拠(6 件)
- ア(正解): CTR モード系の暗号化で機密性を,認証で真正性(完全性)を提供する
GCM provides assurance of the confidentiality of data using a variation of the Counter mode of operation for encryption. GCM provides assurance of the authenticity of the confidential data
NIST SP 800-38D · Section 1(新しいタブで開きます) - ア(正解): 暗号文と AAD から GHASH で認証タグの元を生成する
The concatenation of these strings is appended with the 64-bit representations of the lengths of the AAD and the ciphertext, and the GHASH function is applied to the result to produce a single output block.
NIST SP 800-38D · Section 7.1(新しいタブで開きます) - イの解説: GCM は並列化できる
Each of these functions is relatively efficient and parallelizable
NIST SP 800-38D · Section 1(新しいタブで開きます) - イ(誤り): 直前の暗号文ブロックと連鎖させ並列化できないのは CBC
In CBC encryption, the input block to each forward cipher operation (except the first) depends on the result of the previous forward cipher operation, so the forward cipher operations cannot be performed in parallel.
NIST SP 800-38A · Section 6.2(新しいタブで開きます) - ウ(誤り): 同じ平文ブロックが常に同じ暗号文ブロックになるのは ECB
The Electronic Codebook (ECB) mode is a confidentiality mode that features, for a given key, the assignment of a fixed ciphertext block to each plaintext block
NIST SP 800-38A · Section 6.1(新しいタブで開きます) - エ(誤り): 暗号化を行わず MAC を生成するのは CMAC(CBC-MAC の変形)
This block cipher-based MAC algorithm, called CMAC, may be used to provide assurance of the authenticity and, hence, the integrity of binary data.
NIST SP 800-38B · Abstract(新しいタブで開きます)