今週からは、セキュリティ技術の核となる「暗号技術」について学んでいきます。「暗号」という言葉から、スパイ映画に登場するような難解な数式を想像するかもしれません。
しかし、情報処理安全確保支援士試験で求められるのは複雑な数学の証明ではありません。「どんな種類の暗号があり、それぞれどんな特徴があるか」を理解し、状況に応じて適切に使い分ける知識です。
第2週の初日となる今日は、最も基本的で、私たちの身の回りでも広く使われている「共通鍵暗号方式」について解説します。「家の鍵」と同じくらいシンプルな仕組みですが、そのシンプルさゆえの強力なメリットと、避けられない弱点があります。この「弱点」こそが、試験で狙われる重要ポイントです。
共通鍵暗号方式とは?「一つの鍵」で全てを行う

仕組みの基礎:「家の鍵」でイメージしよう
共通鍵暗号方式(Symmetric Key Cryptography)の仕組みは、非常にシンプルです。イメージとしては、普段使っている「家の鍵」と全く同じです。
家を出るときに鍵をかけて(暗号化)、帰ってきたら同じ鍵で開けます(復号)。この「閉じる鍵」と「開ける鍵」が共通(同じ)であることから、「共通鍵暗号方式」と呼ばれます。
ITの世界では、「平文(ひらぶん:普通のデータ)」を「暗号文(読めないデータ)」に変換することを暗号化、その逆を復号と言います。
共通鍵暗号では、送信者(Aさん)と受信者(Bさん)が、あらかじめ「秘密の共通鍵」を共有しておきます。
- Aさんは「共通鍵」を使ってデータを暗号化し、Bさんに送ります
- 受け取ったBさんは、Aさんと同じ「共通鍵」を使って暗号文を復号し、元のデータを読みます
もし途中で悪意のある第三者(Cさん)が暗号文を盗み見たとしても、「共通鍵」を持っていないので中身を読むことはできません。
身近な例で理解する
この方式は、私たちの身の回りで数多く使われています。
パスワード付きZIPファイル: ファイルを圧縮する際にパスワード(共通鍵)を設定し、解凍する際に同じパスワードを入力します。送信者と受信者が同じパスワードを知っていることで、安全にファイルをやり取りできます。
無線LAN(Wi-Fi)の暗号化: 家のWi-Fiルーターとスマートフォンは、接続時に設定した同じパスワード(PSK: Pre-Shared Key)を使って通信内容を暗号化しています。このパスワードが共通鍵として機能し、第三者による盗聴を防いでいます。
ハードディスクの暗号化: 企業のノートPCや個人のストレージデバイスでは、ディスク全体を暗号化する機能が標準搭載されています。これも共通鍵暗号を使用しており、正しいパスワード(鍵)を入力しないとデータにアクセスできません。
携帯電話通信の暗号化: スマートフォンと基地局の間の通信でも、共通鍵暗号が使われています。特に4G/LTEや5Gなどの高速通信では、リアルタイムで大量のデータをやり取りするため、処理速度の速い共通鍵暗号が必須です。
代表的なアルゴリズムは「AES」
共通鍵暗号には様々な種類(アルゴリズム)がありますが、現在世界で最も広く使われているデファクトスタンダードが「AES(Advanced Encryption Standard)」です。情報処理安全確保支援士試験においても、「共通鍵暗号といえばAES」と覚えておけば間違いありません。
AESはアメリカ政府が公募によって選定した暗号規格で、以前使われていた「DES(デス)」という方式が時代遅れになったため、それに代わる新しい標準として2001年に採用されました。現在では政府機関だけでなく、民間企業のシステムやスマートフォンのアプリケーションなど、あらゆる場面で使われています。
共通鍵暗号のメリット・デメリット
完璧な暗号はない!特徴を理解して使い分ける
共通鍵暗号はシンプルで強力ですが、万能ではありません。試験では、次に解説する「メリット」と「2つの大きなデメリット」が頻出です。ここをしっかり理解しましょう。
メリット:処理がとにかく速い!
最大のメリットは、「暗号化・復号の処理速度が非常に速い」ことです。仕組みが単純なためコンピュータへの負荷が軽く、大容量のデータを暗号化するのに向いています。
例えば、数百GBのハードディスク全体の暗号化や、リアルタイムで大量のデータが流れる高速ネットワーク通信の暗号化には、必ずといっていいほど共通鍵暗号が使われます。動画ストリーミングサービスやクラウドストレージなど、大量のデータを扱うサービスでは、この処理速度の速さが不可欠です。
公開鍵暗号(次回解説)と比較すると、共通鍵暗号は数十倍から数百倍も高速に処理できます。この圧倒的な速度差が、実用システムでは決定的な意味を持ちます。
デメリット1:鍵をどうやって渡す?(鍵配送問題)
最大の弱点はこれです。遠く離れた相手と安全に通信したい場合、「最初の共通鍵をどうやって安全に相手に渡すか?」という問題が発生します。
メールで鍵を送ったら、そのメールを盗み見られたら終わりです。電話で伝えるのも盗聴のリスクがあります。郵送も途中で開封される可能性があります。
「安全な通信をするために鍵が必要なのに、その鍵を安全に送る方法がない」というジレンマ。これを「鍵配送問題」と呼びます。
例えば、あなたがオンラインショッピングサイトで買い物をする場合を考えてみましょう。サイトの運営者と共通鍵暗号だけで通信しようとすると、まず最初にその「共通鍵」を安全に受け取る必要があります。しかし、その鍵をどうやって安全に受け取れば良いのでしょうか?この矛盾が鍵配送問題の本質です。
実際のWebサイト(HTTPS通信)では、この問題を解決するために共通鍵暗号と公開鍵暗号を組み合わせた「ハイブリッド方式」が使われています。
デメリット2:鍵の管理が大変(鍵管理問題)
もう一つの弱点は、通信相手が増えると「管理すべき鍵の数が爆発的に増える」ことです。共通鍵は、相手ごとに異なる鍵を用意する必要があります。同じ鍵を使い回すと、その鍵を持つ誰もが他の人の通信内容を盗み見できてしまうためです。
ここで重要なのが、必要な鍵の数を計算する式です。n人が相互に安全な通信をする場合、必要な鍵のペア数は以下の式で求められます。
鍵のペア数 = n × (n - 1) ÷ 2
この式を使って具体的に計算してみましょう。
- 5人の場合: 5 × 4 ÷ 2 = 10個
- 10人の場合: 10 × 9 ÷ 2 = 45個
- 50人の場合: 50 × 49 ÷ 2 = 1,225個
- 100人の場合: 100 × 99 ÷ 2 = 4,950個
- 1,000人の場合: 1,000 × 999 ÷ 2 = 499,500個
見ての通り、人数がわずかに増えるだけで、鍵の数は二次関数的(n²に比例)して爆発的に増加します。これほど大量の「絶対に漏れてはいけない秘密の鍵」を安全に管理するのは、現実的に非常に困難です。
企業のネットワークで考えると、社員全員が互いに安全な通信をするために、この膨大な数の鍵を生成し、配布し、定期的に更新し、退職者の鍵を確実に廃棄するという運用が必要になります。例えば500人の企業なら124,750個もの鍵を管理しなければなりません。これは実務上ほぼ不可能です。
この計算式は試験でも出題されることがあるため、n × (n - 1) ÷ 2という公式は必ず覚えておきましょう。「なぜ2で割るのか」を理解しておくことも重要です。AさんとBさんの間の鍵と、BさんとAさんの間の鍵は同じものなので、重複を避けるために2で割るのです。
代表的な共通鍵暗号アルゴリズム
試験に出る具体的な名前を知っておこう
共通鍵暗号には歴史的に様々な方式が考案されてきました。情報処理安全確保支援士試験で覚えておくべき代表的なものを紹介します。
現在の世界標準「AES」
AES(Advanced Encryption Standard)は、現在最も安全で広く使われている共通鍵暗号の規格です。鍵の長さ(鍵長)によって、AES-128、AES-192、AES-256の3種類があり、数字が大きいほど安全性が高くなります。
AES-128は鍵の長さが128ビット、AES-256は256ビットです。現在の技術では、AES-128でも総当たり攻撃(すべての鍵の組み合わせを試す攻撃)で破ることは事実上不可能とされています。機密性の高いデータには、より安全性の高いAES-256が使われることもあります。
日本発の技術やその他の方式
世界標準のAES以外にも、優れた共通鍵暗号は存在します。日本では、電子政府推奨暗号リスト(CRYPTREC)によって、安全性が確認された暗号技術がリストアップされています。
Camellia(カメリア): 日本で開発された共通鍵暗号で、AESと同等の安全性と効率性を持つとして高く評価されています。NTTと三菱電機が共同開発したこの暗号は、国際標準規格(ISO/IEC)にも採用されており、特に組み込み機器での実装効率の良さが特徴です。AESと同様に128、192、256ビットの鍵長に対応しています。
KCipher-2(KCK): KDDIが開発した「ストリーム暗号」と呼ばれるタイプの共通鍵暗号です。ブロック暗号(AESやCamellia)がデータをブロック単位で処理するのに対し、ストリーム暗号はデータをビット単位またはバイト単位で連続的に暗号化します。
KCipher-2は、特に携帯電話通信(4G/LTE)のような高速ストリーミングデータの暗号化に適しており、低消費電力で高速な処理が可能です。CRYPTRECの電子政府推奨暗号リストにも採用されています。「K」は開発元のKDDIを、「Cipher」は暗号を意味します。
ストリーム暗号は、音声通話や動画配信など、リアルタイム性が求められる通信で特に有効です。データが到着した順に即座に暗号化・復号できるため、遅延が少ないという利点があります。
過去の暗号方式: 過去に使われていたDES(Data Encryption Standard)は、1970年代に開発された暗号方式で、長年にわたって標準として使われていましたが、鍵長が56ビットと短く、現在のコンピュータの処理能力では破られる可能性があるため、現在は使用が推奨されていません。
3DES(Triple DES)は、DESを3回繰り返すことで安全性を高めた方式ですが、処理速度の遅さから、これもAESに置き換えられつつあります。
試験対策としては、まず「AESが現在の主流である」ということを確実に押さえておきましょう。加えて、Camellia(日本発のブロック暗号)、KCipher-2(日本発のストリーム暗号)といった国産技術の名前も覚えておくと、試験での選択肢の判断に役立ちます。
共通鍵暗号方式(AES)の基礎を固める!理解度チェック練習問題
記事で学んだ共通鍵暗号方式やAESの仕組みについて、どのくらい理解できたか確認してみましょう。 ここでは、学習の振り返りに役立つ全10問の練習問題を用意しました。選択肢をクリックすると、その場で正解と詳しい解説が表示されます。間違えてしまった場合でも、すべての選択肢に対する解説を確認できるので、知識の定着に最適です。ぜひチャレンジして、暗号技術の基本をしっかりマスターしてください!
まとめ
今日は、暗号技術の基礎である「共通鍵暗号方式」について学習しました。
仕組み: 暗号化と復号に「同じ鍵(共通鍵)」を使う
メリット: 処理が非常に速い。大容量データの暗号化に適している
デメリット:
- 鍵を安全に渡すのが難しい(鍵配送問題)
- 相手が増えると鍵の管理が大変(鍵管理問題)
代表例: AES(世界標準)、Camellia(日本発)
共通鍵暗号の最大の弱点である「鍵配送問題」。これを鮮やかに解決したのが、次回解説する「公開鍵暗号方式」です。この2つの方式の違いを理解することが、暗号分野の最大の山場です。