Oblivious Polynomial Evaluationについて解説!
Oblivious Transfer(OT)と似たプロトコルOblivious Polynomial Evaluation(OPE)について解説します。1-out-of-2 OTについて説明すると、
送信者は2個のデータを送り、受信者はその中から1つだけデータを選ぶことが出来る。
送信者は受信者がどのデータを受け取ったかの情報が得られず、受信者は選ばなかったデータの情報が得られない。
という仕組みを持ったプロトコルです。一般的にはk-out-of-N OTと言います。OPEでは
という仕組みを持っています。この記事ではこのプロトコルの実現方法について解説します。参考論文と合わせて読むとわかりやすいと思います。
OPEプロトコル
まずプロトコルの実現方法について説明します。その後、プロトコルの簡単に安全性の証明方法を述べます。
プロトコルのアイデア
まず、送信者は多項式を隠すため、二変数多項式を使って一変数多項式を間接的に評価するという手法を取ります。は以下の条件を満たさなければなりません。
のの次数との次数は同じ。これをと表す。
のの次数をと表す。
任意のについて、。
次に、受信者は自分の入力を隠すため一変数多項式を使います。は以下の条件を満たさなければなりません。 - である。
- 次数はである。
さらににとする。である。この送信者はこのを評価することで、を得ます。
つまり、空間にあるy切片を隠蔽できます。Sはを直接いれるのでなく、としてを隠すためにある多項式です。
プロトコル
このプロトコルの入出力は以下から成ります。
アリスの入力:体上で次元の多項式
ボブの入力:体の要素
出力(ボブの出力):
セキュリティパラメータ: (はの整数倍)
多項式の次数は定義より、のように計算できます。 実際にプロトコルの処理の流れを示します。まず、1から3の処理をの間繰り返し、最後に4を行います。
1: ボブは個の0でない点を選ぶ。
2: ボブはからランダムに個の値を選び、長さmの配列を作る。配列をシャッフルしてとし、とともにアリスに送る。
3: アリスはランダムな二変数多項式を選択する。以下から1つ選択するような1-out-of-m OTを1回行う。ボブはを選んで情報を得る。であることに注意。(疑問ーここでなぜ、S(x _ j)をボブは選べるのか)
4: ボブは個の点からを補間し、を計算する。
OPEの安全性
送信者の安全性
送信者はランダムな二変数多項式の中にを隠します。受信者はの個の値を使ってを補間でき、n個の方程式を得られます。定理3により、このうちボブが多項式の値のうちのみを学習できることが分かるので、が漏洩することはありません。
定理3
0でないような個のを集めることで、をのtex:2k+1個の値を得られる。つまり、以下を満たす。
の係数から一つ以上の線形関係(例えば、)は求まらない。つまり、多項式を得られない。
の個の値を使って、と同じ次数のを求められる。は方程式を満たす。
一つ目の条件で安全性を保証し、二つ目の条件でが得られることを保証していることなります。(ちょっとここ微妙なのでしっかりと理解している人いたら教えてください..)
受信者の安全性
受信者の安全性について説明する。ここで以下の仮定を利用する。
psuedorandomness assumption
入力における多項式時間アルゴリズムDが任意のについて、がランダム選択されたことを判定するのと、がランダムに選択されたことを判定できる確率の差は、における任意の多項式より小さい。
これはほぼ元論文のまま書いた形だが、ここの とは
- ボブはからランダムに個の値を選び、長さmの配列を作る。配列をシャッフルしてとし、とともにアリスに送る。
とのことです。(なぜなのかは参考文献の論文を参照してください) psuedorandomness assumptionを利用することで以下の二つは見分けがつかないことが分かります。つまり、受信者側にとってはランダムな並びにしか見えないのでが漏洩しないことを意味します。
まとめ
Oblivious Polynomial Evaluationの実現方法例と、その安全性について解説しました。OTを応用した面白い技術だと思います!ちなみにこの論文ではk-out-of-n OTについても 説明されています。読んでみると面白いかもしれません。
間違いありましたらコメントに書いていただけると大変助かります..