忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【情報セキュリティ】データの繋ぎ方で強固にする!「ブロック暗号のモード」|情報処理問題1000本ノック

AESなどのブロック暗号は、一度に処理できるデータ長(ブロック)が決まっています。長いメッセージを暗号化する際、どのようにブロックを繋いで処理していくかという「アルゴリズムの運用形態」を攻略しましょう。

■ 代表的な5つのブロック暗号モード

同じ鍵を使っても、モードによって暗号文の性質や安全性が大きく変わります。

モード特徴とセキュリティ上の性質
ECB
(Electronic Codebook)
各ブロックを独立して暗号化する最も単純な方式。
【弱点】 同じ平文ブロックからは同じ暗号文が出るため、パターンを推測されやすく現在は推奨されません。
CBC
(Cipher Block Chaining)
前のブロックの暗号文と、次の平文をXOR(排他的論理和)してから暗号化する。現在の主流の一つ。
・最初のブロックにはIV(初期化ベクトル)を使用します。
CFB
(Cipher Feedback)
前の暗号文ブロックを暗号アルゴリズムへの入力に戻す方式。
・ブロック暗号をストリーム暗号(逐次処理)のように利用できます。
OFB
(Output Feedback)
暗号アルゴリズムの出力を、次の入力にフィードバックする方式。
・伝送路でビットエラーが発生しても、そのエラーが後続に波及しない特徴があります。
CTR
(Counter)
ブロックごとにカウントアップする数値を暗号化し、平文とXORをとる方式。
【利点】 各ブロックを独立して計算できるため、並列処理が可能で非常に高速です。

エンジニアが押さえるべき重要ポイント

  • IV(初期化ベクトル)の役割:同じ鍵・同じ平文でも、毎回異なる暗号文を生成するために不可欠な「使い捨ての乱数」です(ECB以外で使用)。
  • パディング:データの末尾がブロック長に足りない場合、特定のルールでデータを埋める作業が必要です(CTRなど一部モードでは不要)。
  • 認証付き暗号 (AEAD):最近では暗号化と同時に改ざん検知も行うGCM(CTRモードの発展形)が広く普及しています。

※ECBは「そのまま並べるだけ」、CBCは「前の結果を次に繋ぐ数珠つなぎ」、CTRは「番号を振って並列処理」というイメージで整理すると、それぞれの特性(特に速度と安全性)の違いが見えてきます。


PR