公開鍵暗号3: ナップザック暗号

6
実験数学 3 (大阪大学理学部数学科 3 年・4 ) 3 : ナップザック暗号 鈴木 譲 大阪大学 2013 4 25

Upload: joe-suzuki

Post on 04-Jul-2015

461 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 公開鍵暗号3: ナップザック暗号

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

第 3回: ナップザック暗号

鈴木 譲

大阪大学

2013年 4月 25日

Page 2: 公開鍵暗号3: ナップザック暗号

ナップザック問題 KNAPSACK

事例:  (a0, a1 · · · , ar ) ∈ Nr+1, r ≥ 1質問:  a0 = a1z1 + · · ·+ arzr となる (z1, · · · , zr ) ∈ {0, 1}r が存在するか。

KNAPSACKはNP完全である

3SAT ∝ KNAPSACK

証明: 3SATが真であれば、

ui + ui = 1 , i = 1, · · · , n

cj ,1 + cj ,2 + cj ,3 + vj ,1 + vj ,2 = 3 , j = 1, · · · ,m

(cj = (cj ,1, cj ,2, cj ,3)は、u1, · · · , un, u1, · · · , unからの 3個)

Page 3: 公開鍵暗号3: ナップザック暗号

ナップザック問題 KNAPSACK

変数 (ui , ui )ni=1, (vj ,1, vj ,2)

mj=1を (zj)

2m+2nj=1 、

係数 (左辺は 0,1、右辺は 1,3)を (bi ,j)1≤i≤m+n,0≤j≤2m+2nとし、

2m+2n∑j=1

bi ,jzj = bi ,0 , i = 1, · · · ,m + n (1)

の各行を 10i−1倍して加えると、

m+n∑i=1

2m+2n∑j=1

10i−1bi ,jzj =m+n∑i=1

10i−1bi ,0 (2)

逆に、(2)が解 (zj)2m+2nj=1 をもてば、(1)のm + n個の方程式を満

足し、3SATで充足する (ui , ui )ni=1, (vj ,1, vj ,2)

mj=1を与える

Page 4: 公開鍵暗号3: ナップザック暗号

超増加列とナップザック問題

a1, · · · , an ∈ Nが超増加列ai >

∑i−1j=1 aj

超増加列を仮定すると、ナップザック問題

n∑i=1

aimi = c

は、c ′ := c として、i = n, n − 1, · · · , 1について、{c ′ > ai =⇒ mi = 0c ′ ≥ ai =⇒ mi = 1, c ′ := c ′ − ai

を繰り返して、多項式時間で解ける

Page 5: 公開鍵暗号3: ナップザック暗号

ナップザック暗号 (Merkle-Hellman, 1978)

a1, · · · , an ∈ N: 超増加列q ≥

∑ni=1 ai

r ∈ N, (r , q) = 1bi = rai mod q, i = 1, · · · , n

秘密鍵 a = (a1, · · · , an), q, r公開鍵 b = (b1, · · · , bn)

平文m = (m1, · · · ,mn) ∈ {0, 1}nの暗号化暗号化 c :=

∑ni=1mibi (暗号文)

復号化 cr−1 ≡∑n

i=1miai mod q(超増加列のナップザック問題)

Page 6: 公開鍵暗号3: ナップザック暗号

ナップザック暗号の解読 (Shamir, 1982)

b = (b1, · · · , bn)が超増加列でなくても、a′i = r ′bi mod q′が超増加列となる q′, r ′を見出す方法に成功した (詳細略)

cr ′ =n∑

i=1

mia′i

より、m = (m1, · · · ,mn)が計算できる。

KNAPSACKがNP困難問題でも、暗号が解読された

b = (b1, · · · , bn)は超増加列でないが、特種な条件を仮定している

NP困難でも条件を加えれば問題が簡単になるので、多項式時間で解ける場合がある