Processing math: 0%

2023年12月1日金曜日

hardcore補題を使ったXOR補題の証明

 平均時計算量においてはXOR補題と呼ばれる定理がよく知られています. この分野では脱乱択化や暗号プリミティブの構成への応用を念頭に, 非常に難しい関数をどのように構成するかが研究されています.

関数f\colon\{0,1\}^n\to\{0,1\}に対する回路Cの成功確率p_{C,f}
\begin{align*} p_{C,f}:= \Pr_{x\sim\{0,1\}^n}[C(x)=f(x)] \end{align*}
と定めます. ここで, 有限集合Sに対してx\sim SxS上一様分布に選ばれたことを意味します. 任意のサイズsの回路C\colon\{0,1\}^n\to\{0,1\}に対してその成功確率が高々1-\deltaであるとき, 関数fはサイズsに対して\delta-困難であるといいます. 定数回路(常に0を出力, または常に1を出力する回路)を使えば成功確率\geq1/2を達成するので, 基本的に\delta\leq1/2の範囲で考えます. 特に, 小さい\epsilon>0に対して(1/2-\epsilon)-困難な関数は正解できる入力の個数が下界に近いので非常に困難な関数であるとみなすことができます. XOR補題とは, XORをとることによって関数の困難性を増幅できることを主張する定理です.

定理1 (XOR補題)
関数f, パラメータk\in\mathbb{N}に対して関数f^{\oplus k}\colon \{0,1\}^{nk}\to\{0,1\}
\begin{align*} f^{\oplus k}(x_1,\dots,x_k)=f(x_1)\oplus \dots \oplus f(x_k) \end{align*}
で定める. fがサイズ$
O\left(\frac{\log(1/\delta)}{(\epsilon/k)^2}(s+kn)\right)に対して\delta-困難かつk\geq \frac{C\log(1/\epsilon)}{\delta^2}ならば, f^{\oplus k}はサイズsに対して(1/2-\epsilon)-困難である. ここでC$は十分大きな定数である.

一般に, 「関数fがサイズsに対して\delta-困難ならば関数gはサイズs'に対して(1/2-\epsilon)-困難である」という形の定理を困難性の増幅(hardness amplification)といい, XOR補題はその最も基本的な定理の一つです. 原則としてs'\approx sであることが望まれます.

本記事ではこの定理を証明します. そのためにhardcore lemmaを使います. 回路Cの問題fに対する入力集合H\subseteq\{0,1\}^n上での成功確率をp_{C,f,H}:=\Pr_{x\sim H}[C(x)=f(x)]と定義します. ここでは[Impagliazzo (1995)]のパラメータを改善した[Barak, Hardt, Kale (2009)]による以下のhardcore lemmaを用いることにします:

補題1. (hardcore lemma)
サイズsに対して\delta-困難な関数を任意にとってきてfとすると, ある|H|\geq\delta 2^nを満たす集合H\subseteq \{0,1\}^nであって, 任意のサイズO\left(\frac{\epsilon^2}{\log(1/\delta)}s\right)の回路Cに対してp_{C,f,H}\leq 1/2-\epsilonを満たすものが存在する.

補題1によって存在性が保証されている集合Hfハードコア集合と呼びます. hardcore lemmaの対偶をとると以下の主張を得ます:

補題1'. (hardcore lemma)
任意の|H|\geq \delta 2^nを満たす集合H\subseteq \{0,1\}^nに対してあるサイズsの回路C_Hが存在して\Pr_{x\sim H}[C_H(x) = f(x)]\geq 1/2+\epsilonを満たすならば, あるサイズO\left(\frac{\log(1/\delta)}{\epsilon^2} \cdot s\right)の回路C'が存在して, \Pr_{x\sim\{0,1\}^n}[C'(x)=f(x)]\geq 1-\delta.

