Slide 1

Slide 1 text

RSA暗号から学ぶ 公開鍵暗号の仕 組み 〜大切なことは全部、公開鍵警察から教わっ た〜

Slide 2

Slide 2 text

〜とある日〜

Slide 3

Slide 3 text

ワイ「おっしゃ、公開鍵暗号の仕組みなんとなく理 解でけた!」 ワイ「復習も兼ねてアウトプット代わりにちょっとツイー トでもすっか」

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

〜数分後〜

Slide 6

Slide 6 text

ワイ「お、こんな自己満ツイートに珍しくリプ来とる。 ありがたいなぁ。どんなリプやろ?」

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

※※警察からの注意喚起※※ ①「南京錠のイメージ」はやめろ! ②「鍵の意味」をちゃんと理解しろ!

Slide 11

Slide 11 text

①「南京錠のイメージ」はやめ ろ!

Slide 12

Slide 12 text

よくある公開鍵暗号のイメー ジ

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

一般的な「暗号」「鍵」のイメージに引っ張られてしまってい る

Slide 17

Slide 17 text

これは「機密性の担保」しか 示していない (「鍵」「暗号」が名前についているためそっち に引っ張られてしまう。。)

Slide 18

Slide 18 text

出典:「総務省 国民のための情報セキュリティサイト」より引用

Slide 19

Slide 19 text

これらもあくまで「機密性の担保」のイメージ!

Slide 20

Slide 20 text

残りのイメージを反映 できていない!!

Slide 21

Slide 21 text

公開鍵暗号の正しい認識 ①機密性を担保(盗聴防止) ②完全性を担保(改竄防止) ③真正性を担保(なりすまし防止) →正確には上記3つくらいの役割を担うことが可能

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

②「鍵の意味」をちゃんと理解 しろ!

Slide 24

Slide 24 text

公開鍵暗号

Slide 25

Slide 25 text

公開鍵暗号の歴史 ①1960年以前 共通鍵暗号が普及する中で「鍵配送問題」が出現 ②1960年代 イギリスの政府通信本部の暗号学者ジェームズ・エリスが鍵配送問 題の解決案を提示。 →公開鍵暗号の元アイデア ③1973年 エリスの後輩コックス、具体的案として「一方向関数の使用」を思い つく ④1976年 米国のホイットフィールド・ディフィーとマーティン・ヘルマンが、実用 的な一方向関数を見つけて、公開鍵暗号の具体的な理論を構築。 (=DH法) ⑤1977年 リベスト、シャミア、エーデルマンの3人が、素因数分解の困難性を元 に2種類の機能を実現する公開鍵暗号の方式を発表。 (=RSA暗号)。今でも ( 主に署名の方が ) 広く使われている

Slide 26

Slide 26 text

①鍵配送問題の出現

Slide 27

Slide 27 text

具体的問題点 鍵を受け渡したいなら、鍵に鍵をかけて送ればいいと思うが… ●メッセージに鍵をかける  ○メッセージを守る鍵を安全に受け渡す必要がある ●鍵に鍵をかける  ○鍵を守る鍵を安全に受け渡す必要がある ...…

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

②鍵配送問題の解決案=公開鍵暗号の元アイデ ア

Slide 30

Slide 30 text

「保護の仕組みは公開してはいけないもの」という発想から、「保護 を "解除する" 仕組みは公開してはいけないもの」という発想に転 換させることで、鍵配送問題を見事にクリア。

Slide 31

Slide 31 text

出典:「対称性 - Wikipedia」より引用

Slide 32

Slide 32 text

③−1 エリスのアイデア実現に必要なもの

Slide 33

Slide 33 text

③−2 一方向関数 相互に変換可能な関数であり、かつある方向への変換は簡単な のに、逆方向の変換は大変な関数 →具体例として、 ハッシュ関数・素因数分解・離散対数問題 etc……が存在

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

④公開鍵暗号の具体的理論の実装 具体的暗号方式 使用している一方向関数 DH法 離散対数問題 RSA暗号 素因数分解

Slide 36

Slide 36 text

RSA暗号

Slide 37

Slide 37 text

RSA暗号とは? 「『桁数が大きい合成数の素因数分解問題』が困 難であること」 を安全性の根拠とした公開鍵暗号の一つである。

Slide 38

Slide 38 text

素因数分解の困難性 【例題①】 (1) 125×227を計算しなさい。 (2) 221を素因数分解しなさい。 (3) 25651を素因数分解しなさい。

Slide 39

Slide 39 text

RSA暗号の仕組み 【例題②】    という2つの素数を用いて、X=8という情 報をRSA暗号化しなさい

Slide 40

Slide 40 text

フェルマーの小定理      を相異なる素数とすると、    が成り立つ。Xは任意の自然数。 (※ただし厳密には、少し条件が異なる)

Slide 41

Slide 41 text

p=3、q=2の場合(Xは任意の数をイメージ) 全ての数は0から5に集約 元の値 0 1 2 3 4 5 6で割った時の余り 6 12 18 … 7 13 19 … 8 14 20 … 9 15 21 … 10 16 22 … 11 17 23 … 元の値を各列の乗数した値を 6で割った余り 1 2 3 4 5 6 7 … 0 0 0 0 0 0 0 … 1 1 1 1 1 1 1 … 2 4 2 4 2 4 2 … 3 3 3 3 3 3 3 … 4 4 4 4 4 4 4 … 5 1 5 1 5 1 5 …

Slide 42

Slide 42 text

例題の解法の流れ Step1 2つの素数p,qを用意する Step2 受信側が    を満たす整数P,Qを見つけ、Pを公 開鍵、Qを秘密鍵と決める Step3 送信側が を送り、受信側が   と複合して完了

Slide 43

Slide 43 text

Step1:2つの素数p,qを用意する 本問では予め と用意されているので、これを利用する。 (※ただし実際には、もっと大きな数の素数を準備する必要がある。 100桁以上が目安)

Slide 44

Slide 44 text

Step2:公開鍵と秘密鍵の設定 p=3、q=11であるので となる。 つまり、PQ=21を満たすような鍵のペアを決める。 今回は例として      公開鍵P→3、秘密鍵Q→7 とする

Slide 45

Slide 45 text

Step3:暗号化して情報を送信 送りたい情報がX=8、公開鍵がP=3なので と計算する。 次に、もう一つ公開されている情報のpq=33を用いて、合同式 を計算する。

Slide 46

Slide 46 text

つまり、X=8 という情報が X’=17 に暗号化された

Slide 47

Slide 47 text

Step3:復号化して情報を受け取る 受け取った情報 X’=17を復号する ここでは17を、最初に設定した秘密鍵Q(=7)乗してみると 最後に、pq=33 を法として計算すると となる

Slide 48

Slide 48 text

つまり、元の情報 X=8 が復号でき た

Slide 49

Slide 49 text

まとめ

Slide 50

Slide 50 text

補足(時間的に余裕があれば …)

Slide 51

Slide 51 text

RSA暗号の安全性 RSA暗号は前方秘匿性の問題が存在 =現実的時間で秘密鍵の解読が可能な場合がある。 (さっきの例だとpq=33の素因数分解が簡単にできる? …というイメージ) →そのため現在では ハイブリット暗号(共通鍵+公開鍵) が使用されている (また、ハイブリット暗号で用いられるものとしては DH法が多い)