主張(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 ≦ 2t/ε2 が成り立つとしてよい。
実際、t > log(l) としてよい(log(l)個までならLsb([ajx]) (j=1..log(l))を直接geussできる)ので、m ≦ 2t/ε2。
アルゴリズム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 W
t,i = w ならば Lsb([a
tx]
n) ≡ Lsb([A
t,ix]
n) + B
t,i (mod 2).
証明
主張2 εn/4 < [A
t,i x]
n < n - εn/4 ならば W
t,i = w.
証明
主張3 i ≠ j ならば、確率変数 [A
t,i]
n と [A
t,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