公開鍵暗号方式

luagate/public-key-crypto公開鍵暗号方式21セキュリティ

上から下へ、全 21 枚そのまま並べています。

発表モードで開く

公開鍵暗号方式

公開鍵暗号方式

2本の鍵で、鍵配送問題を解く

1
1

目次

今日の流れ

1. 復習 — 共通鍵の弱点

2. 発想 — 鍵を2本に分ける

3. しくみ — 公開鍵で施錠、秘密鍵で解錠

4. なぜ配っても安全か

5. まとめと振り返り

2
2
公開鍵暗号方式 - イントロ

今日のゴール

この時間で身につけてほしいことです。

  • 公開鍵方式が「鍵を2本に分ける」発想だと分かる
  • 公開鍵と秘密鍵の役割を説明できる
  • 鍵を配っても安全な理由が腑に落ちる
  • 鍵配送問題がどう解決するか分かる
  • 共通鍵との組み合わせ(実際の姿)をイメージできる
10
3
公開鍵暗号方式 - 復習

復習 — 共通鍵の弱点

前回の課題を思い出すと、今日の発想の意味がよく分かります。

鍵配送問題(おさらい)

共通鍵方式は速いが、送る側と受け取る側が同じ鍵を持つ必要があり、その鍵自体を安全に渡すのが難しいという弱点があった。

施錠と解錠が同じ1本の鍵

鍵を渡す途中で盗まれる危険

人数が増えると鍵が爆発する

この「鍵を渡す問題」を今日解く

11
4
公開鍵暗号方式 - 発想

発想 — 鍵を2本に分ける

「施錠する鍵」と「解錠する鍵」を別々にする、という発想の転換です。

公開鍵方式(非対称鍵暗号)

対になった2本の鍵を使う方式。片方の鍵で施錠したものは、もう片方の鍵でしか開けられない。施錠用は配ってよく、解錠用は自分だけが持つ。

鍵が2本でペアになっている

片方で施錠 → もう片方でしか解錠できない

施錠用の鍵は配ってよい(公開鍵)

解錠用の鍵は秘密にする(秘密鍵)

12
5
公開鍵暗号方式 - 発想

公開鍵と秘密鍵の役割

2本の鍵には、はっきりと役割の違いがあります。

公開鍵
  • みんなに配ってよい鍵
  • これで暗号化(施錠)する
  • 公開されても問題ない
秘密鍵
  • 自分だけが持つ鍵
  • これで復号(解錠)する
  • 絶対に他人に渡さない
ペアの関係
  • 2本は数学的に対になっている
  • 公開鍵で施錠→秘密鍵で解錠
  • 片方からもう片方は作れない
13
6

公開鍵暗号方式 - しくみ

2

第2部 しくみ

公開鍵で施錠、秘密鍵で解錠

20
7
公開鍵暗号方式 - しくみ

秘密のメッセージを送る流れ

受け取る人の公開鍵で施錠し、受け取る人の秘密鍵だけが開けられます。

1. 公開鍵を配る

受け取る人が自分の公開鍵をみんなに配る

2. 公開鍵で施錠

送る人がその公開鍵で平文を暗号化する

3. 送信

暗号文を送る(途中で見られても開けられない)

4. 秘密鍵で解錠

受け取る人だけが自分の秘密鍵で復号する

21
8
公開鍵暗号方式 - しくみ

南京錠のたとえ

公開鍵方式は「開いた南京錠を配る」イメージで考えると一気に分かります。

南京錠のたとえ

あなたが「開いた南京錠(公開鍵)」をたくさん配っておく。誰でもそれで箱に鍵をかけられるが、その南京錠を開けられるのは手元の鍵(秘密鍵)を持つあなただけ。

配るのは「錠前」、手元に残すのは「鍵」

誰でも施錠できるが、解錠できるのは持ち主だけ

南京錠を配っても、鍵は渡していない

だから配っても安全

22
9
公開鍵暗号方式 - しくみ

共通鍵 と 公開鍵

鍵の本数と、配れるかどうかが決定的に違います。

共通鍵(1本)

  • 施錠と解錠が同じ鍵
  • 鍵は絶対に渡せない秘密
  • 渡す途中で盗まれる危険
  • 処理は速い
  • 鍵配送問題がある

公開鍵(2本)

  • 施錠と解錠で鍵が別
  • 公開鍵は配ってよい
  • 配っても解錠はできない
  • 処理は遅め
  • 鍵配送問題を解決できる
23
10

公開鍵暗号方式 - 安全性

3

第3部 なぜ安全か

配っても破られない理由

30
11
公開鍵暗号方式 - 安全性

