XTraceAI/cuhepy

GPU-accelerated homomorphic encryption in Python: Paillier and BFV, with encrypted nearest-neighbour search. Experimental research code.

解決する課題

cuhepyは、Python向けにGPU加速された準同型暗号(HE)を提供し、データを復号することなく暗号化された状態で計算を実行できるようにします。PaillierとBFVの両方のスキームを提供することで、HEにおける効率性のギャップに対処しており、それぞれクライアント側と評価者側の計算コストのトレードオフが異なります。

仕組み

このプロジェクトでは、主に2つの暗号化スキームを実装しています。

  • Paillier: 準同型加算をサポートします。高速処理のためのCUDA加速バックエンドと、ルックアップ操作を最適化するための$\alpha$-部分群バリアントが含まれています。
  • BFV (Brakerski-Fan-Vercauteren): 加算、乗算、回転をサポートする階層型スキームです。SIMDバッチ処理を使用し、パフォーマンス向上のためにC++ RNS/NTTバックエンドを提供します。

これらのプリミティブを使用して、暗号化されたk-最近傍探索アプリケーションである cuhepy.hamming が構築されています。このシナリオでは、評価者は元のベクトル、クエリ、または最終的な距離を一度も確認することなく、ハミング距離に基づいて暗号化されたベクトルをランク付けできます。

対象読者

プライバシー保護計算や準同型暗号に関心のある研究者や開発者。これは実験的な研究コードであり監査を受けていないため、実際の商用データを保護するためではなく、学習や測定を目的としています。

ハイライト

  • デュアルスキームサポート: PaillierとBFVの両方を提供し、クライアント側と評価者側のどちらの計算オーバーヘッドを最小限に抑えたいかに応じて選択可能です。
  • GPU加速: Paillier向けにオプションのCUDAバックエンドを提供し、暗号化操作を高速化します。
  • C++最適化: BFVスキーム向けに高性能なC++ RNS/NTTバックエンドを搭載しています。
  • 統合アプリケーション: ハミング距離を使用した暗号化k-最近傍探索の動作例が含まれています。
  • セキュリティ研究: 研究を支援するために、既知の攻撃や脆弱性をリポジトリ内で透明性を持って公開しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト