公開鍵暗号(1): rsa暗号

12
概要 はじめに ユークリッド互除法 RSA 暗号 安全性の根拠 暗号化の高速化 実験数学 3 (大阪大学理学部数学科 3 年・4 ) 1 : RSA 暗号 鈴木 譲 2014 4 10 1 / 12 実験数学 3, (大阪大学理学部数学科 3 年・4 ), 1 : RSA 暗号

Upload: joe-suzuki

Post on 15-Jun-2015

236 views

Category:

Documents


0 download

DESCRIPTION

実験数学3 (大阪大学理学部数学科 3年・4年) 鈴木 譲 2014年4月10日

TRANSCRIPT

Page 1: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

実験数学 3(大阪大学理学部数学科 3年・4年)

第 1回: RSA暗号

鈴木 譲

2014年 4月 10日

.

.

.

.

1 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号

Page 2: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

概要

.

.. 1 はじめに

.

..

2 ユークリッド互除法

.

..

3 RSA暗号

.

..

4 安全性の根拠

.

..

5 暗号化の高速化

.

.

.

.

2 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号

.

Page 3: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

公開鍵暗号

送信側 受信側

m平文

-暗号化

f c := f (m)暗号文

- 送信 -· · · - 受信 -

c暗号文

復号化

f −1

-

m := f −1(c)平文

暗号化 f 復号化 f −1 メリット 用途

共通鍵暗号 秘密 秘密 計算が高速 戦争

公開鍵暗号 公開 秘密 f から f −1が インター

類推されにくい ネット

 

公開鍵暗号の例: RSA暗号 (Rivest, Shamir, Adleman, 1976)

.

.

.

.

3 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号.

Page 4: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

ユークリッド互除法

Z: 整数全体a, b, c ∈ Z, b ̸= 0

.

. . 1 b|a def⇐⇒ k ∈ Z s.t. bk = a

.

..

2 a mod b = cdef⇐⇒

