主張(RSA-HC2)の証明


補題1
t個の、組ごとに独立なバイナリ確率変数S1,...,Stが平均値 E[Si] = α = 1/2 + εを共有するならば(ε>0)、
  • Pr[ Σi=1..t Si > t/2 ] ≧ 1 - 1/(tε2).

主張(RSA-HC2)の証明
l = |n| について、m = 2l/ε2 とする。(※lについて多項式)
注意: このとき、m ≦ 2t2 が成り立つとしてよい。
実際、t > log(l) としてよい(log(l)個までならLsb([ajx]) (j=1..log(l))を直接geussできる)ので、m ≦ 2t2

アルゴリズムL: n, e, y, a, b, u, v, α, β を入力として、(※α=Lsb([ax]n), β= Lsb([bx]n))
  • a0 = a, u0 = u, α0 = α
  • t ∈ [1..l] :
    • c0 = 0, c1 = 0
    • at = [2-1 at-1]n, ut = (ut-1 + αt-1) / 2
    • i ∈ [(-m/2)..(m/2-1)] :    ※ A1を何度か実行して多数決で正しい値を判断する
      • A = at + i at-1 + b    ※ at を中心に2次元分のランダムネスをa, bから引き継ぐ
      • W = floor( ut + i ut-1 + v ) ※ w のguess
      • B = (i α + β + W) mod 2
      • A1(n,e,[Ae y]n) + B ≡? 0 (mod 2) : 
        • c0 = c0 + 1 else c1 = c1 + 1
    • c0 > c1 : αt = 0 else αt = 1
  • return (α0, α1, ... , αl).

[アルゴリズムLの解析]:
j ∈ [0..(t-1)] について αj = Lsb([ajx]) と仮定する。

i ∈ [(-m/2)..(m/2-1)] :
  • At,i := at + i at-1 + b
  • W't,i := ut + i ut-1 + v
  • Wt,i := floor(W't,i)
  • Bt,i := i Lsb([at-1x]n) + Lsb([bx]n) + Lsb(Wt,i) mod 2
  • λt,i := [atx]n + i [at-1x]n + [bx]n
  • w := floor(λt,i/n) ※ λt,i = wn + [At,i x]n

主張1 Wt,i = w ならば Lsb([atx]n) ≡ Lsb([At,ix]n) + Bt,i (mod 2).
証明

主張2 εn/4 < [At,i x]n < n - εn/4 ならば Wt,i = w.
証明

主張3 i ≠ j ならば、確率変数 [At,i]n と [At,j]n は独立。
証明

i∈[(-m/2)..(m/2-1)]について、
  • イベント E1,i : 『 A1(n,e,[At,ie y]n) = Lsb([At,i x]n) 』
  • イベント E2,i : 『 εn/4 < [At,i x]n < n - εn/4 』
  • イベント Ii := E1,i ∩ E2,i
とおくと、
  • Pr[E1,i] ≧ 1/2 + ε ※ 主張の仮定
  • Pr[E2,i] = 1 - ε/2
よって、
  • Pr[Ii = 1] ≧ Pr[E2,i] - (1-Pr[E1,i]) ≧ (1 - ε/2) - (1/2 - ε) = 1/2 + ε/2.

主張3より、i≠jならばIiとIjは独立なので、{Ii : i∈[(-m/2)..(m/2-1)]}に補題1を適用でき、
  • Pr[ Σi=(-m/2)..(m/2-1)Ii > m/2 ] ≧ 1 - 1/(mε2) ≧ 1 - 1/(2l).

一方、主張1、主張2より、
  • Iiが成り立つならば、Lsb([atx]) ≡ Lsb([At,ix]) + Bt,i (mod 2).
よって、
  • Lsb([atx]) = 0 ⇒ C0 ≧ ΣiIi ⇒ Pr[C0 > C1] ≧ 1 - 1/(2l).
  • Lsb([atx]) = 1 ⇒ C1 ≧ ΣiIi ⇒ Pr[C1 > C0] ≧ 1 - 1/(2l).
したがって、
  • Pr[ αt = Lsb([atx]) ] ≧ 1 - 1/(2l).
Q.E.D.





















最終更新:2009年09月06日 23:37