公開鍵暗号5: 離散対数問題
TRANSCRIPT
.
.
Road Map
.
.
離散対数問題
.
.
中国の剰余の定理を用いた解法
.
.
Baby-step Giant-step アルゴリズム
.
.
Index Calculus アルゴリズム
実験数学 3(大阪大学理学部数学科 3年・4年)
第 5回: 離散対数問題
鈴木 譲
大阪大学
2013年 5月 16日
.
.
.
.
1 / 18
.
実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 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 回: 離散対数問題
.
.
.
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 回: 離散対数問題
.
.
.
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 回: 離散対数問題.
.
.
Road Map
.
.
離散対数問題
.
.
中国の剰余の定理を用いた解法
.
.
Baby-step Giant-step アルゴリズム
.
.
Index Calculus アルゴリズム
離散対数問題の解法
中国の剰余の定理を用いた解法
nが大きな素因数をもたないと危険
Baby-step Giant-step
Index Calculous: G が有限体乗法群 (F∗p など)の場合のみ
.
.
.
.
5 / 18
.
実験数学 3, (大阪大学理学部数学科 3 年・4 年), 第 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 回: 離散対数問題
.
.
.
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 回: 離散対数問題
.
.
.
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 回: 離散対数問題
.
.
.
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 回: 離散対数問題
.
.
.
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 回: 離散対数問題
.
.
.
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 回: 離散対数問題
.
.
.
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 回: 離散対数問題
.
.
.
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 回: 離散対数問題
.
.
.
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 回: 離散対数問題 .
.
.
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 回: 離散対数問題 .
.
.
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 回: 離散対数問題 .
.
.
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 回: 離散対数問題 .
.
.
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 回: 離散対数問題 .