.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
RSA 暗号
.
.
安全性の根拠
.
.
暗号化の高速化
実験数学 3(大阪大学理学部数学科 3年・4年)
第 1回: RSA暗号
鈴木 譲
2013年 4月 11日
.
.
.
.
1 / 12
.
実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
RSA 暗号
.
.
安全性の根拠
.
.
暗号化の高速化
概要
.
.. 1 はじめに
.
..
2 ユークリッド互除法
.
..
3 RSA暗号
.
..
4 安全性の根拠
.
..
5 暗号化の高速化
.
.
.
.
2 / 12
.
実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
RSA 暗号
.
.
安全性の根拠
.
.
暗号化の高速化
公開鍵暗号
送信側 受信側
m平文
-暗号化
f c := f (m)暗号文
- 送信 -· · · - 受信 -
c暗号文
復号化
f −1
-
m := f −1(c)平文
.
共通鍵暗号と公開鍵暗号
.
.
.
. ..
.
.
共通鍵暗号 (戦争) 暗号化 f : 秘密, 復号化 f −1: 秘密
公開鍵暗号 (インターネット) 暗号化 f : 公開, 復号化 f −1: 秘密
知らない相手に、暗号化 f をすぐに教えるf ↔ f −1 であっても、f → f −1 の計算が膨大
RSA暗号: Rivest, Shamir, Adleman (1976): 公開鍵暗号の 1種
.
.
.
.
3 / 12
.
実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
RSA 暗号
.
.
安全性の根拠
.
.
暗号化の高速化
ユークリッド互除法
Z: 整数全体a, b, c ∈ Z, a ≥ 0, 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 :
{a1 ≥ 0, a2 > 0, an|an−1
ai mod ai+1 = ai+2 > 0, i = 1, · · · , n − 2
=⇒ (a1, a2) = · · · = (an−1, an) = an
.
.
.
.
4 / 12
.
実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 1 回: RSA 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
RSA 暗号
.
.
安全性の根拠
.
.
暗号化の高速化
a ≥ 0, b > 0 =⇒ ∃x , y ∈ Z s.t. ax + by = (a, b)
{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 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
RSA 暗号
.
.
安全性の根拠
.
.
暗号化の高速化
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)
.
a ≥ 0, 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 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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)
(a1 + a2)p − (ap1 + ap2) =
p−1∑k=1
(pk
)ak1a
p−k2 ≡ 0 (mod p)
数学的帰納法で一般のmに拡張し、a1 = · · · = am = 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 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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 暗号 .
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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 暗号 .
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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 暗号 .