定理(RSA-HC2)の証明 [Neuenschwander 04, 2.4]
主張
l = |n| 、ε= 1/ξ(l) とし、これらについて定理(RSA-HC2)のアルゴリズムA1が存在するとする。
a, b, x ∈ Zn* について、有理数u = u(a,x) と 有理数v = v(b,x)を以下のようにとる:
- | [a x]n - u n | ≦ ε3 n / 8
- | [b x]n - v n | ≦ εn / 8.
さらに、α = Lsb([a x]n), β = Lsb([b x]n) とする。
このとき、あるPPTアルゴリズムLがあって、
- a, b, x ← Zn*, y = [xe]n, (α0, ... , αl) ← L(n,e,y,a,b,u,v,α,β) について、
- Pr[ αt = Lsb([at x]n) | αj = Lsb([aj x]n) for j = 0..(t-1) ] ≧ 1 - 1/(2 l) for t = 0..l.
- ただし、a0 = a, at = [2-1 at-1]n.
主張のアルゴリズムLを用いて、目標のアルゴリズムA2を構成する。
アルゴリズムA2: n, e, y を入力として、
- l = |n| 、ε= 1/ξ(l)
- a, b ← Zn*
- Guess u, v ∈ Q s.t.
- | [a x]n - u n | ≦ ε3 n / 8
- | [b x]n - v n | ≦ εn / 8.
- ※ u, v はそれぞれ (ε3/8)刻み, (ε/8)刻みの[0,1]範囲の有理数からのguess.
- Guess α = Lsb([a x]n), β = Lsb([b x]n)
- (α0, ... , αl) ← L(n, e, y, a, b, u, v, α, β)
- ※ 以下は定理(RSA-HC1)の証明のA2と(本質的に)同じ。精度をn倍に精密化する。
- a0 = a, u0 = u
- t ∈ [1..l] : ut = (ut-1 + αt-1) / 2, at = [2-1 at-1]n
- return [al-1 floor(ul n + 1/2)]n.
[アルゴリズムA2の解析]:
- j ∈ [1..t] について、αj-1 = Lsb([aj-1 x]n)との仮定のもとで
- | [at x] - ut n | = (1/2) | [at-1 x] - ut-1 n |. (※ 定理(RSA-HC1)の証明のときと同様)
- よって、
- | [al x] - ul n | ≦ ε3/8 < 1/2
- よって、
- x = al-1 floor(ul n + 1/2) mod n.
- ゆえに、主張より
- Pr[ A2(n, e, y) = x ] ≧ (1 - 1/(2l))l+1 ≧ (1 - 1/(2l))2l-1 ≧ 1/e.
最終更新:2009年09月06日 22:46