テクノロジ系セキュリティ出題頻度 ★★★

共通鍵暗号と公開鍵暗号

共通鍵暗号方式と公開鍵暗号方式の違いを「南京錠」の例えで図解。どの鍵で暗号化・復号するのか、デジタル署名の仕組み、必要な鍵の数の計算まで、試験で問われる点を整理します。

この単元の用語:暗号化 / 復号 / 共通鍵暗号方式 / 公開鍵暗号方式 / 秘密鍵 / デジタル署名 / 認証局 / ハイブリッド暗号方式

暗号って、スパイ映画みたいでかっこいいですね。

実は毎日使っているんだよ。ネットで買い物をするときのカード番号も、暗号で守られているんだ。今日は「鍵」の使い方に注目して2つの方式を学ぼう。

暗号化と復号

  • 暗号化:データを、第三者が読めない形に変換すること
  • 復号:暗号化されたデータを、元に戻すこと

このとき使う「変換のルール」が 鍵 です。

共通鍵暗号方式 ― 同じ鍵で閉めて開ける

暗号化と復号に同じ鍵を使う 方式です。家の鍵と同じで、閉めた鍵と同じ鍵で開けます。

Aさん 🔑 鍵X 🔒 暗号文 Bさん 🔑 鍵X 暗号化 復号 同じ鍵Xを、事前にこっそり2人で共有しておく必要がある
良いところ困るところ
処理が速い鍵を相手に安全に渡す方法が難しい(盗まれたら終わり)
相手ごとに鍵が必要で、人数が増えると鍵が膨大になる

公開鍵暗号方式 ― 南京錠を配る

暗号化と復号に違う鍵を使う 方式です。ペアになった2つの鍵を使います。

  • 公開鍵:誰に知られてもよい鍵。みんなに配る
  • 秘密鍵:自分だけが持つ鍵。絶対に人に渡さない

鍵をみんなに配っちゃって大丈夫なんですか?

南京錠を思い浮かべてごらん。開いた南京錠は誰でもカチッと閉められるけど、開けられるのは鍵を持っている人だけだよね。公開鍵は「開いた南京錠」、秘密鍵は「その南京錠を開ける鍵」なんだ。

Bさん(受信者) 🔓 公開鍵を配る 🔑 秘密鍵は手元に Aさん(送信者) 🔓 Bさんの公開鍵 を受け取る ① 開いた南京錠(公開鍵)を渡す 📦 手紙を入れて 🔒 カチッと閉める ② 公開鍵で暗号化して送る 途中で盗まれても開けられない 🔑 秘密鍵で 🔓 開けて読む ③ 復号できるのは、秘密鍵を持つBさんだけ
受信者の「公開鍵」で閉めて、受信者の「秘密鍵」で開ける

暗号化して送るとき

  • 暗号化:受信者の公開鍵
  • 復号:受信者の秘密鍵

デジタル署名 ― 鍵の使い方が逆になる

公開鍵暗号のペアの鍵は、逆向きにも使えます。秘密鍵で変換したものは、ペアの公開鍵でしか元に戻せません。これを利用したのが デジタル署名 です。

印鑑やサインのデジタル版です。「この文書は確かに私が作りました」「途中で書き換えられていません」を証明できます。

  1. 送信者は、文書から作った要約データ(ハッシュ値)を送信者の秘密鍵で暗号化し、署名として文書に付けて送る
  2. 受信者は、署名を送信者の公開鍵で復号し、受け取った文書から作ったハッシュ値と比べる
  3. 一致すれば「本人が送った(なりすましでない)」「改ざんされていない」ことが確認できる

デジタル署名のとき

  • 署名を作る:送信者の秘密鍵
  • 署名を検証する:送信者の公開鍵

わかること → 本人確認(なりすまし防止) と 改ざんの検知

秘密鍵を使うのは、いつも「その鍵の持ち主」本人だけ。

  • 暗号文を開けるのは受信者本人 → 受信者の秘密鍵
  • 署名を作るのは送信者本人 → 送信者の秘密鍵

「誰の鍵?」で迷ったら、「その操作をしているのは誰か」を考えよう。

デジタル署名は 盗み見(盗聴)は防げません。署名を検証するための公開鍵は誰でも手に入るからです。内容を秘密にしたいなら、暗号化も組み合わせます。

公開鍵が本物か保証する ― 認証局

悪い人が「私がBです」と偽の公開鍵を配ったら困ります。そこで、認証局(CA) という信頼できる機関が、「この公開鍵は確かにBさんのものです」と証明する 電子証明書(デジタル証明書) を発行します。この仕組み全体を PKI(公開鍵基盤) といいます。

必要な鍵の数

n人が互いに秘密の通信をする場合

  • 共通鍵暗号方式:n(n − 1) ÷ 2 個(2人の組合せの数だけ必要)
  • 公開鍵暗号方式:2n 個(1人につき公開鍵と秘密鍵の2個)

例:10人の場合 → 共通鍵は 10 × 9 ÷ 2 = 45個、公開鍵暗号は 10 × 2 = 20個

2つの方式のまとめ

共通鍵暗号方式公開鍵暗号方式
使う鍵暗号化も復号も同じ鍵暗号化と復号で違う鍵(ペア)
処理速度速い遅い
鍵の受け渡し安全に渡すのが難しい公開鍵は配ってもよい
代表例AESRSA

実際の通信(Webサイトの TLS など)では、公開鍵暗号で共通鍵を安全に渡し、その後のデータは速い共通鍵暗号でやり取りする という組合せが使われます。これを ハイブリッド暗号方式 といいます。

確認クイズ

選択肢をタップすると、すぐに正解と解説が表示されます。

Q1AさんがBさんに、公開鍵暗号方式を使って暗号化したメールを送る。Aさんが暗号化に使う鍵はどれか。

Q2デジタル署名を付けたメールを受け取った人が、署名を検証する(送信者本人が送ったものか確かめる)ときに使う鍵はどれか。

Q35人のメンバーが、共通鍵暗号方式で互いに秘密の通信をしたい。どの2人の組合せでも別々の鍵を使うとき、必要な共通鍵は全部で何個か。