関数f\colon \{0,1\}^n\to\{0,1\}\delta-困難であるならば, 一様ランダムなx\sim \{0,1\}^nに対して確率変数f(s)は1ビットのベルヌーイ試行\mathrm{Ber}(\delta)と区別がつかないということを意味します. ここでベルヌーイ試行\mathrm{Ber}(\theta)とは確率\theta1, 確率1-\theta0を出力する確率変数です. 従って, ハードコア補題は, 直感的には,

f\delta-困難ならば, サイズ|H|\geq \deltaを満たすある入力集合H\subseteq \{0,1\}^nが存在して, 一様ランダムなx\sim Hに対してf(x)は1ビットの一様分布\mathrm{Ber}(1/2)と(計算論的に)区別がつかない

ということを主張しています. では, 定理1を証明しましょう. まずはアウトラインを述べます. 独立にx_1,\dots,x_k\sim\{0,1\}^nをランダムにとってf^{\oplus k}(x_1,\dots,x_k)を考えてみましょう. まず, x_1,\dots,x_kのうち少なくとも一つがHに入っている確率は下から1-(1-\delta)^k\approx 1-\mathrm{e}^{-\delta k}\approx 1-\epsilonで抑えられます. 非常に高確率で発生するこの事象で条件つけ, 例えばx_i\in Hであるとします. このとき, x_iの分布はH上で一様ランダムです. したがってf(x_i)\mathrm{Ber}(1/2)と区別がつきません. ここで確率変数f(x_1),\dots,f(x_k)x_1,\dots,x_kが独立なのでこれらもまた独立であり, f(x_i)\mathrm{Ber}(1/2)と区別できないので, XORをとったf^{\oplus k}(x_1,\dots,x_k)もまた\mathrm{Ber}(1/2)と区別できないです (一様ランダムなビットと他のビットのXORをとったらそれもまた一様ランダムなビットになる). すなわち, f^{\oplus k}(x_1,\dots,x_k)\mathrm{Ber}(1/2)と区別できず, これはf^{\oplus k}(x_1,\dots,x_k)(1/2-\epsilon)-困難であることを意味します (事象の発生確率が1-\epsilonなので\epsilon程度のロスが発生している).

以上の流れを対偶を使って証明します. 以下, 二つの確率変数X,Yに対し, X\not\approx_c YXYをcomputationalに識別できる (i.e., ある小さい回路Cが存在して|\Pr[C(X)=1]-\Pr[C(Y)=1]|がnon-negligibleに大きい) ことを表すとします. また, X\approx_s Yによって, XYはstatisticalの意味で近い (つまりtotal variation distanceが小さい)ことを表すとします. 最後に, U_kによって一様ランダムなkビットの文字列を表すとします. 例えば(U_{nk},f^{\oplus k}(U_{nk}))と書いた場合は, x\sim U_{nk}を一様ランダムにサンプリングしてx=(x_1,\dots,x_k)k分割して(x,f^{\oplus k}(x_1,\dots,x_k))の分布のことを表すものとします (なので分布のランダムネスはxの選び方のみです).
  1. f^{\oplus k}(x_1,\dots,x_k)を成功確率(1/2+\epsilon)で計算するサイズsの回路が存在するので, (U_{nk},f^{\oplus k}(U_{nk}))\not\approx_c (U_{nk},U_1).
  2. ランダム関数f_H(x)を, x\in Hならばf_H(x)=U_1, x\not\in Hならばf_H(x)=f(x)と定義する. 情報論的なバウンドによって, (U_{nk},f_H^{\oplus k}(U_{nk}))\approx_s (U_{nk},U_1).
  3. 1と2の議論によって, (U_{nk},f_H^{\oplus k}(U_{nk}))\approx_s U_{nk+1}\not \approx_c (U_{nk},f^{\oplus k}(U_{nk}))が得られる. 特に, (U_{nk},f_H^{\oplus k}(U_{nk}))\not\approx_c (U_{nk},f^{\oplus k}(U_{nk})).
  4. (U_{nk},f^k(U_{nk})) \not\approx_c (U_{nk},f^k_H(U_{nk}))を得る (k-wise XORを識別できるので). ここで, f^k(x_1,\dots,x_k)=(f(x_1),\dots,f(x_k))と定義していて, (U_{nk},f^k(U_{nk}))とは(x_1,\dots,x_k)\sim U_{nk}に対して(x_1,\dots,x_k,f(x_1),\dots,f(x_k))によって与えられるものです.
  5. ハイブリッド議論(hybrid argument)によって(x,f(x))\not\approx_c (x,f_H(x))となる (ただし分布のランダムネスはx\sim U_n).
  6. Hが密(i.e., |H|\geq \delta 2^n)であることを使うと, H上一様ランダムなx\sim Hに対して(x,f(x))\not\approx_c (x,f_H(x))=(x,U_1)が示せる.
  7. Yao's next-bit predictorより, x\sim Hに対してf(x)を成功確率1/2+\epsilonで計算できる.
  8. ハードコア補題より\{0,1\}^n上でfを成功確率1-\deltaで計算できる. これは元のfの条件に矛盾する.

