公開鍵暗号(1): rsa暗号
DESCRIPTION
実験数学3 (大阪大学理学部数学科 3年・4年) 鈴木 譲 2014年4月10日TRANSCRIPT
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
RSA 暗号
.
.
安全性の根拠
.
.
暗号化の高速化
実験数学 3(大阪大学理学部数学科 3年・4年)
第 1回: RSA暗号
鈴木 譲
2014年 4月 10日
.
.
.
.
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が インター
類推されにくい ネット
公開鍵暗号の例: RSA暗号 (Rivest, Shamir, Adleman, 1976)
.
.
.
.
3 / 12
.
実験数学 3, (大阪大学理学部数学科 3 年・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 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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)
(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 暗号
.
.
.
概要
.
.
はじめに
.
.
ユークリッド互除法
.
.
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 暗号 .