公開鍵暗号5: 離散対数問題

18
Road Map 離散対数問題 中国の剰余の定理を用いた解法 Baby-step Giant-step アルゴリズム Index Calculus アルゴリズ 実験数学 3 (大阪大学理学部数学科 3 年・4 ) 5 : 離散対数問題 鈴木 譲 大阪大学 2013 5 16 1 / 18 実験数学 3, (大阪大学理学部数学科 3 年・4 ), 5 : 離散対数問題

Upload: joe-suzuki

Post on 19-Jun-2015

599 views

Category:

Education


1 download

TRANSCRIPT

Page 1: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

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

第 5回: 離散対数問題

鈴木 譲

大阪大学

2013年 5月 16日

.

.

.

.

1 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

Page 2: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

この単元で学ぶこと

.

..1 離散対数問題

.

..

2 中国の剰余の定理を用いた解法

.

..

3 Baby-step Giant-stepアルゴリズム

.

..

4 Index Calculus アルゴリズム

.

.

.

.

2 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 3: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

離散対数問題

G : 有限巡回群α: G の生成元n := |G |0 ≤ x ≤ n − 1β := αx

.

G の離散対数問題

.

.

.

. ..

.

.

(α, β) 7→ x を計算(nが大きい場合など、計算的に困難な場合がある)

.

.

.

.

3 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 4: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

離散対数問題の計算的困難性を利用した暗号

α, β: 公開0 ≤ x ≤ n − 1: 秘密

暗号化 0 ≤ r ≤ n − 1をランダムに生成し、G ∋ m 7→ (mβr , αr )

復号化 r によらず、mβr

(αr )x=

mβr

(αx)r=

mβr

βr= m

例: G = F∗p, p = 7, α = 2, β = 4, x = 2

m = 5, r = 2 =⇒ (mβr , αr ) = (5 · 42, 22) = (3, 4)

=⇒ nβr

(αr )x=

3

42=

3

2= 3 · 4 = 5

.

.

.

.

4 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題.

Page 5: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

離散対数問題の解法

中国の剰余の定理を用いた解法

nが大きな素因数をもたないと危険

Baby-step Giant-step

Index Calculous: G が有限体乗法群 (F∗p など)の場合のみ

.

.

.

.

5 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 6: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

中国の剰余の定理

.

中国の剰余の定理

.

.

.

. ..

.

.

m = m1 · · ·mt , (mi ,mj) = 1 (i = j), b1, · · · , bt ∈ Zについて、

x ≡ b1 (mod m1), · · · x ≡ bt (mod mt)

は必ず解を持ち、どの 2解の差もmの倍数

例: x ≡ 3 (mod 7), x ≡ 7 (mod 13) =⇒ x ≡ 59 (mod 91) 

証明: ni := m/mi とおくと、性質 1より、(mi , ni ) = 1、つまりrimi + sini = 1なる 2整数 ri , si が存在する。ei := sini について、ei ≡ 1 (mod mi ), ei ≡ 0 (mod mj) (i = j)。したがって、x0 :=

∑ti=1 biei は、x0 ≡ biei ≡ bi (mod mi ), i = 1, · · · t, より解

である。別の解を x1とすると、x1 − x0 ≡ 0 (mod mi )より、m1|x1 − x0, · · · ,mt |x1 − x0、性質 2より、m|x1 − x0

.

.

.

.

6 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 7: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

.

性質 1

.

.

.

. ..

.

.

(ai , n) = 1, i = 1, · · · , t =⇒ (a1 · · · at , n) = 1

仮定から、siai + rin = 1なる (si , ri ), i = 1, · · · , t, が存在するので、t 個の方程式の両辺をかけると、s1 · · · sta1 · · · at + rn = 1なる r ∈ Zが存在する。

.

性質 2

.

.

.

. ..

.

.

ai |n, i = 1, · · · , t, (ai , aj) = 1(i = j) =⇒ a1 · · · at |n

t = 1では証明することがなく成立。t − 1で正しいと、a1 · · · at−1|n。性質 1より、(at , a1 · · · at−1) = 1。これは、rat + sa1 · · · at−1 = 1なる r , sが存在することと同値。両辺 nをかけると、左辺の 2項は、ともに a1 · · · at で割れるので、a1 · · · at |n。

.

.

.

.

7 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 8: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

中国の剰余の定理を用いた離散対数問題の解法

β = αx (0 ≤ x ≤ n − 1),n =∏

i peii (pi : 素数, ei ≥ 1)を求める

中国の剰余の定理から、各 i で x mod peii を求めれば十分。

p := pi , e := ei とおくと、z =∑e−1

i=0 zipi として、

z := x mod pe =e−1∑i=0

zipi , 0 ≤ zi ≤ p − 1

γ := αn/p の位数は pとなり、γp = 1 = γ0より、

βn/p = αxn/p = γx = γz+kpe = γ

z0 + pe−1∑i=1

zipi−1 + kpe

= γz0

の離散対数問題から z0を求める (x = z + kpe なる k ∈ Zが存在)。

.

.

.

.

8 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 9: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

e ≥ 2であれば、

(βα−z0)n/p2= (αx−z0)n/p

2= (α

∑e−1i=1 zip

i+kpe )n/p2

= (αn/p)z1+∑e−1

i=2 zipi−1+kpe−1

= γz1

(βα−z0−z1p)n/p3= (αx−z0−z1p)n/p

3= (α

∑e−1i=2 zip

i+kpe )n/p3