それでは, 定理1の証明をします. 以下の議論では上記のステップ1〜8を補足しつつフォーマルに確認していくだけなので, 上記のアイデアで満足な人は読まなくても構いません.

関数fをサイズsに対して\delta-困難な関数とし, H\subseteq\{0,1\}^nをハードコア集合とします. 回路Dのサイズを\mathrm{size}(D)と表すことにします.

ステップ1. f^{\oplus k}(U_{nk})を成功確率1/2+\epsilonで計算する回路をCとします. 与えられた(x,b)\in \{0,1\}^{nk+1}に対してC(x)\oplus b \oplus 1を出力する回路をC_1とすると,
\begin{align*} &\Pr_{x\sim U_{nk}}[C_1(x,f^{\oplus k}(x))=1] = \Pr_x[C(x)=f^{\oplus k}(x)] \geq \frac{1}{2}+\epsilon \\ &\Pr_{x\sim U_{nk},b\sim U_1}[C_1(x,b)=1] = \frac{1}{2} \end{align*}
より, 二つの分布(U_{nk},f^{\oplus k}(U_{nk}))(U_{nk},U_1)\epsilonのアドバンテージで識別できます. C_1のサイズは, \mathrm{size}(C_1) = \mathrm{size}(C)+O(1)を満たします.

ステップ2. 関数f_H\colon\{0,1\}^n\to\{0,1\}
\begin{align*}f_H(x) = \begin{cases}U_1 & \text{ if }x\in H,\\f(x) & \text{otherwise}\end{cases}\end{align*}
とします. ここでU_1は各x\in Hごとにランダムに生成されるランダムビットです. 厳密には\mathcal{F}_Hを, 任意のx\not\in Hに対してg(x)=f(x)を満たす関数gの集合, すなわち
\begin{align*} \mathcal{F}_H = \{g\colon \forall x\not\in H, g(x)=f(x)\} \end{align*}
と定義したときにf_H\mathcal{F}_Hから一様ランダムに選ばれたランダム関数として定義されます. 独立にk個の入力x_1,\dots,x_k\sim U_nk個のランダム関数f_Hをサンプリングして, f_H(x_i)のXORをとったときの値f_H^{\oplus k}(x_1,\dots,x_k)の分布を考えましょう (ランダムネスはx_if_Hの選び方についてとる). どれか一つのiでもf_H(x_i)=U_1であったならば, そのXORの値もまたU_1となります. 従って, 統計距離は\prod_{i=1}^k \Pr[x_i\not\in H] \leq (1-\delta)^kとなり (ここで|H|\geq\delta\cdot 2^nを使っている), 適当なk=O(\log(1/\epsilon)/\delta)に対して統計距離は高々0.1\epsilonとなります.

