
「AESで暗号化してるから大丈夫!」
…もしそう思っていたら、この記事はきっとお役に立てるはずです♪
情報処理安全確保支援士の勉強、毎日お疲れ様です!
たくさんの技術用語を覚える中で、
「うちはAESを使っているからセキュリティは万全」
なんて、つい安心してしまいそうになりますよね。
でも、試験の午後問題って、
もっと奥深いことを聞いてきませんか?
「なぜ、その暗号利用モードは危険なのですか?」
「なぜ、こちらを選ぶべきなのですか?」
そう、ただブロック暗号の名前を知っているだけでは、
なかなか答えられないんですよね。
この記事を読めば、その「なぜ?」がスッキリ解消します。
まずは、一番やってはいけないECBモードが、
なぜ危険なのかを、あの衝撃的な画像でしっかりインプット。
そして、その問題を解決するCBCモードや、
現在の主流であるGCMモードの仕組みまで、
ストーリーを追うように、一つひとつ見ていきましょうね。
最後まで読み終える頃には、
きっと「モード」の重要性が腑に落ちて、
自信を持って試験に臨めるようになっていますよ!

記事の要点を動画にまとめました。まずはこちらをご覧ください。(約3分)
情報処理安全確保支援士が学ぶブロック暗号ECBの弱点
はじめに:その暗号化、本当に安全?
「うちのシステムはAESで暗号化しているから大丈夫」。
もしあなたがそう考えているなら、少しだけ立ち止まってみてください。
実は、その安心はとても危険な思い込みかもしれませんよ。
プロの世界では、「どの暗号アルゴリズムを使うか」と同じくらい、
「どう使うか」、つまりどの暗号利用モードを選ぶかが重要視されているんです。
このモードの選択を一つ間違えるだけで、強力なはずの暗号が簡単に弱点を晒してしまうことさえあります。
実際、情報セキュリティのプロであることを証明する国家資格、情報処理安全確保支援士の試験では、まさにこの深い理解が問われます。
試験では、単に「AES」や「CBC」といった用語を覚えているだけでは歯が立たない問題が頻出します。
例えば、Webサーバの設定ファイルに出てくるような、
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
といった、一見すると呪文のような「暗号スイート」の一覧が提示されます。
そして、「この中から安全でないものを全て選び、その理由を具体的に説明しなさい」といった、非常に実践的な形で知識が問われるのです。
これに正しく答えるためには、「なぜGCMモードは推奨されるのか」「なぜ古いCBCモードには懸念点があるのか」といった、技術の背景にある「理由」まで自分の言葉で説明できなければなりません。
この記事では、その「なぜ?」を解き明かすカギとなる「暗号利用モード」に焦点を当てて、
なぜそれが重要なのかを、一緒にじっくり見ていきたいと思います。
まずは基本!ブロック暗号(AES)の仕組み

それでは本題に入る前に、まずは基本となるブロック暗号の仕組みから簡単におさらいしましょう。
ブロック暗号とは、長いデータを一気に暗号化するのではなく、
決まった大きさの「ブロック」という箱に小分けにして、その箱ごとに暗号化処理を繰り返していく方法です。
そして現在、世界中の標準として使われているブロック暗号が、
皆さんも一度は聞いたことがあるかもしれない「AES(Advanced Encryption Standard)」です。
このAESは、アメリカの国立標準技術研究所(NIST)が公募によって選んだ暗号方式で、信頼性は折り紙付きなんですよ。
AESには、いくつか技術的なルールがあります。
- ブロック長: データを分割する箱の大きさは「128ビット(半角英数字16文字分)」で固定です。
- 鍵長: 暗号化に使う鍵の長さは「128, 192, 256ビット」の3種類から選べます。「AES-256」といった表記は、この鍵の長さを表しているんですね。
このAESは非常に信頼性が高く、日本のIPAが運営するJCMVP(暗号モジュール認証制度)でも、もちろん認証済みのアルゴリズムとしてリストアップされています。
この制度は、政府機関などが使う製品のセキュリティを認証するものなので、国のお墨付きをもらっている、と考えていいでしょう。
このように、AESという暗号アルゴリズム自体はとても強力なものなんですね。
ここで一度、共通鍵・公開鍵・ハイブリッド暗号の全体像も整理しておきましょう。試験では「TLSでどう組み合わせるか」まで理解しておくと一気に楽になります👇
最もシンプルな暗号利用モード「ECB」

