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의 효율성 격차를 해결하며, 각 방식은 클라이언트 측과 평가자 측의 계산 비용 간에 서로 다른 성능 트레이드오프를 가집니다.
작동 원리
이 프로젝트는 두 가지 주요 암호화 방식을 구현합니다:
- 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-최근접 이웃 검색의 작동 예제를 포함합니다.
- 보안 연구: 연구를 돕기 위해 알려진 공격과 취약점을 저장소 내에 투명하게 공개합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트