定理(PSF)の証明のアイデア

n=2とする。x = 01 における値F(k, 01)は(kを知らない)識別者には乱数に見える。
実際、
  • F(k, 01) = G1(G0(k)) ~ G1(k') ~ k''.

定理(PSF)の証明

任意のPPT識別者Dの疑似ランダム関数候補Fに対する識別利得をε(n)とおく:
ε(n) := | Pr[k ← {0,1}n : DF(k,・)(1n) = 1] - Pr[f ← Fnc(n,n) : Df(・)(1n) = 1] |

0以上n以下の各iについて、以下のハイブリッド分布Hniを考える:
Hni:
  • レベルiの全ての(2i個の)ノードそれぞれに、独立なnビットランダム文字列を割り当てる。
  • レベル(i+1)以降の各ノードには構成(PSF)と全く同様にしてnビット文字列を割り当てる。
    • すなわち、ラベルxをもつノードに文字列vxが割り当てられていたら、その2つの子ノードには文字列vx0 := G0(vx)と文字列vx1 := G1(vx)をそれぞれ割り当てる。

明らかに、
  • Hn0において葉ノードに割り当てられる文字列の分布は、関数F(k,・)の出力分布と同一。
  • Hnnにおけるそれは、真のランダム関数f (← Fnc(n,n))の出力分布と同一。
よって、
  • ε(n) = | Pr[ DHnn(1n) = 1] - Pr[ DHn0(1n) = 1] |.

Fに対する上記識別者D(1n)の計算ステップ数の上界をt(n)とおく。
Dを用いて、疑似乱数生成器Gに対する識別者D'を構成する:
D': t個の2nビット文字列v1=(v1,0,v1,1),・・・,vt=(vt,0,vt,1)を入力として、
  • i ← [0..(n-1)]
  • 1nを入力としてDを起動:
    • Dがオラクルにx = (x1,・・・,xn)における関数値を問い合わせたら:
      • ラベル(x1,・・・,xi)が指定するレベルiのノードvに注目する。
      • ノードvの子ノードにまだ文字列が割り当てられていないならば、入力からまだ使われていない2nビット文字列vjを取り出し、vj,0とvj,1をそれぞれvの2つの子ノードに割り当てる。
      • 以降、ラベルx=(x1,・・・,xn)が指定するレベルnのノードにむけて、構成(PSF)と同じ方法で子ノードに文字列を割り当てていく。
      • ラベルxが指定するレベルnのノードに割り当てられた文字列を、xにおける関数値としてDに返す。
  • Dが停止したら、その出力を自身の出力として停止する。

識別者Dの解析:
  • Dへの入力である、各2nビット文字列viがすべて真のランダム文字列であるとき、
    • 確率変数iとしてIが選択されたとすると、D'が構成する2分木の分布はHnI+1のそれと同一である。
      • (レベルI+1の各ノードに真のランダム文字列が割り当てられる。)
  • よって、
    • Pr[v1,...,vt ← {0,1}2n : D'(v1,...,vt) = 1 | i = I] = Pr[DHnI+1(1n) = 1].
  • よって、
    • Pr[v1,...,vt ← {0,1}2n : D'(v1,...,vt) = 1]
      • = 1/n ΣI=0..(n-1) Pr[DHnI+1(1n) = 1]
      • = 1/n ΣI=1..n Pr[DHnI(1n) = 1].

  • Dへの入力である、各2nビット文字列viがすべて疑似ランダム文字列G(si)であるとき、
    • 確率変数iとしてIが選択されたとすると、D'が構成する2分木の分布はHnIのそれと同一である。
      • (レベルIの各ノードに真のランダム文字列が割り当てられる。)
  • よって、
    • Pr[v1=G(s1),...,vt=G(st) : D'(v1,...,vt) = 1 | i = I] = Pr[DHnI(1n) = 1].
  • よって、
    • Pr[v1=G(s1),...,vt=G(st) : D'(v1,...,vt) = 1]
      • = 1/n ΣI=0..(n-1) Pr[DHnI(1n) = 1].

したがって、D'の識別利得は
  • | Pr[v1,...,vt ← {0,1}2n : D'(v1,...,vt) = 1] - Pr[v1=G(s1),...,vt=G(st) : D'(v1,...,vt) = 1] |
    • = 1/n | Pr[DHnn(1n) = 1] - Pr[DHn0(1n) = 1] |
    • = ε(n)/n.

Gは疑似乱数生成器なのでこれはネグリジブル。よって、Dの識別利得ε(n)もネグリジブルである。
Q.E.D.


















最終更新:2009年10月01日 16:05