なぜ鍵を配っても安全なのか

公開鍵を全世界に配っても、秘密鍵が守られていれば中身は読まれません。

  • 公開鍵でできるのは「施錠」だけ
  • 施錠したものは秘密鍵でしか開かない
  • 公開鍵から秘密鍵を逆算するのは事実上不可能
  • だから公開鍵は堂々と公開してよい
  • 秘密鍵さえ守れば、配送の問題が消える
31
12
公開鍵暗号方式 - 安全性

鍵配送問題がどう解決するか

そもそも「秘密の鍵を渡す」必要がなくなる、というのが解決の本質です。

  • 渡すのは公開鍵だけ(秘密でない)
  • 秘密鍵は最初から相手だけが持っている
  • 秘密の情報を一切やり取りせずに暗号化できる
  • 盗聴されても公開鍵しか手に入らない
  • 共通鍵方式の根本の弱点が消える
32
13
公開鍵暗号方式 - 安全性

メリットと弱点

万能ではなく、速度という弱点があります。だから次のハイブリッドにつながります。

メリット

  • 鍵を配っても安全
  • 鍵配送問題を解決できる
  • 本人確認や署名にも使える
  • 人数が増えても鍵管理が楽
  • 公開鍵は公開してよい

弱点

  • 共通鍵より処理が遅い
  • 大量データの暗号化には不向き
  • 計算の負担が大きい
  • だから本体の暗号化には使いにくい
  • ここで共通鍵と組み合わせる
33
14

公開鍵暗号方式 - ハイブリッド

4

第4部 実際の姿

共通鍵とのハイブリッド

40
15
公開鍵暗号方式 - ハイブリッド

ハイブリッド利用(実際はこれ)

公開鍵で「共通鍵を安全に渡し」、あとは速い共通鍵で通信します。両方の良いとこ取りです。

1. 公開鍵を受け取る

通信相手(サーバー)の公開鍵を受け取る

2. 共通鍵を施錠して送る

今回使う共通鍵を、相手の公開鍵で暗号化して送る

3. 秘密鍵で取り出す

相手は秘密鍵で共通鍵を取り出す(二人だけが共有)

4. 共通鍵で高速通信

以降は速い共通鍵でデータをやり取りする

41
16
公開鍵暗号方式 - ハイブリッド

どこで使われている?

公開鍵方式は、私たちが毎日使う安全な通信の土台になっています。

HTTPS
  • 最初に共通鍵を安全に共有
  • 以降は共通鍵で高速通信
  • 鍵マークの裏側
SSH
  • 鍵認証で本人を確認
  • 公開鍵をサーバーに登録
  • 秘密鍵で証明する
署名
  • 秘密鍵で署名し公開鍵で検証
  • 本人性を示す
  • 次回のデジタル署名へ
42
17
公開鍵暗号方式 - まとめ
クイズ

振り返りクイズ

今日の内容を確認しましょう。

公開鍵方式で、秘密のメッセージを送るときに使う鍵はどれ?

A
受け取る人の秘密鍵で施錠する
B
受け取る人の公開鍵で施錠し、受け取る人の秘密鍵で解錠する
C
送る人の秘密鍵で施錠し、送る人の公開鍵で解錠する
D
どちらの鍵でもよい
50
18
公開鍵暗号方式 - まとめ
答え

振り返りクイズ 解答

公開鍵方式で、秘密のメッセージを送るときに使う鍵はどれ?

A
受け取る人の秘密鍵で施錠する
B
受け取る人の公開鍵で施錠し、受け取る人の秘密鍵で解錠する
C
送る人の秘密鍵で施錠し、送る人の公開鍵で解錠する
D
どちらの鍵でもよい

秘密のメッセージは「受け取る人の公開鍵」で施錠します。すると、その人の秘密鍵でしか開けられません。だから公開鍵を配っても、中身を読めるのは秘密鍵を持つ本人だけになります。

51
19
公開鍵暗号方式 - まとめ

質疑・次回予告

今日のまとめと、次に学ぶテーマです。質問があればここで受け付けます。

今日のおさらい
  • 公開鍵方式は鍵を2本に分ける
  • 公開鍵で施錠、秘密鍵で解錠
  • 配っても安全で鍵配送問題を解決
次回予告
  • デジタル署名 〜本人確認と改ざん検知〜
  • 公開鍵方式を逆向きに使う発想
52
20
"

公開鍵方式は「開いた南京錠を配り、開ける鍵だけ手元に残す」発想。配っても安全だから、鍵配送問題が解ける。この2本の鍵が、安全な通信の土台になっています。

公開鍵暗号方式

53
21