AESのようなブロック暗号を使って長いデータを暗号化する際の「手順」、それが「暗号利用モード」でしたね。
その中で、最も構造がシンプルなのが「ECB(Electronic Codebook)モード」です。
なぜ「電子の暗号帳(Codebook)」なんて名前がついているかというと、
その仕組みが、まるで単語と訳語が1対1で対応している辞書のようだからなんです。
ECBモードの仕組みは、とても単純明快です。
- 平文(元のデータ)を、128ビットのブロックに分割します。
- 分割したブロックを、すべて同じ鍵で、一つひとつ独立して暗号化します。
- 暗号化されたブロックを、順番通りに連結して完成です。
前のブロックの暗号化結果が、次のブロックに影響を与えるような複雑な連携は一切ありません。
このシンプルさゆえに処理が高速で、ブロック単位での並列処理も可能というメリットがあります。
ですが、このシンプルさには大きな代償が伴います。
例えば、「あいうえおあいうえお」というデータを暗号化すると、
前半の「あいうえお」と後半の「あいうえお」は、全く同じ暗号文に変換されてしまいます。
つまり、ECBモードには、
「同じ内容の平文ブロックは、必ず同じ内容の暗号文ブロックになる」
という、決定的な特性(弱点)があるのです。
この特性は、米国国立標準技術研究所(NIST)の資料「SP 800-38A」でも明確に言及されています。
【画像で一目瞭然】ECBモードの致命的な弱点
前のセクションで触れた「同じ平文は、必ず同じ暗号文になる」という特性。
これが、どれほど衝撃的な結果をもたらすか、これからお見せしますね。
百聞は一見に如かず、です。
ここに、Linuxの有名なペンギンのキャラクター(Tuxくん)の画像データがあります。
この画像をECBモードで暗号化すると、次のようになってしまうのです。

いかがでしょうか。
右の画像は、ピクセルの一つひとつの色は確かに変わっていて、一見すると暗号化されているように見えます。
しかし、ペンギンの輪郭がくっきりと、不気味なほど浮かび上がっていますよね。
これでは、何が描かれているか丸見えです。
これは、画像の背景にある「単色の部分」や、ペンギンのお腹の「白い部分」、体の「黒い部分」が、それぞれ同じデータパターンのブロックとして扱われ、すべて同じ暗号文に変換されてしまった結果です。
攻撃者は、この残ったパターンを手がかりに、データの内容を推測できてしまいます。
これでは、情報を隠すという暗号化の根本的な目的を果たせているとは、到底言えません。
そのため、IPAが策定する「CRYPTREC暗号リスト」など、信頼できる多くのガイドラインでECBモードは「非推奨」とされています。
なぜ「モード」が必要なのか?
あの輪郭が残ってしまったペンギンの画像が、全てを物語っていますよね。
ブロック暗号を安全に利用するためには、AESのような強力な「暗号アルゴリズム(エンジン)」を選ぶだけでは、全く不十分なんです。
そのエンジンのパワーを安全に地面に伝える「暗号利用モード(高性能なタイヤ)」を正しく選ぶことが、絶対に不可欠なのです。
どんなにパワフルなエンジンを積んでいても、ツルツルのタイヤ(ECBモード)を履いていては、スリップして事故を起こすだけですよね。
モードの選択を誤ることは、せっかくの暗号化を無意味にするどころか、
「暗号化しているから安全だ」という誤った安心感を生み出す、非常に危険な状態を招きます。
だからこそ、情報処理安全確保支援士の試験では、この知識が非常に重要視されているのです。
単に用語を暗記するだけでなく、「なぜこのモードを選ぶのか」「選ばないと、どんな危険があるのか」という本質的な理解が、セキュリティの専門家として試されるんですね。
AESの暗号利用モード(CBC)と支援士試験の鍵
ECBを克服する救世主「CBCモード」

