暗号技術の基礎

共通鍵暗号方式(AES, KCK)の仕組みとメリット・デメリット

2025年12月8日

今週からは、セキュリティ技術の核となる「暗号技術」について学んでいきます。「暗号」という言葉から、スパイ映画に登場するような難解な数式を想像するかもしれません。

しかし、SC試験で求められるのは複雑な数学の証明ではありません。「どんな種類の暗号があり、それぞれどんな特徴があるか」を理解し、状況に応じて適切に使い分ける知識です。

第2週の初日となる今日は、最も基本的で、私たちの身の回りでも広く使われている「共通鍵暗号方式」について解説します。「家の鍵」と同じくらいシンプルな仕組みですが、そのシンプルさゆえの強力なメリットと、避けられない弱点があります。この「弱点」こそが、試験で狙われる重要ポイントです。

共通鍵暗号方式とは?「一つの鍵」で全てを行う

仕組みの基礎:「家の鍵」でイメージしよう

共通鍵暗号方式(Symmetric Key Cryptography)の仕組みは、非常にシンプルです。イメージとしては、普段使っている「家の鍵」と全く同じです。

家を出るときに鍵をかけて(暗号化)、帰ってきたら同じ鍵で開けます(復号)。この「閉じる鍵」と「開ける鍵」が共通(同じ)であることから、「共通鍵暗号方式」と呼ばれます。

ITの世界では、「平文(ひらぶん:普通のデータ)」を「暗号文(読めないデータ)」に変換することを暗号化、その逆を復号と言います。

共通鍵暗号では、送信者(Aさん)と受信者(Bさん)が、あらかじめ「秘密の共通鍵」を共有しておきます。

  1. Aさんは「共通鍵」を使ってデータを暗号化し、Bさんに送ります
  2. 受け取ったBさんは、Aさんと同じ「共通鍵」を使って暗号文を復号し、元のデータを読みます

もし途中で悪意のある第三者(Cさん)が暗号文を盗み見たとしても、「共通鍵」を持っていないので中身を読むことはできません。

身近な例で理解する

この方式は、私たちの身の回りで数多く使われています。

パスワード付きZIPファイル: ファイルを圧縮する際にパスワード(共通鍵)を設定し、解凍する際に同じパスワードを入力します。送信者と受信者が同じパスワードを知っていることで、安全にファイルをやり取りできます。

無線LAN(Wi-Fi)の暗号化: 家のWi-Fiルーターとスマートフォンは、接続時に設定した同じパスワード(PSK: Pre-Shared Key)を使って通信内容を暗号化しています。このパスワードが共通鍵として機能し、第三者による盗聴を防いでいます。

ハードディスクの暗号化: 企業のノートPCや個人のストレージデバイスでは、ディスク全体を暗号化する機能が標準搭載されています。これも共通鍵暗号を使用しており、正しいパスワード(鍵)を入力しないとデータにアクセスできません。

携帯電話通信の暗号化: スマートフォンと基地局の間の通信でも、共通鍵暗号が使われています。特に4G/LTEや5Gなどの高速通信では、リアルタイムで大量のデータをやり取りするため、処理速度の速い共通鍵暗号が必須です。

代表的なアルゴリズムは「AES」

共通鍵暗号には様々な種類(アルゴリズム)がありますが、現在世界で最も広く使われているデファクトスタンダードが「AES(Advanced Encryption Standard)」です。SC試験においても、「共通鍵暗号といえば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で割るのです。

代表的な共通鍵暗号アルゴリズム

試験に出る具体的な名前を知っておこう

共通鍵暗号には歴史的に様々な方式が考案されてきました。SC試験で覚えておくべき代表的なものを紹介します。

現在の世界標準「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(日本発のストリーム暗号)といった国産技術の名前も覚えておくと、試験での選択肢の判断に役立ちます。

【演習】理解度チェック!セキュアな思考を鍛える10問

