用いて、暗号文上で和や積の演算を行なったりできますが、準同型暗号が苦手としている演算の1つが比較演算です。暗号文が簡単に比較できてしまえば、挟み込みなどによって値の特定ができてしまうのでこれは当たり前といえば当たり前です。実際のアプリケーションでは、決定木であったりNNのRelu関数であったりと比較演算をしなければならない状況が往々にして存在します。この時に準同型暗号を用いて比較演算をする方法が存在します。今回はそれについて少しまとめたいと思います。準同型暗号を用いた比較演算を行う時に、制約となってくるのが通信です。具体的には、暗号文を取り扱う計算サーバが直接比較演算を行うことはできないものの、計算サーバが比較演算に必要な計算を行い、その結果を一度ユーザに返して、ユーザが最終的に比較の判断を(暗に)行います。準同型暗号を用いると、比較はめんどくさいけどまあできなくもない。入力をビット表記に直して、ビット演算をすることで比較を行うビットには直さずに頑張るこの2つが紹介されています。今回は、格子暗号ではないですが、加法性を持つ準同型暗号のPaillier暗号を用いて、上のビット演算を用いた暗号文の比較演算を行ったコードを紹介します。格納されているので、興味がある人がいましたらご覧ください。レポートにまとめられていますので、ぜひご覧ください。comparisonで紹介されているようですが、まだよく追えていません。実用上速度がかなり遅いので問題があるようです。まとめ比較演算を準同型暗号を用いて行うことは現状色々制約があり、お世辞にも準同型暗号が比較演算を得意にしている、とは言えません。比較演算においては、MPCでのガーブレッド回路などを使っているアプリケーションが多いです(つまり、比較などが挟まる時はMPCでの秘密計算に切り替える、ハイブリッド方式)。準同型暗号でも比較を工夫して行うやり方が存在するため、これらがより研究され、高速化が実現することで、準同型暗号をもちいて比較演算も含んだ計算をやりきることができれば、より準同型暗号ライブラリの実世界へのアプリケーションが現実的なものになるでしょう。