Microsoft SEALは、暗号化された数値を復号せずに加算・乗算できる、オープンソースのC++同態暗号ライブラリです。
zama-ai/tfhe-rs
暗号化データを直接使ったブール演算や整数演算を可能にする、TFHE方式の純粋なRust実装。
- スター
- 1,675
- フォーク
- 338
- 未解決の Issue
- 54
- 最終コミット
- 昨日
これは何?
TFHE-rsは、完全準同型暗号方式であるTFHEを実装した純粋なRustライブラリです。暗号文に対して計算を行い、データ所有者が復号すると、平文に同じ演算を適用した場合と一致する結果が得られます。ブール回路のほか、FheUint8やFheUint32など、一般的なビット幅の暗号化値に対する整数演算に利用できます。
Rustの高レベルAPI、C API、WASMにコンパイルされたクライアント側JavaScript APIを提供しています。また、プログラマブルブートストラッピングを備えた低レベルの暗号レイヤー、元のTFHEライブラリと互換性のあるブールAPI、メッセージ空間が最大8ビットの厳密な無制限演算に対応する短整数APIも含まれています。データ転送量を削減するため、暗号文とサーバー鍵の圧縮にも対応しています。
低レベルの暗号処理の詳細を自ら管理することなく、プライバシーを保護した計算を実現したい開発者や研究者を対象としています。ドキュメント、ハンドブック、チュートリアルでは、基盤となるアルゴリズムやパラメーターの選び方、応用例を解説しています。
主な機能
- 01TFHEを使い、暗号化データに対してブール演算や整数演算を実行できます。
- 02FheUint32などの暗号化整数型を備えた高レベルのRust APIを提供します。
- 03Cバインディングと、WASMにコンパイルされたクライアント側JavaScript APIを利用できます。
- 04低レベルの暗号レイヤーでプログラマブルブートストラッピングを利用できます。
- 05暗号文とサーバー鍵を圧縮し、データ転送量を削減できます。
ユースケース
- サーバーが内容を読み取れないデータに対して計算する、プライバシー保護型サービスの構築。
- 研究で暗号化された整数回路やブール回路を試作する。
- WASM APIを使い、ブラウザー上でクライアント側の暗号化を実行する。
クイックスタート
- 1
Rustのバージョンが1.91.1以降であることを確認します
rustc --version - 2
Cargo.tomlの依存関係にTFHE-rsを追加します
tfhe = { version = "*", features = ["boolean", "shortint", "integer"] } - 3
リリースモードでサンプルを実行します
cargo run --release
使う前に知っておきたいこと
- BSD-3-Clause-Clearライセンスの対象です。利用は開発、研究、プロトタイピング、実験に限定されており、商用利用にはZamaから別途特許ライセンスを取得する必要があります。
- サイドチャネル攻撃への対策はまだ実装されていません。
- Rust 1.91.1以降が必要です。
- WindowsではAArch64マシンはサポートされていません。
収録されている特集
トピック
よくある質問
- tfhe-rs とは?
- 暗号化データを直接使ったブール演算や整数演算を可能にする、TFHE方式の純粋なRust実装。 TFHE-rsは、完全準同型暗号方式であるTFHEを実装した純粋なRustライブラリです。暗号文に対して計算を行い、データ所有者が復号すると、平文に同じ演算を適用した場合と一致する結果が得られます。ブール回路のほか、FheUint8やFheUint32など、一般的なビット幅の暗号化値に対する整数演算に利用できます。
- tfhe-rs は無料で使えますか?ライセンスは?
- tfhe-rs は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- tfhe-rs は今もメンテナンスされていますか?
- 活発にメンテナンス中。tfhe-rs の最終コミットは 2026年10月23日 です。
- tfhe-rs は何に使えますか?
- サーバーが内容を読み取れないデータに対して計算する、プライバシー保護型サービスの構築。 研究で暗号化された整数回路やブール回路を試作する。 WASM APIを使い、ブラウザー上でクライアント側の暗号化を実行する。
- tfhe-rs のインストール方法は?
- Rustのバージョンが1.91.1以降であることを確認します: rustc --version Cargo.tomlの依存関係にTFHE-rsを追加します: tfhe = { version = "*", features = ["boolean", "shortint", "integer"] } リリースモードでサンプルを実行します: cargo run --release
- tfhe-rs はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/zama-ai/tfhe-rs
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Zamaがまとめた完全準同型暗号のリソース集。機密ブロックチェーンプロトコル、TFHE-rsライブラリ、論文、チュートリアルを網羅しています。
ユーザー識別子を使わないエンドツーエンド暗号化メッセージングアプリとネットワーク。iOS、Android、デスクトップ、CLIに対応。
Windows、macOS、Linux向けのデスクトップクライアント。Dropbox、Google Drive、OneDriveなどの同期フォルダー内のファイルをクライアント側で透過的に暗号化します。
ブラウザー上でペーストを暗号化し、サーバーに平文を渡さない、ミニマルなセルフホスト型ペーストビン。
定期確認が途絶えたとき、大切な人にE2E暗号化メッセージを届けるセルフホスト型のデッドマンスイッチ。