1 プロトコルと量化
入力xと、それまでに交換したメッセージ列を記録という。prover の戦略Pは、入力と記録から次のメッセージを選ぶ関数である。Pの計算時間には制限を課さない。verifierVは、入力、記録、および
verifier 自身の乱数テープから次のメッセージまたは受理・拒否を計算する確率的 TM である。
ここで確率的 TM とは、決定性 TM に読取り専用の一方向乱数テープを加えた機械である(§E18.14 定義 1.1)。乱数テープの各マスには互いに独立で公平なビットが置かれ、機械はビットを一つ読むたびに乱数ヘッドを右へ一マス進める。入力と乱数列を固定すると、一つの prover 戦略に対する対話の計算は決定的になる。定義 1.1 条件 (a)により対話全体はp(∣x∣)段以内に終わるため、verifier が読む乱数は高々p(∣x∣)ビットである。したがって、対話の結果に関する事象の確率は、長さp(∣x∣)のビット列全体のうち、その事象を満たすものの割合として定める。
定義 1.1. 言語L⊆Σ∗に対する対話型証明系の verifier (interactive-proof verifier) は、確率的 verifierVであって、ある多項式pが存在して次を満たすものである。確率は verifier の乱数rだけに関して取る。
- Vは全ての入力x、全ての乱数列、および全ての prover 戦略に対し、全対話をp(∣x∣)段以内に終える。したがって、ラウンド数とVが読み書きする通信量もp(∣x∣)以下である。
- 完全性 (completeness) として
ある P が存在し、全ての x∈L についてrPr[⟨P,V⟩(x;r) が受理する]≥32
が成り立つ。
- 健全性 (soundness) として
全ての P∗ と全ての x∈/L についてrPr[⟨P∗,V⟩(x;r) が受理する]≤31
が成り立つ。
完全性のPを正直な prover (honest prover)、健全性で量化するP∗を不正な prover (cheating prover) と呼ぶ。
完全性のPは verifier の定義に固定された成分ではなく、完全性条件の内側で存在量化される。
prover が内部乱数を使う場合でも、健全性では決定性の戦略だけを調べれば十分である。実際、prover の内部乱数を固定するごとに決定性の戦略が一つ定まり、乱択 prover の受理確率はそれらの受理確率の加重平均である。全ての決定性の戦略の受理確率が1/3以下なら、その加重平均も1/3以下である。
定義 1.2. verifier の乱数テープの内容が prover から隠され、verifier が乱数から計算したメッセージだけが
prover に渡される対話を非公開コイン型(private-coin)プロトコル (private-coin protocol) という。
verifier が各ラウンドで送るメッセージが、新しく生成した公平な乱数ビット列そのものであり、送信した乱数を prover も全て知る対話を公開コイン型(public-coin)プロトコル (public-coin protocol) という。verifier は最後の判定で、公開した乱数、入力、および全記録を使用することができる。
公開コイン型であるためには、乱数から計算した像だけを送るのではなく、判定に用いる乱数自体を公開する必要がある。乱数を隠すことが健全性の根拠になるプロトコルは、そのままでは公開コイン型プロトコルではない。
2 グラフ非同型の非公開コイン型プロトコル
有限単純無向グラフGの頂点集合を[n]={1,…,n}とする。置換π∈Snによって頂点名を付け替えたグラフをπ(G)と書く。二つのグラフG0,G1が同型であるとは、あるπ∈Snについてπ(G0)=G1となることをいう。
定義 2.1 (グラフ非同型言語).
GNI={⟨G0,G1⟩:G0 と G1 は同型でない}と定める。この言語を グラフ非同型言語 (graph nonisomorphism language) という。頂点数が異なる二グラフは同型でない。不正なグラフ符号は言語に含めない。
厳密な一様置換を、有限個の公平な乱数ビットだけで最悪時多項式時間内に生成することは一般にはできない。実際、固定長の公平なビット列から得る各出力確率は2の冪を分母にもつが、1/n!はn≥3でその形にならない。そこで、固定長のラベルから近一様な置換を作る。
証明. 異なる二頂点u,vについてPr[Au=Av]=2−mである。いずれかの衝突が起こる確率εは、頂点対に関する和集合評価により
ε≤(2n)2−m=2m+1n(n−1)=δn≤161となる。
衝突がないという条件の下では、ラベルの相対順序はSn上で一様である。実際、各σ∈Snについて、σ(1),…,σ(n)の順に増加する相異なるラベルの選び方は(n2m)個であり、σによらない。したがって、衝突時の出力分布をRとすれば
Q=(1−ε)U+εRである。よって
∥Q−U∥TV=ε∥R−U∥TV≤ε≤δnとなる。
手続きはnmビットを一度だけ読み、全ての頂点対のラベルを比較して衝突を検査し、例えば選択ソートで相対順序を求める。比較回数はO(n2)、一回の比較時間はO(m)なので、最悪時時間はO(n2m)である。m=O(log(n+1))であるため、グラフの符号長に関する多項式時間である。▨
同じ頂点数n≥2の二グラフに対し、次の一回プロトコルを考える。
- verifier はb∈{0,1}を一様に選び、π←LabelPermn,mを独立に生成する。
- verifier はH=π(Gb)を prover へ送るが、b、ラベル、およびπは送らない。
- prover はビットcを返す。
- verifier はc=bの場合に限って受理する。
頂点数が異なる場合には verifier は直ちに受理し、不正な符号は直ちに拒否する。n≤1では二つの正しいグラフは必ず同型なので、verifier は直ちに拒否する。
定理 2.3. 上の一回プロトコルは、⟨G0,G1⟩∈GNIの場合に完全性1をもち、⟨G0,G1⟩∈/GNIとなる正しいグラフ符号に対し、任意の prover の受理確率が高々
21+δn≤169である。
証明. 最初にG0とG1が非同型であるとする。送られたHはGbと同型である。HがG1−bとも同型ならば、同型写像を合成することでG0とG1が同型となり、仮定に反する。したがって、HはG0,G1のちょうど一方と同型である。計算能力に制限のない正直な prover は、全ての置換を調べてHがどちらと同型かを決定し、その添字c=bを返すことができる。したがって、verifier は全ての乱数選択で受理し、完全性は1である。
次にG0とG1が同型であるとする。G1=τ(G0)となる置換τ∈Snを固定する。b=jの条件下で送られるHの分布をPjとする。置換が一様分布Uに従う理想的な場合には、写像π↦πτがSn上の全単射であるため、b=0とb=1の送信グラフは同じ分布P∗をもつ。
置換をグラフへ写す操作は、全変動距離を増加させない。実際、写像ϕによる像分布について、
∥ϕ(P)−ϕ(Q)∥TV=21h∑ω:ϕ(ω)=h∑(P(ω)−Q(ω))≤21ω∑∣P(ω)−Q(ω)∣=∥P−Q∥TV.したがって、補題 2.2により
∥P0−P∗∥TV≤δn,∥P1−P∗∥TV≤δn.三角不等式から∥P0−P1∥TV≤2δnを得る。
決定性の prover の返答をc=f(H)と書く。bは一様なので、受理確率は
21h∑(P0(h)1{f(h)=0}+P1(h)1{f(h)=1})≤21h∑max{P0(h),P1(h)}=21(1+∥P0−P1∥TV)≤21+δn.最後から二つ目の等号はmax{a,b}=(a+b+∣a−b∣)/2を有限和へ適用した結果である。乱択 prover の受理確率も決定性の戦略の受理確率の加重平均なので、同じ上界を満たす。▨
例 2.4. 頂点集合[3]上で、G0を辺{1,2},{2,3},{1,3}をもつ三角形、G1を辺{1,2},{2,3}だけをもつ道とする。頂点名の付け替えは辺の本数を変えないため、辺数3のG0と辺数2のG1は同型でなく、⟨G0,G1⟩∈GNIである。
n=3なのでm=⌈log248⌉=6であり、verifier は選択ビットbに1ビット、三つのラベルに18ビットの乱数を読む。たとえばb=1を選び、ラベルが衝突なくA1=41、A2=13、A3=27と得られたとする。ラベルの小さい順は頂点2,3,1であるから、生成される置換はπ(2)=1、π(3)=2、π(1)=3である。verifier はH=π(G1)、すなわち辺{3,1},{1,2}をもつグラフを送る。
prover はHの辺数2を数える。同型なグラフの辺数は等しいから、Hと同型であり得るのはG1だけである。prover はc=1を返し、c=bなので verifier は受理する。b=0の場合も、送られるグラフの辺数が3になるため、同じ返答規則がc=0=bを与える。どの乱数選択でもc=bが成り立つため、この入力に対する受理確率は1であり、定理 2.3の完全性を与える。
一方、G0とG1がともに同じ三角形である入力はGNIに属さない。三角形は任意の置換で三角形のまま変わらないため、Hはbによらず同じグラフであり、bの情報を一切運ばない。返答c=f(H)はbと独立な一つのビットに定まり、bは一様であるから、どの返答規則でも受理確率はちょうど1/2である。これは定理 2.3の上界1/2+δ3の中に収まる。
一回の健全性上界9/16は定義 1.1の1/3以下という規約を満たさない。そこで、verifier は独立な二回以上の課題を同時に送り、全ての返答が正しい場合だけ受理する。
定理 2.5. 正の整数kに対し、verifier が独立に
b1,…,bk∈{0,1},π1,…,πk←LabelPermn,mを生成し、Hi=πi(Gbi)を全て送るとする。prover はc1,…,ckを返し、verifier は全てのiでci=biの場合に限って受理する。このプロトコルは、非同型グラフ対に対して完全性1をもち、同型グラフ対に対して任意の prover の受理確率が
(21+δn)k以下である。特にk=2なら完全性は1であり、健全性は
(21+δn)2≤(169)2=25681<31であるため、GNIの対話型証明系を与える。
証明.G0,G1が非同型ならば、正直な prover は各Hiがどちらのグラフと同型かを一意に決定し、ci=biを全てのiで返す。したがって、受理確率は1である。
G0,G1が同型であるとし、一回の条件付き送信分布を前定理と同じP0,P1とする。一回の最適なビット推測確率を
α=21h∑max{P0(h),P1(h)}≤21+δnと置く。各回は互いに素な乱数ビット区間を使うので、ランダムなビットベクトルをBと書き、その値をb、送信グラフの値をhとした条件付き確率は
Pr[H=h∣b]=i=1∏kPbi(hi)である。
決定性の prover の返答をc=f(h)とする。hを固定したとき、この返答が当たる項を、全ての候補bのうち最大の一項で上から抑える。全て有限和なので、積の分配法則を用いて
Pr[f(H)=B]=2−kh∑b∑1{f(h)=b}i=1∏kPbi(hi)≤h∑bmax(2−ki=1∏kPbi(hi))=i=1∏k(21hi∑bi∈{0,1}maxPbi(hi))=αk≤(21+δn)k.第3行では、積を最大にする各biを座標ごとに選ぶことができ、その後のhに関する有限和が積へ分解されることを用いた。乱択 prover の成功確率は決定性の戦略の成功確率の加重平均なので、同じ上界を満たす。
各回はちょうどnm個の乱数ビットを読み、近一様置換の生成、隣接行列の頂点名変更、および返答ビットの比較は最悪時多項式時間で終わる。固定したk=2では verifier の時間と通信量も入力長の多項式であり、上で示した健全性は1/3未満である。▨
3 非公開コイン型であることの役割
命題 3.1. グラフ非同型プロトコルで verifier がHとともにbを prover へ公開すると、同型グラフ対に対する受理確率を1にする prover が存在する。したがって、その変更後の手続きはGNIの健全な証明系ではない。
証明. prover はグラフHを調べず、公開されたbをそのままcとして返す。このとき全ての入力と全ての verifier の乱数についてc=bなので、verifier は確率1で受理する。特にG0≅G1という言語外の入力でも受理確率が1となり、健全性上界1/3に反する。▨
上のプロトコルで verifier のメッセージHは乱数(b,π)から計算した像であり、乱数そのものではない。したがって、このプロトコルは非公開コイン型プロトコルである。上の命題により示されるのは、この構成で乱数を公開するだけでは、このプロトコルを公開コイン型へ変換することができないという事実である。グラフ非同型について別の公開コイン型プロトコルが存在するかどうかについては、この命題から結論は得られない。
4 演習
問題 4.1.
- 定義 1.1 条件 (c)の「全てのP∗」を、定義 1.1 条件 (b)で存在を仮定した同じPだけに置き換えた条件を考える。任意の言語L⊆Σ∗について、この弱めた条件と定義 1.1 条件 (a)、定義 1.1 条件 (b)を満たす verifier と prover の組が存在することを示せ。
- 有限集合Ω上の確率分布P0,P1と写像f:Ω→{0,1}について、b∈{0,1}を一様に選んでhをPbに従って選ぶときf(h)=bとなる確率をsucc(f)とする。maxfsucc(f)=(1+∥P0−P1∥TV)/2であることを示し、最大値を与えるfを一つ求めよ。
- グラフ非同型プロトコルを三回独立に並列反復した場合の完全性と健全性上界を求めよ。
- 乱数を一つも読まない verifier をもつ対話型証明系を決定性対話型証明系という。言語Lが決定性対話型証明系をもつこととL∈NPが同値であることを示せ。
解答 (演習の要点).
-
verifierVを、prover から一ビットcを受け取り、c=1ならば受理し、c=0ならば拒否する機械とする。Vは乱数を読まず、定数段で停止するので定義 1.1 条件 (a)を満たす。proverPを、x∈Lならば1、x∈/Lならば0を送る戦略とする。prover の計算には制限がないので、Lが決定不能であってもこの戦略は関数として定まる。x∈Lでは受理確率が1であるから定義 1.1 条件 (b)が成り立ち、x∈/Lでは同じPとの受理確率が0であるから弱めた条件が成り立つ。よって弱めた条件はすべての言語について満たされ、言語について何も主張しない。本来の健全性では、常に1を送るP∗に対してもx∈/Lの受理確率が1/3以下でなければならず、このVはそれを満たさない。
-
定義により
succ(f)=21h∈Ω∑(P0(h)1{f(h)=0}+P1(h)1{f(h)=1})≤21h∑max{P0(h),P1(h)}
であり、定理 2.3の証明のとおりmax{a,b}=(a+b+∣a−b∣)/2を用いると右辺は(1+∥P0−P1∥TV)/2に等しい。f∗(h)=0(P0(h)≥P1(h)のとき)、f∗(h)=1(それ以外)と定めると、各hでP0(h)1{f∗(h)=0}+P1(h)1{f∗(h)=1}=max{P0(h),P1(h)}であるから、上の不等式は等号で成り立つ。よってmaxfsucc(f)=succ(f∗)=(1+∥P0−P1∥TV)/2である。とくにP0=P1ならば最大値は1/2であり、どの返答規則も推測の成功確率を1/2より大きくすることができない。
-
非同型の場合の完全性は1である。同型の場合の健全性は(1/2+δn)3≤(9/16)3=729/4096である。
-
L∈NPとし、§E18.11 定理 3.1により多項式時間検証器Wと長さ上界pを取る。verifierVは prover から語yを受け取り、∣y∣≤p(∣x∣)でなければ拒否し、そうでなければW(x,y)を模倣してその結論を出力する。乱数は読まない。x∈Lならば、Wが受理する証明書を送る prover により受理確率は1である。x∈/Lならば、どの prover が送るどのyについてもW(x,y)は拒否するので受理確率は0である。よってLは決定性対話型証明系をもつ。
逆に、Lが決定性対話型証明系Vと多項式pをもつとする。乱数を読まないので、prover の決定性の戦略を固定すると対話は一つに定まり、受理確率は0か1である。完全性により、x∈LならばあるPについて受理確率は2/3以上、すなわち1である。健全性により、x∈/LならばすべてのP∗について受理確率は1/3以下、すなわち0である。証明書を、対話で prover が送るメッセージの列(m1,…,mj)を区切り記号で連結した語とする。定義 1.1 条件 (a)により通信量はp(∣x∣)以下であるから、証明書の長さは多項式で抑えられる。検証器は、Vを模倣し、Vが prover のメッセージを待つたびに証明書の次の成分を与え、Vの結論を出力する。x∈Lならば、受理する対話の prover のメッセージの列が証明書になる。x∈/Lならば、どのメッセージの列も、それを送る prover の戦略に対応するので受理されない。検証器はp(∣x∣)段の模倣で停止するので多項式時間検証器であり、§E18.11 定理 3.1によりL∈NPである。したがって、乱数を用いない verifier では、NPに属さない言語に対話型証明系を与えることはできない。
▨