ステップ3. 統計距離の性質から, ステップ1で構成された回路C_1は二つの分布(U_{nk},f^{\oplus k}(U_{nk}))(U_{nk},U_1)をアドバンテージ0.9\epsilonで識別します.

ステップ4. 二つの分布(U_{nk}, f^k(U_{nk}))(U_{nk},f_H^k(U_{nk}))を識別する回路C_2を以下のように構成します: 入力(x_1,\dots,x_k,b_1,\dots,b_k)に対し, C_1(x_1,\dots,x_k,b_1\oplus\dots\oplus b_k)を出力する. この回路C_2は, C_1の識別性により確かに二つの分布(U_{nk}, f^k(U_{nk}))(U_{nk},f_H^k(U_{nk}))をアドバンテージ0.9\epsilonで識別します. 回路C_2のサイズは高々\mathrm{size}(C_1)+O(k)です.

ステップ5. ステップ4で構成された回路C_2は二つの分布
\begin{align*} &D_0 := (x_1,\dots,x_k,f(x_1),\dots,f(x_k)),\\ &D_k := (x_1,\dots,x_k,f_H(x_1),\dots,f_H(x_k)) \end{align*}
をアドバンテージ0.9\epsilonで識別します. これら二つの分布を滑らかに補間するような分布列D_1,\dots,D_{k-1}
\begin{align*} D_i := (x_1,\dots,x_k,f(x_1),\dots,f(x_{i-1}),f_H(x_i),\dots,f_H(x_k)) \end{align*}
とします(これをハイブリッド分布とよぶ). i=0,kの場合でもそれぞれD_0,D_kになっていることが分かります. p_i = \Pr[C_2(D_i)=1]とすると, p_0 - p_k = \sum_{i\in[k]}(p_{i-1} - p_{i}) \geq 0.9\epsilonなので, あるi\in[k]が存在してp_{i-1} - p_i \geq 0.9\epsilon/kを満たします. 
さらに, あるz_1,\dots,z_{i-1},z_{i+1},\dots,z_k \in \{0,1\}^{n}およびc_1,\dots,c_{i-1},c_{i+1},\dots,c_k\in \{0,1\}が存在して,
\begin{align*} \Pr_{x\sim U_n}[C_2(\mathbf{v}(i,x,f(x))=1] - \Pr_{x\sim U_n}[C_2(\mathbf{v}(i,x,f_H(x))]\geq \frac{0.9\epsilon}{k} \end{align*}
が成り立ちます. ここで, \mathbf{v}(i,x,b)
\begin{align*} \mathbf{v}(i,x,b) = (z_1,\dots,z_{i-1},x,z_{i+1},\dots,z_k,c_1,\dots,c_{i-1},b,c_{i+1},\dots,c_k) \end{align*}
で定義される文字列である (インデックスiと各z_jc_jは入力xに依存しない値なので, これらの情報を回路にあらかじめ組み込むことによって, 与えられたx,bに対し\mathbf{v}(i,x,b)はサイズO(kn)の回路で計算できる). 従って, 関数(x,b)\mapsto C'(\mathbf{v}(i,x,b))はサイズs+O(nk)程度で計算でき, さらに上記の式より二つの分布(x,f(x))(x,f_H(x))をアドバンテージ0.9\epsilon/kで識別する. この回路をC_3とします.

ステップ6. 全てのx\not\in Hに対して定義よりf(x) = f_H(x)となるので, (U_n,f(U_n))(U_n,f_H(U_n))が区別できるということは, ステップ5の回路C_3を使ってx\sim Hに対して(x,f(x))(x,f_H(x))が区別できるということになります. 実際,
\begin{align*} \frac{0.9\epsilon}{k} &\leq \Pr[C_3(U_n,f(U_n))=1] - \Pr[C_3(U_n,f_H(U_n))=1] \\ &= 2^{-n}\sum_{x\in\{0,1\}^n} (C_3(x,f(x)) - \mathbb{E}_{f_H}[C_3(x,f_H(x))]) \\ &= 2^{-n}\sum_{x\in H}(C_3(x,f(x)) - \mathbb{E}[C_3(x,U_1)]) & & \text{since $f_H(x)=U_1$ for $x\in H$} \\ &\leq \frac{1}{|H|}\sum_{x\in H}(C_3(x,f(x)) - \mathbb{E}[C_3(x,U_1)]) & & \text{since $f_H(x)=U_1$ for $x\in H$} \\ &= \Pr_{x\sim H}[C_3(x,f(x))=1] - \Pr_{x\sim H,U_1}[C_3(x,U_1)=1] \end{align*}
なのでC_3は, x\sim Hに対して(x,f(x))(x,U_1)を識別します.

ステップ7. 以前の記事で紹介した計算量的な識別不可能性の概念を思い起こします. この概念は関数の困難性と等価であることがYao's next-bit predictorからわかります.

定義1.
\{0,1\}^n上の二つの確率変数X,Yは, あるサイズsの回路Cが存在して
\begin{align*} \Pr[C(X)=1]-\Pr[C(Y)=1]\geq \epsilon \end{align*}
を満たすとき, サイズs\epsilon-識別可能であるといい, Cを識別回路という. 逆に, そのような回路Cが存在しない場合はサイズs\epsilon-識別不可能であるという.

補題2 (Yao's next-bit predictor; 以前の記事の定理の対偶の言い換え).
関数f\colon \{0,1\}^n\to\{0,1\}に対し, 二つの分布(U_n,f(U_n))(U_n,U_1)がサイズs\epsilon-識別可能であるならば, サイズs+O(1)のある回路Cが存在して
\begin{align*} \Pr_{x\sim U_n}[C(x) = f(x)] \geq \frac{1}{2} + \epsilon. \end{align*}

上記の補題において, U_nH上の一様分布に置き換えることによって以下の補題を得ます.

補題3.
関数f\colon \{0,1\}^n\to\{0,1\}と任意の集合H\subseteq\{0,1\}^nを考える. x\sim Hに対して二つの分布(x,f(x))(x,U_1)がサイズs\epsilon-識別可能であるならば, サイズs+O(1)のある回路Cが存在して
\begin{align*} \Pr_{x\sim H}[C(x) = f(x)] \geq \frac{1}{2} + \epsilon. \end{align*}

補題3の証明は省略しますが, \ell = \lceil \log_2 |H|\rceilに対して, H上の一様分布をU_\ellとみなすことができることから分かると思います.

ステップ6までの議論より補題3の仮定を満たす回路が存在するので, あるサイズ\mathrm{size}(C_3)+O(1) = s+O(nk)の回路C_4が存在して
\begin{align*} \Pr_{x\sim H}[C_4(x) = f(x)] \geq \frac{1}{2} + \frac{0.9\epsilon}{k} \end{align*}
が成り立ちます.

ステップ8. ハードコア補題(補題1)の対偶を適用する. 任意の|H|\geq \delta 2^nを満たすHに対してある回路C_4が存在してp_{C_4,f,H}\geq \frac{1}{2} + \frac{0.9\epsilon}{k}となるので, 補題1'より, fを成功確率1-\deltaで計算する回路C_5であって, サイズ
\mathrm{size}(C_5) = O\left(\frac{\log(1/\delta)}{(\epsilon/k)^2}(s+kn)\right)
となるものが存在する. これは定理1のfの困難性の仮定に矛盾します.

0 件のコメント:

コメントを投稿

講義資料をNotionで書いてみた

 プログラミング応用という名前の講義を受け持っており, そこで組合せ最適化のベーシックな話題とそのPythonでの実装を教えているのですが, 資料をNotionで書いてみました. 講義資料をNotionで公開しているのでアルゴリズムの基礎とかNP困難性とかを勉強したい人はどう...