秘匿共通集合計算プロトコル
二人の参加者サーバとクライアントがいるものとする。彼らは、それぞれ秘密の情報である集合 S {\displaystyle S} と C {\displaystyle C} を保持しており、お互いにそれらを漏らすことなく、 C ∩ S {\displaystyle C\cap S} のみを 計算したい。 この方式を実現するために有用となるのは、集合を多項式で表現すること、そして、準同型暗号を利用することである。 ここで利用する準同型暗号には、 E n c ( m 1 ) {\displaystyle {\rm {Enc}}(m_{1})} と E n c ( m 2 ) {\displaystyle {\rm {Enc}}(m_{2})} を与えられたときに、 E n c ( m 1 + m 2 ) {\displaystyle {\rm {Enc}}(m_{1}+m_{2})} を計算できる性質を有することとする。また、この性質を利用すれば、 E n c ( m 1 ) {\displaystyle {\rm {Enc}}(m_{1})} と k {\displaystyle k} から、 E n c ( k m 1 ) {\displaystyle {\rm {Enc}}(km_{1})} を計算できることにも注意する。