{b|(a− c)0 ≤ c ≤ |b| − 1

.

.

.

3 (a, b)を a, bの最大公約数 > 0として、

b|a =⇒ (a, b) = |b|

amodb = c =⇒{

(a, b)|c(b, c)|a =⇒

{(a, b)|(b, c)(b, c)|(a, b) =⇒ (a, b) = (b, c)

{ai}ni=1 :

a2 ̸= 0ai mod ai+1 = ai+2 ̸= 0, i = 1, · · · , n − 2an−1 mod an = 0

=⇒ (a1, a2) = · · · = (an−1, an) = an

.

.

.

.

4 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号

.

Page 5: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

a = b = 0でない =⇒ ∃x , y ∈ Z s.t. ax + by = (a, b)

b = 0のとき x = 1が解になるので、b ̸= 0を仮定して、{ai}ni=1, {xi}ni=1, {yi}ni=1を以下で定義:a1 := a, a2 := b, x1 := 1, y1 := 0, x2 := 0, y2 := 1

ax1 + by1 = a1 (1)

ax2 + by2 = a2 (2)

a3 := a1 mod a2, q :=a1 − a3

a2, x3 := x1 − qx2, y3 := y1 − qy2

ax3 + by3 = a3 (3)

これをくりかえすと、

axn + byn = an = (a, b)

.

.

.

.

5 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号

.

Page 6: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

b ̸= 0のとき、同値関係 a ≡ c (mod b)def⇐⇒ b|(a − c)

a1 ≡ c1, a2 ≡ c2 (mod b) =⇒ a1 + a2 ≡ c1 + c2 (mod b)

a1 ≡ c1, a2 ≡ c2 (mod b) =⇒ a1a2 ≡ c1c2 (mod b)

.

b ̸= 0, (a, b) = 1 =⇒ ∃x ∈ Z s.t.ax ≡ 1(mod b)

.

.

.

. ..

.

.

(a, b) = 1であれば、ax + by = 1なる x , y ∈ Zが存在するから

.

.

.

.

6 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号

.

Page 7: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

RSA暗号: 鍵生成

.

公開鍵 (n, e)と秘密鍵 d の生成

.

.

.

. ..

.

.

各自が、それぞれの公開鍵 (n, e)を公開、秘密鍵 d を秘密に

.

.

.

1 素数 p ̸= qを選ぶ

.

.

.

2 n := pq, ϕ := (p − 1)(q − 1)

.

.

.

3 (e, ϕ) = 1なる e (mod ϕ)を選ぶ (1 ≤ e ≤ ϕ− 1)

.

.

.

4 ex ≡ 1 (mod ϕ)なる x = d を選ぶ (1 ≤ d ≤ ϕ− 1)

ed ≡ ed ′ ≡ 1 (mod ϕ) =⇒ e(d − d ′) ≡ 0 (mod ϕ)

=⇒ d − d ′ ≡ 0 (mod ϕ)

k ∈ Z, ed ≡ 1 (mod ϕ) =⇒ e(d + kϕ) ≡ 1 (mod ϕ)

.

.

.

.

7 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号

.

Page 8: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

RSA暗号: 暗号化と復号化

.

平文m ∈ [0, n − 1]を暗号化して、c := me mod n

.

.

.

. ..

.

.

送信側は、受信側の公開鍵 (n, e)で平文 mを暗号化

長ければ、短いブロックに区切り、それぞれを n通りの平文

送信側 受信側

m-暗号化

c := me

mod n- 送信 -· · · - 受信 -c

復号化 -

m = cd

mod n

(me)d ≡ m (mod n)

仮定: (n, e) → d の計算が膨大で、d はわからない

.

.

.

.

8 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号

.

Page 9: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

Fermatの小定理: p: 素数, m ∈ Z (m ≥ 0)(m, p) = 1 =⇒ mp−1 ≡ 1 (mod p)

1 ≤ k ≤ p − 1 =⇒

k!

(pk

)=

∏pj=p−k+1 j ≡ 0 (mod p)

k! ̸≡ 0 (mod p)

=⇒(

pk

)≡ 0 (mod p)

(c1 + c2)p − (cp1 + cp2 ) =

p−1∑k=1

(pk

)ck1 c

p−k2 ≡ 0 (mod p)

数学的帰納法で一般のmに拡張し、c1 = · · · = cm = 1とおくと

(1 + · · ·+ 1︸ ︷︷ ︸m

)p − (1p + · · ·+ 1p︸ ︷︷ ︸m

) ≡ 0 (mod p)

m(mp−1 − 1) ≡ 0 (mod p)

.

.

.

.

9 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号

.

Page 10: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

med ≡ m (mod n)

ed ≡ 1 (mod ϕ)より、ed = 1 + kϕなる整数 k が存在

.

..

1 (m, p) = 1であれば、Fermatの小定理から

mp−1 ≡ 1 (mod p)

m1+kϕ = m1+k(p−1)(q−1) = m · (mp−1)k(q−1) ≡ m (mod p)

med ≡ m (mod p) (4)

.

.

.

2 (m, p) = pでも (4)は成立

p, qを入れ替えても (4)は成立する。

med ≡ m (mod q)

p ̸= qより、(p, q) = 1であるので、

med ≡ m (mod pq)

.

.

.

.

10 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号 .

Page 11: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

安全性の根拠

.

RSA暗号の安全性

.

.

.

. ..

.

.

(n, e) → d は数学的に一意だが、計算量が膨大

商用の nは、n = 21024, 22048程度=⇒ 最速の計算機でも素因数分解に 10年かかる 

.

RSA暗号を破るには

.

.

.

. ..

.

.

計算機で n = pqと因数分解できる=⇒ ϕ = (p − 1)(q − 1)が求まる=⇒ eの値とユークリッド互除法で d が求まる

大きな数 nの素因数分解

大きな数 nのオイラー数 ϕの計算

現在の計算機で素因数分解が難しいことが、安全性の根拠

.

.

.

.

11 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号 .

Page 12: 公開鍵暗号(1): RSA暗号

.

.

概要

.

.

はじめに

.

.

ユークリッド互除法

.

.

RSA 暗号

.

.

安全性の根拠

.

.

暗号化の高速化

参考: me mod nの高速化

再帰的に計算して、eではなく、log2 eに比例する程度の計算

me mod n =

(me/2 mod )2 mod n (e : even, e ̸= 0)

m · (m(e−1)/2 mod n)2 mod n (e : odd)1 (e = 0)

.

.

.

.

12 / 12

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号 .