定理(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.

Q.E.D.
上へ













最終更新:2009年09月06日 22:46