学んだ知識を定着させるために、本番形式の4択クイズを解いてみましょう。 答えをクリック(タップ)すると、正解と解説が表示されます。

【演習】共通鍵暗号方式(AES, KCK)理解度チェック(全10問・詳細解説付き)

Q1. 共通鍵暗号方式の基本的な仕組みとして、正しい記述はどれか。

正解:イ

解説:
共通鍵暗号は、「家の鍵」のように閉じる(暗号化)鍵と開ける(復号)鍵が同じであることが最大の特徴です。

他の選択肢はなぜ不正解?
  • ア・ウ(公開鍵暗号):異なる鍵(公開鍵と秘密鍵のペア)を使うのは「公開鍵暗号方式」です。
  • エ(ハッシュ関数):ハッシュ関数はデータを固定長のハッシュ値に変換する技術で、復号はできません(一方向性)。暗号化とは異なります。

Q2. 共通鍵暗号方式のメリットとして、最も適切なものはどれか。

正解:ウ

解説:
仕組みが単純なため計算負荷が軽く、公開鍵暗号に比べて圧倒的に高速です。そのため、大容量データの暗号化に適しています。

他の選択肢はなぜ不正解?
  • ア(鍵配送問題):秘密の鍵を安全に渡すのが難しいことは、最大のデメリットの一つです。
  • イ(鍵管理問題):相手ごとに異なる鍵が必要なため、相手が増えると管理する鍵の数は爆発的に増加します(デメリット)。
  • エ(デジタル署名):鍵が共有されているため、「誰が作成したか」を特定できず、デジタル署名には基本的に利用できません(公開鍵暗号の特徴)。

Q3. 現在、世界で最も広く使われている共通鍵暗号のデファクトスタンダード(事実上の標準)規格はどれか。

正解:ウ

解説:
AES(Advanced Encryption Standard)が現在の世界標準です。DESの後継として採用され、高い安全性と効率性を持ちます。

他の選択肢はなぜ不正解?
  • ア(RSA):代表的な「公開鍵暗号」アルゴリズムです。
  • イ(DES):かつての標準でしたが、鍵長が短く現在では安全性が不十分とされています。AESの前身です。
  • エ(SHA-256):代表的な「ハッシュ関数」です。

Q4. 共通鍵暗号方式が抱える「鍵配送問題」とはどのような問題か。

正解:イ

解説:
「鍵がなければ復号できない」のに、「その鍵を安全に送る手段がない」というジレンマを鍵配送問題と呼びます。

他の選択肢はなぜ不正解?
  • ア(鍵管理問題):これはもう一つの主要なデメリットである「鍵管理問題」の説明です。
  • ウ(アルゴリズムの脆弱性):これは「危殆化(きたいか)」と呼ばれる問題で、鍵配送とは異なります。
  • エ(鍵の寿命):これも重要な運用上の課題ですが、鍵配送問題そのものではありません。

Q5. 共通鍵暗号方式において、N人のグループ全員が相互に安全な通信を行う場合、必要な鍵の総数を求める式として正しいものはどれか。

正解:エ

解説:
AさんとBさんの通信には「A-B間の鍵」が1つ必要です。N人から2人を選ぶ組み合わせの数になるため、N(N-1)/2 となります。人数が増えると鍵の数が爆発的に増える原因です。

他の選択肢はなぜ不正解?
  • ア・イ(N, 2N):公開鍵暗号方式では、各人が鍵ペアを持つため必要な鍵の総数は2N個(管理する公開鍵はN個)で済みますが、共通鍵では異なります。
  • ウ(N(N-1)):送信方向ごとに異なる鍵を使う場合の数ですが、通常、共通鍵は双方向で同じ鍵を使うため、この半分になります。

Q6. AES(Advanced Encryption Standard)で採用されている鍵長(ビット数)の組み合わせとして、正しいものはどれか。

正解:イ

解説:
AESの仕様では、鍵長として128ビット、192ビット、256ビットの3種類が定義されています。鍵長が長いほど安全性は高まりますが、処理負荷も増えます。

