NET // communication networks
LESSON 08 / 基礎編

暗号化(共通鍵・公開鍵)の考え方

ネット上のメッセージを「盗み見られない」「すり替えられない」ようにする道具が 暗号。鍵のたとえで 共通鍵暗号公開鍵暗号 の発想を理解し、HTTPS のような実用がどう成り立っているかを、図とミニ演習でつかむ。

学習目標

本講を終えると、以下の問いに答えられるようになります。

本講は 第3回(プロトコルとTCP/IP)第6回(HTTPとWeb) の続きにあたります。Webサイトの URL が https:// から始まるとき、裏側で何が動いているのか、その考え方の核を扱います。アルゴリズム(AES や RSA)の数式や鍵長といった詳しい仕組みは 標準 編で学びます。

このレッスンの目次

01 なぜ暗号が要る インターネットでデータを送るとき、 あなたと相手の間にはたくさんの機械や回線 が挟ま… 02 暗号化とは 暗号化(encryption) とは、もとのメッセージ( 平文 / ひらぶん ) を… 03 共通鍵暗号 共通鍵暗号(きょうつうかぎあんごう / symmetric-key cryptogr… 04 鍵配送問題 共通鍵暗号には 致命的な弱点 があります。それは「 事前に同じ鍵を共有しておかなけれ… 05 公開鍵暗号 1970年代に発明された 公開鍵暗号(こうかいかぎあんごう / public-key… 06 ハイブリッド ここまでで、「共通鍵は速いけど鍵の配送が問題」「公開鍵は鍵配送はラクだけど処理が遅い… 07 HTTPSとの関係 Webブラウザのアドレスバーで 🔒(鍵マーク) を見たことがあるはず。あのマークは… 08 まとめと用語 本講の重要語句を整理 09 確認問題 理解度を問題でチェック

なぜ通信に「暗号」が必要なのか

インターネットでデータを送るとき、あなたと相手の間にはたくさんの機械や回線が挟まっています。家のWi-Fi、ISPの装置、海底ケーブル、相手側のサーバ…。途中の 誰か(攻撃者) がその信号をのぞき見たり書き換えたりできてしまうと、私たちのプライバシーやお金は守られません。そのために 暗号 が必要になります。
POINT 通信路の安全を脅かす代表的な3つは 盗聴(中身を読まれる)・なりすまし(別人がふりをする)・改ざん(中身を書き換えられる)。暗号はこのうち主に「盗聴」を防ぎ、関連する仕組みで「なりすまし」「改ざん」も防げます。

身近な例で考える

日常でも、手紙を そのままハガキで送るか、封筒に入れて封をするかでは、安心感が違いますよね。暗号化はちょうど「中身を見られないように封をする」操作にあたります。ただし、紙の封筒よりずっと強力で、 正しい鍵を持つ人しかその封を破れないように作られています。

通信の途中で起こりうる3つの脅威 ① 盗聴(eavesdropping) 途中の機器でデータが 読まれてしまう ② なりすまし(spoofing) 「ボブですよ」(嘘) 別の人がボブのふりを してデータを受け取る ③ 改ざん(tampering) 中身を書き換え 送金額の数字や宛先を 途中ですり替える

図の見方:通信路には常に「途中で何かする人(攻撃者)」が現れる可能性がある。本講で扱う暗号化は主に ① 盗聴 を防ぐ仕組み。② なりすまし、③ 改ざんを防ぐには 署名・認証 という別の道具が必要で、それは次の 第9回(認証とディジタル署名) で扱う。

考えてみよう: いつも使っている SNS、ネット銀行、フリーWi-Fiでの買い物…。もし途中の通信が「丸見え」だったら、誰にとってどんな困りごとが起きるでしょう?身の回りのサービスでひとつ想像してみてください。

情報Iで覚えること通信路には 盗聴・なりすまし・改ざん の3つの脅威があり、暗号化 は主に「盗聴」を防ぐ仕組み。

暗号化とは:鍵をかけるという発想

暗号化(encryption) とは、もとのメッセージ(平文 / ひらぶん) を、第三者に読めない形(暗号文 / あんごうぶん) に変える操作のことです。受け取った相手は、その逆の操作 復号(ふくごう) をして、もとのメッセージに戻して読みます。この変換のときに使う「合言葉のような情報」が 鍵(かぎ) です。
POINT 暗号化 = 「鍵」を使って 平文 → 暗号文 に変える。
復号 = 「鍵」を使って 暗号文 → 平文 に戻す。
正しい鍵を持っていない第三者 は、暗号文をのぞき見ても中身が分からない。

用語まとめ(まずはこの3つ)

用語意味たとえると
平文(plaintext)もとのメッセージ。人間が読める文章やデータ手紙の本文
暗号文(ciphertext)暗号化されて読めなくなったデータ鍵で封じた箱の中身
鍵(key)暗号化・復号のときに使う秘密の情報箱を開け閉めする物理的な鍵

図で見る:暗号化と復号

平文は「施錠」で暗号文に、「開錠」で平文に戻る 平文 こんにちは 暗号化 鍵で施錠 暗号文 x9!#2qZ@ 復号 鍵で開錠 平文 こんにちは 正しい鍵を持つ相手だけが、暗号文を元に戻せる

図の見方:平文を鍵で施錠するように暗号化すると暗号文になり、受信側では正しい鍵で開錠するように復号して平文に戻す。暗号化の手順は公開されていてよく、秘密にすべき中心は だけで済む(=ケルクホフスの原則)。

もっと詳しく:アルゴリズムは公開、鍵だけ秘密(ケルクホフスの原則)

近代の暗号は 「アルゴリズム(暗号化のやり方)は世界中に公開する。秘密にするのは鍵だけ」 という方針で作られています。理由は、アルゴリズムを隠すと 誰も検証できないので逆に弱くなる から。実際、AES や RSA といった代表的な暗号は仕様が公開されていて、世界中の研究者が「破れないか」を試して安全性を保っています。

「秘密」を1つに絞ることは設計上とても重要で、これは情報セキュリティ全般の鉄則です。

情報Iで覚えること暗号化 を使って 平文 → 暗号文 に変える操作で、復号 は鍵で 暗号文 → 平文 に戻す操作。秘密にすべきは だけ。

共通鍵暗号:同じ鍵Kで暗号化/復号

共通鍵暗号(きょうつうかぎあんごう / symmetric-key cryptography) は、送信者と受信者が同じ鍵Kを使う方式です。ここでいう鍵Kは物理的な鍵ではなく、コンピュータが扱う 長い0/1の数字 です。同じKで暗号化し、同じKで復号します。「対称鍵暗号」とも呼ばれます。
POINT 共通鍵暗号 = 同じ鍵K(0/1の列)で暗号化・復号
長所:処理が速く、大量データの暗号化に向く。
短所:鍵を 事前に相手と共有しなければならない。これが意外と難しい(次のセクションで扱う)。

イメージで掴む:鍵Kは長い0/1の数字

アリス(送信者) が、ボブ(受信者) にメッセージを送るとします。ここでは「鍵で施錠する」とたとえますが、実際の鍵Kは物理的な鍵ではなく、101101... のような長い0/1の数字です。コンピュータはデータを0と1で持つので、暗号に使う鍵も0/1の列として扱われます。アリスとボブは あらかじめ同じ数字の鍵K をもっていて、そのKで暗号化・復号します。

ステップで見る:アリスからボブへの秘密通信

共通鍵暗号:同じ0/1の鍵Kで暗号化し、同じKで復号する アリス ボブ 共通鍵K 10110110... 共通鍵K 10110110... 先に、同じ数字の鍵Kを2人で持っておく K = コンピュータが扱う長い0/1の列 平文 本文 暗号化 本文 + K K=101... Kで変換 暗号文 x9!#2qZ 盗聴者 暗号文は見える 鍵Kなし 中身は読めない 復号 暗号文 + K K=101... 同じKで戻す 平文 本文 復号成功
ステップ1. アリスとボブは 事前に 同じ 共通鍵K を共有しておく。実際のKは物理的な鍵ではなく、長い0/1の数字である。
ステップ2. アリスはメッセージを、共通鍵K(0/1の列)を使う計算で変換する。比喩で言えば「Kで施錠する」ことで、暗号文 ができあがる。
ステップ3. 暗号文をネットワーク経由でボブへ送る。途中で 盗聴者(イブ) が見ても、鍵Kを持っていないので元の本文に戻せない
ステップ4. 暗号文がボブに届く。ボブは自分の 共通鍵K(アリスと同じ0/1の数字) を使って、暗号文をもとの形に戻す。
ステップ5. ボブは復号された平文を読む。復号成功! アリスとボブだけが内容を共有できた。
1 / 5

図の見方:共通鍵暗号は 同じ鍵K で暗号化し、同じ鍵Kで復号する方式。ここでいう鍵は物理的な鍵ではなく、コンピュータが扱う 長い0/1の数字 である。Kを持たない第三者は、暗号文を見ても元の本文に戻せない。

代表アルゴリズム(名前だけ知っておけばOK) 発展

具体的なアルゴリズム名(AES, ChaCha20 など) は 代表例 として挙げているもので、情報Iレベルでは「名前を覚える」より 「同じ数字の鍵Kで暗号化/復号する方式がある」 という考え方をつかめれば十分です。どれもアルゴリズムは公開されていて、秘密にするのは 鍵だけ

考えてみよう: 家の合鍵は「同じものを持っていると開け閉めできる」という比喩として使えます。ただし、暗号でいう鍵Kの正体は物理的な鍵ではなく 0/1の列 です。もし相手にも同じKを持ってもらう必要があるなら、そのKをどう安全に渡すかが問題になりそうですね。次のセクションで、まさにこの「鍵をどう配るか」が暗号でも大問題になることを見ます。

情報Iで覚えること共通鍵暗号 は送信者と受信者が 同じ鍵K(長い0/1の列) で暗号化・復号する方式。処理が 速い 一方で、鍵を事前に共有 する必要がある。

鍵配送問題:そもそも鍵をどう渡す?

共通鍵暗号には 致命的な弱点 があります。それは「事前に同じ鍵を共有しておかなければならない」こと。インターネット越しに見ず知らずの相手と暗号通信したいとき、肝心の 鍵そのもの をどうやって相手に渡せばよいのでしょう?
POINT 鍵配送問題(key distribution problem):鍵を相手に届けないと暗号通信が始められない。だが、その「鍵を届ける通信路」もまた盗聴される可能性がある。安全に渡せるなら、そもそも平文をそこで送ればよく、矛盾している。
鍵配送問題:「本文を守る鍵」を最初にどう渡すか 共通鍵暗号は、先に同じ鍵Kを持っている必要がある アリス ボブ 共通鍵K 10110110... 問題は、このKを最初にどう共有するか Kをそのままネットワークで送る? アリス ボブ Kを送信中 通信路を通る 通信路の途中で、鍵Kをコピーされる可能性がある アリス ボブ 盗聴者もKを持つ コピーされる Kを知られると、その後の暗号文も読まれる アリス ボブ x9!#2qZ 暗号文 Kで復号できる 秘密通信にならない では「安全な通信路でKを送る」は? 安全な通信路 ここを作りたい でも、その安全を作るにも 鍵や認証の仕組みが必要 最初の鍵を安全に共有する方法が問題になる
ステップ1. 共通鍵暗号では、本文を暗号化する前に 同じ鍵K をアリスとボブの両方が持っている必要がある。
ステップ2. では、Kをネットワークでそのまま送ればよいのか。鍵そのものも通信路を通るので、途中で見られる可能性がある。
ステップ3. 盗聴者が鍵Kをコピーすると、ボブと同じ鍵を持つことになる。これが危険の中心。
ステップ4. その後に暗号文を送っても、盗聴者は手に入れたKで復号できる。つまり、暗号文にしても守れない。
ステップ5. 「安全な通信路で鍵を送る」には、その安全な通信路を作るための仕組みがまた必要になる。これが 鍵配送問題
1 / 5

図の見方:共通鍵Kをそのまま送ると攻撃者にもコピーされ、以後の暗号通信が破られる。では「安全な通信路で鍵を送る」と考えても、その安全な通信路を作るためにまた鍵が必要になる。つまり 最初の共通鍵を安全に共有する方法 が問題になる。

鍵の枚数も問題:n人で全員と通信したいと?

もうひとつ、共通鍵暗号には大きな課題があります。それは 「人数が増えると鍵の数が爆発する」 ということ。n人のグループで 全員が互いに暗号通信したい とき、必要な鍵の本数を考えてみましょう。

Q. 10人のグループで全員ペア同士が暗号通信したいとき、共通鍵暗号では合計で何本の鍵が必要?(ペアの数を考えるとよい)

つながる知識: 「鍵を相手にどう渡すか」「全員分の鍵をどう管理するか」、この2つが共通鍵暗号だけで秘密通信を実現するときの大きな壁。これを 発想ごとひっくり返したのが、次のセクションで扱う 公開鍵暗号 です。

情報Iで覚えること共通鍵暗号には 鍵配送問題(鍵を相手に安全に渡せない)があり、人数が増えると必要な鍵の本数が n(n-1)/2 本に爆発するという課題がある。

公開鍵暗号:鍵を「2本ペア」にする発想

1970年代に発明された 公開鍵暗号(こうかいかぎあんごう / public-key cryptography) は、それまでの常識をひっくり返しました。鍵を 2本でワンセット にして、「鍵をかける用」と「鍵を外す用」を分ける という発想です。「非対称鍵暗号」とも呼ばれます。
POINT 公開鍵暗号 = 「公開鍵」と「秘密鍵」のペアを1人1セット持つ。
公開鍵:世界中に公開してOK。これで 暗号化 する
秘密鍵:本人だけが持つ。これで 復号 する
・公開鍵で施錠した箱は、対になる秘密鍵でしか開けられない
混同注意: 公開鍵暗号で 機密性(=盗み見されない) を目的とするとき、暗号化に使うのは必ず 受信者の公開鍵、復号は 受信者の秘密鍵 です。「秘密鍵で暗号化する」という言い方を見かけることがありますが、それは目的が異なる 電子署名(ディジタル署名) の話で、本人性・改ざん検知 のために使う仕組みです。
暗号化(誰にも読まれないようにする)と署名(本当に本人が送った/書き換えられていないと示す)は 目的が別 なので分けて考えましょう。署名の詳しい仕組みは 第9回 認証とディジタル署名 で扱います。

イメージで掴む:特殊な「南京錠」のたとえ

こんな魔法の南京錠を想像してください:「カチッと閉めるだけなら誰でもできる」けれど、「開けられるのは作った本人(=秘密鍵を持つ人)だけ」 という錠前です。ボブが自分用にこの南京錠を 大量にコピーして街中に配って おけば、誰でもボブ宛の手紙を箱に入れて南京錠で閉じることができます。でも、開けられるのは ボブだけ。これが公開鍵暗号の発想です。

公開鍵暗号:公開鍵で閉じ、秘密鍵で開く アリス 送信者 ボブ 受信者 1. ボブが鍵ペアを作る 公開鍵 配ってよい 秘密鍵 ボブだけ 2. 公開鍵はアリスに渡してOK 平文 ボブ宛 3. 公開鍵で施錠 暗号文 R7#qA... 4. 攻撃者が見ても 秘密鍵がないので開けられない 5. 秘密鍵で開錠 平文 復元
ステップ1. ボブは 公開鍵秘密鍵 のペアを作る。公開鍵は配ってよい鍵、秘密鍵はボブだけが持つ鍵。
ステップ2. ボブは公開鍵をアリスへ渡す。公開鍵は盗聴者に見られてもよいので、共通鍵のように「安全に隠して配送する」必要がない。
ステップ3. アリスは ボブの公開鍵 でボブ宛の平文を施錠する。ここでできた暗号文は、公開鍵では元に戻せない。
ステップ4. 攻撃者が途中で暗号文を見ても、開けるための ボブの秘密鍵 を持っていないので読めない。公開鍵を持っていても復号はできない。
ステップ5. ボブだけが持つ 秘密鍵 で暗号文を開錠し、平文に戻す。機密性の目的では「受信者の公開鍵で暗号化、受信者の秘密鍵で復号」と覚える。
1 / 5

図の見方:公開鍵暗号は、まず受信者ボブが公開鍵と秘密鍵を作る。アリスは ボブの公開鍵 で施錠し、ボブは ボブの秘密鍵 で開錠する。公開鍵は配ってよいが、秘密鍵は本人だけが持つ、という分担が鍵配送問題を解消する。

これが画期的だった理由

✨ 鍵をオープンに配れる

公開鍵は 世界中に公開してよい。Webサイトに貼ってもよいし、メールに添えて送ってもよい。盗聴者に取られても困らない。「事前に安全に渡す必要がある」という共通鍵の悩みが消えた。

✨ 鍵の本数が圧倒的に少なくて済む

各自が「公開鍵+秘密鍵」のペアを 1セット 持つだけ。n人のグループでも、必要な鍵は 2n本(人数の2倍)。共通鍵の n(n-1)/2 と比べて圧倒的にラク。

インラインで確認

小問:ボブの 公開鍵 で暗号化されたメッセージを 復号(中身を読む) できるのは誰?
正解:B。公開鍵暗号では、公開鍵で暗号化したものは 対になる秘密鍵でしか復号できない。これがこの暗号方式の心臓部。Aは間違いで、公開鍵を持っていても 暗号化はできるが復号はできない(自分が送ったメッセージでさえ、自分では読み戻せない!)。Cは中継機器に過ぎないので無関係、Dも全員が秘密鍵を共有するわけではないので不正解。

代表アルゴリズム(名前だけ) 発展

アルゴリズム名(RSA, ECC, DH など) は 代表例 として知っておけば十分。情報Iレベルでは「鍵を2本ペアにする」という発想の方が大事です。
もっと詳しく:なぜ秘密鍵は秘密にする必要がある?

公開鍵で暗号化されたメッセージは、対になる 秘密鍵を持つ人だけが復号できる、というのが公開鍵暗号の約束ごとです。もし秘密鍵が漏れてしまうと:

したがって、秘密鍵は厳重に管理します。具体的には:

「秘密鍵を守る」が、現代の暗号システム全体の信頼の出発点になっています。

考えてみよう: 公開鍵暗号は1976年に Diffie と Hellman が概念を提唱し、1978年に RSA が具体的な方式として発表されました。それ以前は「鍵をどう配るか」が永遠の難題でした。「鍵を2本に分ける」というたった1つのアイデアが、インターネット社会(銀行・ショッピング・SNS)を成立させたと言えます。

情報Iで覚えること公開鍵暗号公開鍵(誰でも持ってよい・暗号化用)と 秘密鍵(本人だけが持つ・復号用)のペアを使う方式で、鍵配送問題 を解消できる。

実用ではハイブリッド:両者のいいとこ取り

ここまでで、「共通鍵は速いけど鍵の配送が問題」「公開鍵は鍵配送はラクだけど処理が遅い」と紹介しました。実用的な暗号通信では、この 2つを組み合わせて いいとこ取りをするのが一般的です。これを ハイブリッド暗号方式 といいます。
POINT ハイブリッド方式の流れ(ざっくり):
① 公開鍵暗号を使って、共通鍵そのものを相手に安全に届ける
② 以後の本文のやり取りは 速い共通鍵暗号 で行う
→ 「鍵配送は公開鍵で、本文は共通鍵で」という分担で、安全性と速度を両立

3 方式の比較

共通鍵暗号(対称鍵)

公開鍵暗号(非対称鍵)

ハイブリッド方式(両者のいいとこ取り)

図でまとめると

ハイブリッド方式:鍵配送は公開鍵、本文は共通鍵 アリス ボブ 目的:安全に通信したい。でも共通鍵Kをまだ共有していない 公開鍵暗号は鍵を届けるため、共通鍵暗号は本文を速く送るために使う ボブの公開鍵 配ってOK 公開鍵はアリスが受け取れる アリスが一時的な共通鍵Kを作る K = 101101... 公開鍵で Kを施錠 ボブの秘密鍵で開ける 2人が同じKを共有 以後の本文・画像・動画などは、速い共通鍵暗号でやり取り 本文 画像 入力 小さい鍵は公開鍵で安全に渡し、大きい本文は共通鍵で速く守る
ステップ1. アリスとボブは安全に通信したいが、まだ本文用の共通鍵Kを共有していない。ここで公開鍵暗号と共通鍵暗号を分担させる。
ステップ2. ボブの公開鍵は公開してよい鍵なので、アリスが受け取れる。公開鍵そのものを見られても問題ない。
ステップ3. アリスは一時的な共通鍵Kを作り、それをボブの公開鍵で施錠する。公開鍵暗号で守るのは、小さな「鍵」だけ。
ステップ4. ボブは自分だけが持つ秘密鍵で開け、共通鍵Kを取り出す。これでアリスとボブは同じKを持てた。
ステップ5. 以後の本文・画像・入力データは、処理が速い共通鍵暗号で暗号化して送る。これがハイブリッド方式の核。
1 / 5

図の見方:公開鍵暗号で 「共通鍵という小さなデータ」 を1回だけ安全に送り、以後の本文(動画・画像・JSON…) は速い共通鍵暗号で大量にやり取りする。私たちが日常的に使う HTTPS の中でも、まさにこれが起きている。

つながる知識: ハイブリッド方式は HTTPS / TLS(後ろのプロトコル編・標準編で詳述) で使われています。Webブラウザが「https://...」のサイトに接続すると、最初の数往復で公開鍵暗号を使って共通鍵を交換し、それ以降のページ表示は共通鍵で暗号化される、という仕組み。

情報Iで覚えること実用の暗号通信は ハイブリッド方式:公開鍵暗号で共通鍵を安全に届け、以後の本文は 速い共通鍵暗号 でやり取りする。

身近な使われ方:HTTPS で「暗号」が動いている

Webブラウザのアドレスバーで 🔒(鍵マーク) を見たことがあるはず。URL が https://(末尾の S は Secure の S)で始まるサイトでは、本講で学んだ 共通鍵 + 公開鍵のハイブリッド暗号 がそのまま動いています。本節は「暗号化」の側面に絞って HTTPS を眺めます。鍵マークが持つもう一つの意味(サーバが本物だと確認できている)は、次回 第9回 認証・電子署名 で扱い、そちらで HTTPS の全体像を完成させます。
POINT HTTPS = HTTP(Webのプロトコル) + TLS(Transport Layer Security による暗号化)。
・本講で学んだ ハイブリッド方式(公開鍵で共通鍵を共有 → 共通鍵で本文)がそのまま使われる
・盗聴者が Wi-Fi やプロバイダで通信を覗いても 中身は読めない

HTTP と HTTPS の違いをざっくり

HTTP(暗号化なし) 「password=12345」 中身が丸見え! HTTPS(暗号化あり) x9!#2qZ@... 中身は読めない

図の見方:HTTPで送ると、フリーWi-Fiやプロバイダで誰かが盗聴したときに パスワードやクレジットカード番号が丸見え。HTTPSなら暗号文しか見えないので、攻撃者が読んでも意味のある情報にならない。今は世界中の主要サイトがほぼ HTTPS 化されている。

HTTPS で守られるのは「あなたのブラウザサーバの間の通信路」だけ。サーバの中で何が起きているか、サイト運営者がデータをどう扱うかは、暗号とは別の問題(プライバシーポリシーや法令の話)。暗号は万能ではなく、「通信路を守るための部品の一つ」と理解しておきましょう。

つながる知識: 鍵マークが持つ意味は実は 2 つあります ─ ① 通信の 暗号化(本講のテーマ)、② サーバが本物だと確認できている(認証・身元確認)。本講では ① のみ扱いました。② は次回 第9回 認証・電子署名 で、CA(認証局)・電子署名と一緒に扱い、鍵マークの全体像をまとめます。さらに HTTPS の中身(TLS ハンドシェイク・X.509 証明書) は 標準 編の「TLS/PKI」で詳しく扱います。

情報Iで覚えることURL が https:// で鍵マークが付くサイトは HTTP+TLS で通信が暗号化されており、フリーWi-Fi でも中身を読まれにくい(「身元確認」も同時に行われていることは次回学習)。

まとめと用語チェック

SUMMARY 1. 暗号化 = 鍵を使って平文を暗号文に変える操作。復号はその逆
2. 通信路には 盗聴・なりすまし・改ざんの脅威がある。本講で扱う暗号は主に「盗聴」を防ぐ
3. 共通鍵暗号 = 同じ鍵で施錠・解錠。速いが 鍵配送問題 がある(代表:AES)
4. 公開鍵暗号 = 公開鍵と秘密鍵のペア。公開鍵で施錠、秘密鍵で解錠。鍵を オープンに配れるのが画期的(代表:RSA)
5. 実用ではほぼ ハイブリッド方式:公開鍵で「共通鍵」を交換 → 共通鍵で本文を暗号化
6. 身近な例: HTTPSの鍵マークの裏では、まさにこの仕組みが動いている

用語チェック

用語1行説明
平文(plaintext)もとのメッセージ。人間が読める形のデータ
暗号文(ciphertext)暗号化されて読めなくなったデータ
暗号化 / 復号平文→暗号文に変える操作 / その逆の操作
鍵(key)暗号化・復号に使う秘密の情報
共通鍵暗号(対称鍵)暗号化と復号で同じ鍵を使う方式。速いが鍵配送が課題
公開鍵暗号(非対称鍵)公開鍵と秘密鍵のペアを使う方式。鍵をオープンに配れる
公開鍵 / 秘密鍵誰でも持ってよい鍵 / 本人だけが持つ鍵
鍵配送問題共通鍵をどう相手に安全に届けるかという課題
ハイブリッド方式公開鍵で共通鍵を渡し、本文は共通鍵で暗号化する組合せ
AES現代の代表的な共通鍵暗号アルゴリズム
RSA代表的な公開鍵暗号アルゴリズム。発明者3名の頭文字
HTTPSHTTPに暗号化(TLS)を組み合わせた仕組み。鍵マークのアレ
ケルクホフスの原則「アルゴリズムは公開、鍵だけ秘密」という設計思想
NEXT: 次回(第9回)は、暗号と並ぶもう1つの柱 「ディジタル署名」 を扱います。「このメッセージは確かに本人が書いたものか(なりすまし対策)」「途中で書き換えられていないか(改ざん対策)」、つまり今回扱わなかった ② なりすまし・③ 改ざん をどう防ぐかを学びます。

確認問題

問1. 「暗号化」の説明として最も適切なものを1つ選べ。

次の選択肢から最も適切なものを選択してください。
A. データを圧縮してファイルサイズを小さくすること
B. データを別のサーバに複製してバックアップを取ること
C. 鍵を使って平文を、第三者に読めない暗号文に変える操作
D. 通信に使うネットワーク機器を物理的に保護すること
正解:C
暗号化とは、鍵を使って平文を暗号文に変える操作のこと。受信側は対応する鍵で 復号 して読み戻す。Aは「圧縮」、Bは「バックアップ」、Dは「物理セキュリティ」の話で、いずれも暗号化そのものではない。

問2. 共通鍵暗号の特徴として最も適切なものを1つ選べ。

次の選択肢から最も適切なものを選択してください。
A. 暗号化と復号で異なる2つの鍵を使う
B. 暗号化と復号で同じ鍵を使い、処理は速いが鍵の配送が難しい
C. 鍵を使わずにアルゴリズムだけで安全性を保つ
D. 必ずインターネット上で暗号文を生成する必要がある
正解:B
共通鍵暗号は 同じ鍵で施錠・解錠する方式で、処理が速い反面、相手に鍵を安全に渡す方法が問題になる(鍵配送問題)。Aは公開鍵暗号の特徴。Cは誤りで、現代の暗号はアルゴリズムを公開し鍵だけを秘密にする(ケルクホフスの原則)。Dは無関係。

問3. 公開鍵暗号で、ボブ宛のメッセージを送りたいアリスはどの鍵を使って暗号化するべきか。

次の選択肢から最も適切なものを選択してください。
A. アリス自身の秘密鍵
B. アリス自身の公開鍵
C. ボブの秘密鍵
D. ボブの公開鍵
正解:D
公開鍵暗号では、受信者の公開鍵で暗号化し、対になる 受信者の秘密鍵で復号する。ボブだけが持っている秘密鍵を使えば中身を読めるため、暗号化に使うのは「ボブの公開鍵」。Cは誤りで、ボブの秘密鍵は本人しか持っていないのでアリスは使えない(=共有すべきでもない)。AとBはアリスの鍵で、これを使うとボブが中身を読めない。

問4. 公開鍵暗号が「画期的」とされた理由として、最も適切なものを1つ選べ。

次の選択肢から最も適切なものを選択してください。
A. 暗号化に使う鍵をオープンに公開できるため、事前の安全な鍵配送が不要になった
B. 共通鍵暗号より処理が圧倒的に高速になったため
C. 鍵を持たなくても暗号化と復号ができるようになったため
D. 暗号文のサイズを大幅に小さくできるようになったため
正解:A
公開鍵暗号の最大の発明は、「暗号化用の鍵を公開してよい」という発想で、共通鍵暗号の悩みだった「鍵配送問題」を本質的に解いた点。Bは逆で、公開鍵暗号は共通鍵暗号より 遅い(だからハイブリッド方式が使われる)。Cは誤りで、鍵は依然として必要。Dは無関係。

問5. HTTPSなど実用的な暗号通信で広く使われる「ハイブリッド方式」の説明として最も適切なものを1つ選べ。

次の選択肢から最も適切なものを選択してください。
A. 通信ごとに共通鍵暗号と公開鍵暗号をランダムに切り替える
B. 共通鍵暗号だけを使い、本文も鍵もすべて同じ鍵で送る
C. 公開鍵暗号で「共通鍵」を相手に渡し、以降の本文は速い共通鍵暗号で暗号化する
D. 平文と暗号文を交互に送って、攻撃者を混乱させる
正解:C
ハイブリッド方式は、公開鍵暗号の 「鍵配送のしやすさ」 と共通鍵暗号の 「速さ」 のいいとこ取り。最初に公開鍵で共通鍵を安全に交換し、以降の本文は共通鍵で高速にやり取りする。HTTPS / TLS、SSH、暗号メールなど、現代の暗号通信のほとんどがこの形を採用している。AとDのような切替・混在は実用方式ではない。Bでは鍵配送問題が解決できない。
← PREV
第7回 電子メール
NEXT →
第9回 認証と電子署名