あのペンギンの輪郭が見えてしまうECBモードの弱点を、見事に解決してくれる救世主がいます。
それが「CBC(Cipher Block Chaining)モード」です。
日本語では「暗号ブロック連鎖モード」と呼ばれていて、
その名の通り、暗号化するブロックを鎖(チェーン)のようにつなげていくのが最大の特徴です。
CBCモードの処理の流れは、次のようになっています。
- 暗号化したい平文ブロックを用意します。
- それに「一つ前のブロックの暗号文」を混ぜ合わせ(XOR演算し)ます。
- 混ぜ合わせた結果を、鍵を使って暗号化します。
- 出来上がった暗号文は、次のブロックを暗号化する際の「混ぜ合わせる材料」として使われます。
このように、前のブロックの暗号化結果が、ドミノ倒しのように次のブロックの暗号化に影響を与えていくのです。
この「連鎖」の仕組みこそが、CBCモードの核心なんですよ。
比較項目 | ECBモード | CBCモード |
---|---|---|
処理方法 | 各ブロックを独立して暗号化 | 前の暗号文を次の平文に混ぜて暗号化 |
同じ平文 | 必ず同じ暗号文になる | 違う暗号文になる |
安全性 | 非常に低い(非推奨) | 比較的高い |
このため、たとえ同じ「あいうえお」という平文ブロックが続いたとしても、
混ぜ合わせる「一つ前の暗号文」が毎回違うので、最終的に出来上がる暗号文は全く異なるものになります。
こうして、ECBモードの致命的な弱点だった「同じ平文からは、必ず同じ暗号文ができる」という法則を打ち破り、データのパターンを完全に隠してくれるんですね。
なぜ安全?初期化ベクトル(IV)の役割

その通りなんです!前のセクションで、勘の鋭い方が「最初のブロックはどうするの?」と思ったかもしれませんね。
CBCモードは「一つ前の暗号文」を鎖のようにつなげますが、一番最初のブロックには、その「一つ前」が存在しません。
そこで登場するのが「初期化ベクトル(IV:Initialization Vector)」という、とっても大切な存在です。
これは、鎖の起点となる最初のブロックのためだけに使われる、使い捨てのランダムなデータのこと。
言ってみれば、ドミノ倒しを始めるときの「一番最初のドミノ」のようなものです。
このIVがなぜ重要かというと、
たとえ全く同じデータを同じ鍵で暗号化しても、毎回まったく違う暗号文が出来上がるようにするためです。
考えてみてください。もしIVがいつも同じ固定の値だったらどうなるでしょう?
全く同じ文章を暗号化した場合、IVも鍵も同じなので、出来上がる暗号文はいつも全く同じものになってしまいます。
これでは、せっかくCBCモードを使っても、ECBモードと似たような弱点を持つことになってしまいますよね。
だからこそ、IVは暗号化のたびに新しく、そして予測できないように生成する必要があるのです。
このIVの「予測不可能性」がセキュリティを保つ上で極めて重要であることは、米国国立標準技術研究所(NIST)の公式ガイドライン「SP 800-38A」でも厳しく要求されています。
ただ処理を連鎖させるだけでなく、このIVという「ユニークな出発点」があるからこそ、CBCモードは安全性を確保できるんですね。
【現在の主流】認証もできるGCMとは?