他の選択肢はなぜ不正解?
  • ア(DES/3DES):56ビットはDES、112/168ビットはトリプルDES(3DES)の鍵長です。
  • ウ(RSA):これらはRSAなどの公開鍵暗号で一般的に用いられる鍵長です。共通鍵暗号よりはるかに長い鍵が必要です。
  • エ(任意):AES規格では上記3種類に固定されています。

Q7. 共通鍵暗号の利用シーンとして、最も適切でない(向いていない)ものはどれか。

正解:ウ

解説:
不特定多数の相手と通信する場合、「事前に共通鍵を共有する」ことが困難(鍵配送問題)なため、この用途には向いていません。この用途には公開鍵暗号方式が適しています。

他の選択肢はなぜ不正解?
  • ア・イ・エ:これらはすべて、自分自身で管理する、あるいは事前に設定が可能な特定の相手との通信であり、かつ高速性が求められるため、共通鍵暗号が最適かつ実際に広く使われています。

Q8. KCK(KCipher-2など)に関する記述として、最も適切なものはどれか。

正解:ウ

解説:
KCK(KCipher-2)は日本(KDDI研究所など)で開発された国産の共通鍵暗号であり、データをビット/バイト単位で順次暗号化する「ストリーム暗号」に分類されます。CRYPTRECリストにも掲載されており、高速性や特定の用途での実装性に優れています。

他の選択肢はなぜ不正解?
  • ア(DES):AESの前身はDESです。
  • イ(公開鍵):KCKは共通鍵暗号です。
  • エ(耐量子):耐量子計算機暗号(PQC)は現在研究が進んでいる新しい分野で、KCKはこれには該当しません。

Q9. 共通鍵暗号は、データの暗号化単位によって「ブロック暗号」と「ストリーム暗号」に大別される。AESはどちらに分類されるか。

正解:ア

解説:
AESは、データを固定長(128ビット)の塊(ブロック)に分割して暗号化処理を行う「ブロック暗号」の代表格です。

他の選択肢はなぜ不正解?
  • イ(ストリーム暗号):データをビットやバイト単位で逐次暗号化する方式です(例:RC4, KCipher-2)。
  • ウ(ハイブリッド):共通鍵暗号と公開鍵暗号を組み合わせた方式を指す言葉です。
  • エ(固定):アルゴリズムの設計として、AESはブロック暗号として定義されています。

Q10. 実際のインターネット通信(SSL/TLSなど)では、共通鍵暗号の「鍵配送問題」を解決するために、どのようなアプローチが取られているか。

正解:イ

解説:
これが現実解です。「遅いが鍵配送ができる公開鍵暗号」で「速いが鍵配送ができない共通鍵暗号の鍵」を安全に送る、という良いとこ取りの「ハイブリッド暗号方式」が、SSL/TLSなどの標準的な通信プロトコルで採用されています。

他の選択肢はなぜ不正解?
  • ア(物理配送):インターネットの不特定多数との通信では非現実的です。
  • ウ(鍵長):鍵が盗聴されたら、鍵長に関係なく復号されてしまいます。
  • エ(諦める):現代のインターネット社会では、安全な通信は不可欠です。

まとめ

今日は、暗号技術の基礎である「共通鍵暗号方式」について学習しました。

仕組み: 暗号化と復号に**「同じ鍵(共通鍵)」**を使う

メリット: 処理が非常に速い。大容量データの暗号化に適している

デメリット:

  1. 鍵を安全に渡すのが難しい(鍵配送問題
  2. 相手が増えると鍵の管理が大変(鍵管理問題

代表例: AES(世界標準)、Camellia(日本発)

共通鍵暗号の最大の弱点である「鍵配送問題」。これを鮮やかに解決したのが、次回解説する「公開鍵暗号方式」です。この2つの方式の違いを理解することが、暗号分野の最大の山場です。

-暗号技術の基礎