Private Set Intersection Protocolに関する研究
昨今はクラウド時代とも言われるように、種々のパーソナルデータ集合に対し機械学習的に分析を行うことが一般的となってきている。分析に耐えうるパーソナルデータ集合を一企業のみで準備することはしばしば困難であるため、幾つかの企業のデータを組み合わせて詳細なパーソナルデータ集合を作成することが期待される。しかし、パーソナルデータは個人情報であるため、プライバシーを守りながら取り扱う必要があり、通常の通信方式でそのような動作を行うことはできない。そこでこの問題を解決するため考案されたプロトコルがPSIである。 Private Set Intersection Protocolでは二つ以上の秘密集合に演算を行い、結果を出力するが、その過程で自分の持つ秘密集合の各要素を相手に伝える必要がある。原始的な方法としては秘密集合の各要素をそれぞれ暗号化して送信する方法がある[3]が、この方式だと演算の処理が煩雑になるため、秘密集合を演算の行いやすい他のデータ表現に直すことが考えられる。その方式の一つがBloom Filterである[1]。初期値が0である配列を一つ用意し、いくつかのハッシュ関数に秘密集合の各要素を通し、出力に対応する配列の要素を1とすることで全要素の情報を最初の配列に格納する。この方式は通信量も少なく、またComparable Bloom Filter等の拡張方式を利用することで和集合に一定回数以上出現する要素の集合(Reduction)の導出などの複雑な演算にも対応できる[1]。しかし、秘密集合に同じ要素が複数回入っているときにその情報を保持できない。 秘密集合の各要素を解とする多項式を用いる多項式表現という方式もあり、Bloom Filterと同様に積集合のみならず積集合の要素数やReductionの導出が可能である。しかし暗号化し送信する対象が多項式の係数であり、有限体上の値となるためBloom Filterに比べ通信量が大きくなる[2]。 このようにPSIには様々な方式があるが、いずれも一長一短である。そのため統一された手法の存在が期待され、各手法の詳細な研究はPSIの開発において非常に重要な意味を持つ。 PSIはそれぞれのプレーヤーが所持する秘密集合を入力とし積集合を出力するが、その際に積集合以外の一切の情報を各プレーヤーは得ることが出来ない。そのため、PSIをパーソナルデータ集合同士の通信に利用しても、パーソナルデータのプライバシーが侵害されることはない。かつてPSIは積集合の導出しかできなかったが、現在は積集合の要素数のみを導出する等より複雑なPSIも登場している[2]。そのため、PSI研究がデータ通信において果たす役割も大きくなってきており、本研究によりPSIの高速化を実現すればよりプライバシーを考慮した安全なデータ通信に大きく貢献できると考えられる。