公開鍵暗号 — 2つの鍵で、鍵配送問題を解く

初級の解説は準備中のため、初級の内容を表示しています。

概要 — まず全体をつかむ

暗号の2つ目のタイプが公開鍵暗号2つの鍵を使い、共通鍵の弱点(鍵配送問題)を解きます。

詳細 — 1段階ずつ追う

2つの鍵の役割

鍵がペアになっています。

  • 公開鍵 — みんなに配ってよい鍵。施錠(暗号化)専用
  • 秘密鍵 — 本人だけが持つ鍵。開錠(復号)専用

南京錠にたとえると分かりやすい。開いた南京錠(公開鍵)をばらまいておき、誰でも施錠できる。でも開ける鍵(秘密鍵)は本人だけが持つ——だから誰でも「その人宛」に安全に送れます。

アニメーション『公開鍵暗号(南京錠)』を開く
公開鍵暗号 — 南京錠にたとえると受け手(本人)南京錠と秘密鍵の持ち主秘密鍵本人だけが持つ・開錠専用①「開いた南京錠(公開鍵)」を、みんなに配る公開鍵は誰でも受け取ってよい送り手(誰でもよい)事前に鍵を共有していない相手でも② 配られた南京錠で施錠(暗号化)平文こんにちは施錠暗号文X9#a?+…③ 秘密鍵を持つ本人だけが開錠暗号文X9#a?+…秘密鍵で開錠平文こんにちは事前に鍵を共有しなくても安全 = 鍵配送問題を解く公開鍵で施錠、秘密鍵で開錠。公開鍵は配ってよい

なぜ鍵配送問題が解ける?

共通鍵は「同じ鍵をどう渡すか」で悩みました。公開鍵は、公開鍵を堂々と配ってよいので、事前に秘密の経路で鍵を共有しなくて済みます。

代表は RSA楕円曲線暗号(ECC)。ただし処理は遅いので、実際は「公開鍵で共通鍵を渡し、以降は速い共通鍵で通信」と組み合わせます(HTTPSの仕組み)。

⚠️ 気をつける

  • 遅い — 大量データには不向き(だから共通鍵と併用)
  • 公開鍵が本物か? — 偽物の公開鍵をつかまされたら台無し。証明書で本物だと保証する
  • 秘密鍵の保護 — 秘密鍵が漏れたら全て破られる

関連する知識

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. 公開鍵暗号で「暗号化」に使うのはどちらの鍵?

2. 公開鍵暗号が共通鍵暗号より優れている点は?

3. 秘密鍵の役割として正しいのはどれ?

4. 南京錠のたとえで「開いた南京錠をみんなに配る」のは、どの鍵にあたる?

5. 公開鍵暗号の弱点として正しいのはどれ?

6. 配られた公開鍵が「本物か(偽物とすり替えられていないか)」を保証するために使うのはどれ?

7. 公開鍵暗号の代表的なアルゴリズムで、大きな数の素因数分解の難しさを利用するものを英字3文字で答えてください。

8. 本人だけが持ち、絶対に他人へ渡してはいけないほうの鍵を何と呼ぶ?