= (αn/p)z2+∑e−1

i=3 zipi−2+kpe−1

= γz2

· · ·

(βα−z0−z1p−···−ze−2pe−2)n/p

e= (αx−z0−z1p−···−ze−2pe−2

)n/pe

= (αze−1pe−1+kpe )n/p3= (αn/p)ze−1+kpe−1

= γze−1

なる離散対数問題をそれぞれ解いて、z1, z2, · · · , ze−1を求める。

.

.

.

.

9 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 10: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

Baby-step Giant-stepアルゴリズム

.

..

1 正整数 r , s をrs > n (1)

となるようにとる

.

.

.

2 単射 h : G → [0, n − 1]を決めておく。

.

.

.

3 有限系列

αr , α2r , · · · , αrs

β, αβ, α2β, · · · , αr−1β

を求め、両列とも h(·)の値の小さい順に並べ替えて、

.

.

.

4

αir = αjβ (2)

を満足する (i , j)を見出す

.

.

.

.

10 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 11: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

.

離散対数問題の解

.

.

.

. ..

.

.

x = ir − j (3)

は離散対数問題の解となる。また、そのような (i , j)は存在する。

証明:

αx = αir−j =αirβ

αjβ=

αirβ

αir= β

i\j 0 1 2 · · · r − 1

1 r r − 1 r − 2 · · · 12 2r 2r − 1 2r − 2 · · · r + 1...

......

......

...s rs rs − 1 rs − 2 · · · r(s − 1) + 1

.

.

.

.

11 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 12: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

計算量は、 O(n)より小さい

r = s = m := ⌊√n⌋として、

.

2列の G の元の個数

.

.

.

. ..

.

.

2m

.

計算量 O(m logm log logm log log logm)

.

.

.

. ..

. .

G の 2元の演算 (Schonhage-Strassen法):O(log n log log n log log log n)

αr の高速計算法 (G の 2元の演算を log r 回):O(logm logm log logm log log logm)

2m個の値の計算: O(m logm log logm log log logm)

2列を昇順に並べ替えて (quick sort法)、つきあわす: O(m logm)

.

.

.

.

12 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 13: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

G = F∗p, n = p − 1

.

r ∈ F∗p が q-smooth

.

.

.

. ..

. .

r ∈ [1, p − 1]を整数と見たとき、その素因数がすべて q以下

.

.

.

.

13 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題

.

Page 14: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

Index Calculus アルゴリズム

.

. .1 S := {p1, · · · , pt} (最初の t 個の素数)

.

..

2 k をランダムに発生させ、αk が pt-smooth、すなわち

αk =t∏

i=1

pcii , ci ≥ 0 (4)

となる (k , c1, · · · , ct)を、t + ϵ個求める (ϵは十分小さな整数)。

.

.

.

3 t + ϵ個の (k, c1, · · · , ct)から、αei = pi なる ei = logα pii = 1, · · · , t についての連立方程式を解く。

k ≡t∑

i=1

ciei , ci ≥ 0 (mod p − 1) (5)

.

.

.

.

14 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題 .

Page 15: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

線形従属になる可能性があるので、ϵを多めにとっておく。

.

. .1 r をランダムに発生させ、β · αr が pt-smooth、すなわち

β · αr =t∏

i=1

pcii , ci ≥ 0 (6)

となる (r , c1, · · · , ct)を求める。最終的に、以下から x が求まる。

x = logα β = (t∑

i=1

ciei − r) mod (p − 1) (mod p − 1) (7)

.

.

.

.

15 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題 .

Page 16: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

例: F∗229 = {60, 61, · · · , 6227}, α = 6, β = 13

.

. .1 r := 5, S := {2, 3, 5, 7, 11} (factor base)

.

..

2

6100 = 180 = 22 · 32 · 5

618 = 176 = 24 · 11

612 = 165 = 3 · 5 · 11

662 = 154 = 2 · 7 · 11

6143 = 198 = 2 · 32 · 11

6206 = 210 = 2 · 3 · 5 · 7

.

.

.

.

16 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題 .

Page 17: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

.

.

.

3

100 ≡ 2 log6 2 + 2 log6 3 + log6 5 (mod 228)

18 ≡ 4 log6 2 + 2 log6 11 (mod 228)

12 ≡ log6 3 + 2 log6 5 + log6 11 (mod 228)

62 ≡ log6 2 + log6 7 + log6 11 (mod 228)

143 ≡ log6 2 + 2 log6 3 + log6 11 (mod 228)

206 ≡ log6 2 + log6 3 + log6 5 + log6 7 (mod 228)

この連立方程式を解いて、

log6 2 = 21, log6 3 = 208, log6 5 = 98, log6 7 = 107, log6 11 = 162

.

.

.

4 βα77 = 13 · 677 = 147 = 3 · 72 より、

logα β = log6 3 + 2 log6 7− 77 = 117 (mod 228)

.

.

.

.

17 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題 .

Page 18: 公開鍵暗号5: 離散対数問題

.

.

Road Map

.

.

離散対数問題

.

.

中国の剰余の定理を用いた解法

.

.

Baby-step Giant-step アルゴリズム

.

.

Index Calculus アルゴリズム

計算量の評価

t が小さいと、pt-smoothな数を求めるのに時間がかかる

t が大きいと、連立方程式を求めるのに時間がかかる

 

O(2√log n log log n)程度の計算量

.

.

.

.

18 / 18

.

実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 5 回: 離散対数問題 .