Googleは、汎用トランスパイラーをオープンソース化した。これは、ハイレベルコードを変換でき、完全準同型暗号(FHE)に使用できる。
FHEは、IBMやMicrosoftを含むいくつかの企業から大きな関心を集めている。一方で、Googleは新しいアプローチを試みている。それは、高級言語で記述されたプログラムを変換するトランスパイラーを作成し、暗号化されていないデータをFHEに使用できるバージョンに変換するものである。
Googleのトランスパイラーを使うと、開発者は単純な文字列処理や数値演算など、あらゆる種類の基本的な計算用のコードを記述し、暗号化されたデータに対してその処理を実行できます。
Googleのトランスパイラーには2つの主要なコンポーネントがある。また、そのトランスパイラーでは、GoogleのオープンソースXLS SDKが使われている。そのコンパイルパイプラインを活用して、FHEの要求に応じて、高級言語の操作を低レベルのブール演算に変換する。
XLSは、高位合成(HLS)ツールチェーンを実装しています。これは、柔軟で高レベルな機能の記述から合成可能なデザインを生成するものです。これは完全にオープンソースです。Apache 2ライセンスの下、GitHubで開発されています。XLSはGoogle社内で使用されており、「ビルディングブロック」ルーチン/ライブラリからフィードフォワードパイプラインを生成します。このパイプラインは、簡単に再ターゲット、再利用、および遅延の影響を受けない方法で構成できます。
また、このトランスパイラーはGoogleのTFHE完全準同型暗号化ライブラリを使って、XLSによって提供される中間表現からHFE計算に移行する。
TFHEは、非常に高速なゲートごとのブートストラップを実装するC/C++ライブラリです[...]。このライブラリを使うと、データに関する情報を公開することなく、暗号化されたデータに対して、バイナリゲートで構成されるあらゆるブール回路を評価できます。
Googleによると、このモジュラー設計には多くの利点がある。まず、XLSによって、さまざまな高級言語が、追加の設定なくサポートされる。現在、XLSはRustを模倣したDSLであるC++とDSLXをサポートしている。同様に、FHEに利用できるコードの出力は、APIの一部として論理ゲートを公開するFHEライブラリを備えた任意の言語にすることができる。
XLSがすべてのC++機能を完全にサポートしているわけではないことに注意する必要がある。特に、可変長配列、可変終了条件のwhileループとforループ、および浮動小数点データはサポートされていない。さらに、XLSとTFHEはどちらもまだ実験段階にあり、大幅に変更される可能性がある。
準同型暗号は、安全に計算するためのアプローチである。データを処理するためにデータを復号化する必要がない。その代わりに、準同型暗号化によって暗号文の処理が実現される。これによって、暗号化された結果が、最初に入力データを復号化し、処理し、最後に暗号化することによって生成される結果と一致することが保証される。その応用として、FHEは機密データの機械学習モデルをトレーニングするために使用できるとGoogleは言っている。