0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EAGLYSAdvent Calendar 2024

Day 17

準同型暗号ライブラリphantom-fheとSEALを比較してみた

Last updated at Posted at 2024-12-27

0. はじめに

本記事では2つの準同型暗号ライブラリ

  • phantom-fhe
  • SEAL

これらのベンチマークを自作・実行してライブラリの比較をしていきたいと思います。使用するスキームはCKKSです。

1. 環境

今回実験する環境は以下の通りです。

なお、ライブラリは2024年10月時点のものを使用しています。

OS Ubuntu 22.04.4 LTS
CPU Intel(R) Core(TM) i5-9500 CPU @ 3.00GHz
GPU NVIDIA GeForce RTX 3090 Ti
RAM 32GB
コンパイラ g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
nvcc(Cuda compilation tools, release 12.4, V12.4.131)

CKKSを使用するにあたって設定したパラメータは以下の通りです。

poly_modulus_degree 8192 ($2^{13}$)
scale $2^{40}$
coeff_modulus {60, 40, 60}

2. 実行時間の比較

では本題の比較として、実行時間を見てみましょう。

operation SEAL [μs] phantom-fhe [μs]
encryption
w/secret key
1051.7 241.3
encryption
w/public key
2596 221.5
decryption 107.1 5.1
addition 25.8 3.2
multiplication 211.0 7.1
relinearization 1304.8 39.4
rescale 364.1 21.6
rotation 1335.7 48.9

SEALも十分早いですがGPUを使って計算しているというのもあり、phantom-fheの方が圧倒的に早いという結果になりました。

3. 計算精度の比較

実行時間ではphantom-fheの方が優れていました。では、計算精度はどうでしょうか?確認してみましょう。

CKKSの入力値は複素数となっているので、どのようにして精度を求めるかを考える必要があります。実部や虚部それぞれで比較してもいいですが、今回は絶対値の相対誤差を用いて比較しました。

operation SEAL phantom-fhe
encode $10^{-13}$ $10^{-6}$
encryption $10^{-11}$ $10^{-4}$
addition $10^{-13}$ $10^{-5}$
multiplication $10^{-10}$ $10^{-4}$
relinearization $10^{-10}$ $10^{-4}$
rescale $10^{-9}$ $10^{-4}$

これを見るとSEALに比べてphantom-fheは精度がかなり低くなってしまうようです。

精度から見て単精度の浮動小数点数を使っているのかと思いましたが、そういうわけではなさそうでした。encodeの時点で精度が低いので、原因はおそらくencodeでしょう。

CKKSのencodeでは高速フーリエ変換(FFT)を用います。FFTで用いる値(1のn乗根)は複素数のため、2進数で計算するコンピュータではどうしても精度は低下してしまいます。
phantom-fheではFFT、SEALではFFTの代わりに数論変換(NTT)を使っているようなのでその点の違いも考えられそうです。

4. まとめ

今回は準同型暗号ライブラリのSEALとphantom-fheのベンチマークを作成し、比較してみました。

その結果、実行時間の点ではphantom-fhe、計算精度の点ではSEALの方が優れていることが分かりました。

phantom-fheの計算精度が低い原因については今後も調べていくので何か分かったら報告します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?