Skip to main content
QUICK REVIEW

[論文レビュー] A General Purpose Transpiler for Fully Homomorphic Encryption

Shruthi Gorantala, Rob Springer|arXiv (Cornell University)|Jun 15, 2021
Cryptography and Data Security参考文献 22被引用数 13
ひとこと要約

本論文では、TFHEライブラリおよびGoogleのXLS中間表現を用いて、高レベルのC++コードを同等の完全準同型暗号(FHE)互換コードに自動的に変換する汎用的トランスパイラーを提示する。このトランスパイラーは暗号の専門知識が不要なまま、暗号化されたデータ上で安全に計算を実行可能であり、さまざまなFHE方式やプログラミング言語に対応するモジュラーでデバッグ可能かつ拡張可能なFHEコード生成を実現する。

ABSTRACT

Fully homomorphic encryption (FHE) is an encryption scheme which enables computation on encrypted data without revealing the underlying data. While there have been many advances in the field of FHE, developing programs using FHE still requires expertise in cryptography. In this white paper, we present a fully homomorphic encryption transpiler that allows developers to convert high-level code (e.g., C++) that works on unencrypted data into high-level code that operates on encrypted data. Thus, our transpiler makes transformations possible on encrypted data. Our transpiler builds on Google's open-source XLS SDK (https://github.com/google/xls) and uses an off-the-shelf FHE library, TFHE (https://tfhe.github.io/tfhe/), to perform low-level FHE operations. The transpiler design is modular, which means the underlying FHE library as well as the high-level input and output languages can vary. This modularity will help accelerate FHE research by providing an easy way to compare arbitrary programs in different FHE schemes side-by-side. We hope this lays the groundwork for eventual easy adoption of FHE by software developers. As a proof-of-concept, we are releasing an experimental transpiler (https://github.com/google/fully-homomorphic-encryption/tree/main/transpiler) as open-source software.

研究の動機と目的

  • 暗号の専門知識のない開発者が暗号化データ上で動作するプログラムを書けるようにすることで、FHEの採用障壁を低減すること。
  • 高レベル言語の入力を基盤となるFHEライブラリや方式から分離するモジュラーで拡張可能なフレームワークを提供すること。
  • 高レベルで人間が読みやすいFHE-C++出力を生成することで、FHEプログラムのデバッグと最適化を可能にすること。
  • 同じ高レベルプログラムを用いて異なるFHE方式や最適化手法を並列比較可能にすることで、FHE研究を加速すること。
  • 再利用可能でオープンソースのトランスパイレーションパイプラインを通じて、高レベルプログラミングと低レベルFHE操作のギャップを埋めること。

提案手法

  • トランスパイラーは、GoogleのXLS SDKを用いて、ソース言語やFHEバックエンドに依存しない表現力豊かな中間表現(IR)を生成する。
  • 高レベルC++演算(例:SUM、MUL、DIV)を低レベルのブールゲートに変換し、翻訳レイヤーを通じてTFHEネイティブ演算にマッピングする。
  • 構造体やクラスなどの複雑なデータ型を、自動的に対応するFHEデータ符号化を生成することでサポートする。
  • 変換出力はTFHEライブラリでコンパイル・実行可能なFHE-C++コードであり、エンドツーエンドの同型計算を可能にする。
  • モジュラーな設計により、コアパイプラインを再実装せずに、代替のFHEライブラリや高レベル言語を統合可能である。
  • FHE IR用のランタイムインタプリタを含み、マルチコアディスpatchを含む柔軟な実行戦略を可能にする。

実験結果

リサーチクエスチョン

  • RQ1FHEの専門知識がなくても、高レベルC++プログラムを安全で機能するFHEコードに自動的に変換できる汎用的トランスパイラーは実現可能か?
  • RQ2XLSのような中間表現は、多様なFHE方式と高レベルプログラミング言語の間で相互運用性をどのように実現できるか?
  • RQ3変換されたFHEコードは、特に算術演算や制御構文に対してどれほどパフォーマンス最適化できるか?
  • RQ4クラスや構造体のような複雑なデータ構造を、同型評価下でも正しく保つことができるか?
  • RQ5モジュラー設計は、新しいFHE方式や最適化技術の比較的評価をどのように促進するか?

主な発見

  • トランスパイラーは、TFHEとXLSを用いて、任意のC++プログラムを同等のFHE-C++コードに変換し、暗号化データ上でエンドツーエンドの同型実行を実現した。
  • XLSを中間表現として使用することで、言語や方式に依存しないコンパイルが可能となり、モジュラリティと拡張性が向上した。
  • 変換コードは、単なる低レベルブールゲートだけでなく、加算、乗算、除算といった高レベル演算もサポートしており、使いやすさとパフォーマンスの両方が向上した。
  • デバッグ可能で人間が読みやすいFHE-C++出力を生成することができ、以前のツールが低レベル回路表現しか出力しなかったのと比べて顕著な改善であった。
  • 同じ高レベルプログラムを用いて、異なるFHE方式や最適化手法を直接比較可能にした。これにより、研究と評価が加速した。
  • トランスパイラーは、将来の最適化(例:プログラマブルブートストラップ、ネイティブ算術、SIMDスタイルのバッチ処理)の基盤を築いた。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。