CBCモードはECBの弱点を克服し、データのパターンを隠す「機密性」を守れるようになりました。
しかし、実はまだ完璧ではありませんでした。
CBCモードには、通信の途中でデータがこっそり書き換えられていないかをチェックする「完全性」を保証する仕組みがないのです。
攻撃者が暗号文の一部を操作すると、復号した際に意図しないデータに変わってしまう「パディングオラクル攻撃」などの脆弱性が知られています。
そこで現在、私たちが普段使っているインターネット通信(HTTPS)などで主流となっているのが、
「GCM(Galois/Counter Mode)」という、さらに進化したモードです。
GCMのすごいところは、
暗号化による「機密性」の確保と、データ改ざんを検知する「完全性」の確保を、一度の処理で効率的に実現できてしまう点にあります。
このような、暗号化と改ざん検知をセットで行える便利なモードを「認証付き暗号(AEAD: Authenticated Encryption with Associated Data)」と呼びます。
モード | 機密性(盗聴防止) | 完全性(改ざん検知) |
---|---|---|
モード | 機密性(盗聴防止) | 完全性(改ざん検知) |
ECB | △(パターンが漏洩) | × |
CBC | ○ | × |
GCM | ◎ | ◎ |
この強力さと効率の良さから、GCMは広く標準として採用されています。
- CRYPTRECの推奨: 日本の政府機関も参照する暗号技術リストCRYPTRECでは、AES-GCMを「推奨候補暗号リスト」に掲載し、広く利用を推奨しています。
- TLS 1.3での必須化: 最新の通信規格であるTLS 1.3では、認証付き暗号(AES-GCMなど)の利用が必須と定められました。もはや「推奨」ではなく「必須」の技術となっているのです。
このように、GCMは現代のセキュリティを支える、非常に重要な暗号利用モードなんですね。
TLSで“安全につながっているか”を見抜く力も支援士には必須です。実際のブラウザ警告や証明書エラーは、次の記事で“続行して良い/ダメ”の判断軸を具体例つきで解説しています👇
結論:モードの理解がセキュリティの鍵
ここまでECB、CBC、そしてGCMと、代表的な3つの暗号利用モードを見てきました。
もう、皆さんはお分かりのはずです。
「AESで暗号化しているから安全」という言葉が、いかに危ういものであるかを。
強力なAESという暗号アルゴリズム(エンジン)を搭載していても、
どの暗号利用モード(ギア)を選ぶかで、その安全性(走り)は全く変わってしまいます。
- ECBモードを選べば、パターンが漏洩して画像が透けてしまうほど危険。
- CBCモードを選んでも、初期化ベクトル(IV)の管理を怠れば脆弱性が生まれる。
- そして現在の標準は、機密性と完全性を同時に守れるGCMモードであること。
本当の意味で情報を守るためには、「アルゴリズムの名前を知っている」というレベルでは全く不十分なのです。
それぞれの「モード」が持つ特性、メリット、そしてデメリットを深く理解し、
「なぜ、この場面ではこのモードでなければならないのか」を説明できること。
それこそが、セキュリティ確保の真の鍵となります。
支援士試験に向けた学習のポイント
最後に、情報処理安全確保支援士試験の対策として、今日の学習ポイントを整理しますね。
この試験の最大の特徴は、単なる知識の丸暗記では合格できない点にあります。
特に記述式の午後問題では、「なぜこのモードは危険なのか」「なぜこのモードが推奨されるのか」といった、技術選択の根拠を説明させる問題が頻出します。
そこで、この記事で解説した内容を、以下の視点で整理しておくことが非常に重要になります。
モード | 覚えるべきポイント | 試験での問われ方の例 |
---|---|---|
ECB | パターンが漏洩するという致命的な弱点。 | 「なぜこのモードは利用すべきではないか」 |
CBC | 連鎖によりECBを克服。IVの重要性と役割。 | 「このモードが持つ脆弱性は何か」 |
GCM | 機密性と完全性を同時に保証(AEAD)。現代の標準。 | 「なぜこのモードが推奨されるのか」 |
このように、各モードの長所・短所を自分の言葉で説明できるように整理しておくことが、合格への一番の近道です。
さらに一歩進んで学習するなら、IPAが公開している「TLS暗号設定ガイドライン」などに目を通すことを強くお勧めします。
(参考:CRYPTREC 暗号技術活用シーンガイドライン)
実際のガイドラインに触れることで、「なぜGCMが推奨されているのか」といった背景知識が深まり、応用力が問われる午後問題にも自信を持って臨めるようになりますよ。
【総まとめ】情報処理安全確保支援士が押さえるべきブロック暗号モードの要点

最後までお読みいただき、ありがとうございました。