Skip to main content
QUICK REVIEW

[논문 리뷰] A General Purpose Transpiler for Fully Homomorphic Encryption

Shruthi Gorantala, Rob Springer|arXiv (Cornell University)|2021. 06. 15.
Cryptography and Data Security참고 문헌 22인용 수 13
한 줄 요약

이 논문은 고수준 C++ 코드를 TFHE 라이브러리와 Google의 XLS 중간 표현을 사용하여 등가의 완전호환 암호화(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 연산 간 격차를 메우기 위해.

제안 방법

  • 트랜스파일러는 고수준 언어와 FHE 백엔드 양쪽에서 독립적인 표현력을 지닌 중간 표현(IR)을 생성하기 위해 Google의 XLS SDK를 사용한다.
  • 고수준 C++ 연산(예: SUM, MUL, DIV)을 저수준 부울 게이트로 변환한 후, 번역 레이어를 통해 TFHE 네이티브 연산으로 매핑한다.
  • 구조체와 클래스와 같은 복잡한 데이터 유형을 자동으로 해당하는 FHE 데이터 인코딩을 생성함으로써 지원한다.
  • 트랜스파일된 출력은 TFHE 라이브러리와 함께 컴파일되고 실행될 수 있는 FHE-C++ 코드이며, 종단 간 호환 계산을 가능하게 한다.
  • 모듈식 설계 덕분에 핵심 파이프라인을 다시 작성하지 않고도 다른 FHE 라이브러리나 고수준 언어를 통합할 수 있다.
  • 트랜스파일러는 FHE IR용 런타임 인터프리터를 포함하여 멀티코어 디스패치를 포함한 다양한 실행 전략을 유연하게 지원한다.

실험 결과

연구 질문

  • RQ1암호학 전문 지식 없이도 일반 목적의 트랜스파일러가 고수준 C++ 프로그램을 안전하고 기능적으로 FHE 코드로 자동 변환할 수 있는가?
  • RQ2XLS와 같은 중간 표현이 다양한 FHE 체계와 고수준 프로그래밍 언어 간의 상호운용성을 어떻게 가능하게 하는가?
  • RQ3트랜스파일된 FHE 코드는 산술 연산과 제어 흐름 연산에 대해 성능 최적화를 얼마나 잘 수행할 수 있는가?
  • RQ4클래스와 구조체와 같은 복잡한 데이터 구조를 유지하면서도 호환 계산 하에서 정확성을 유지할 수 있는가?
  • RQ5모듈식 설계가 새로운 FHE 체계와 최적화 기법의 비교 평가를 어떻게 촉진하는가?

주요 결과

  • 트랜스파일러는 TFHE와 XLS를 사용하여 임의의 C++ 프로그램을 등가의 FHE-C++ 코드로 성공적으로 변환하여 암호화된 데이터에서 종단 간 호환 계산을 구현함을 입증하였다.
  • XLS를 중간 표현으로 사용함으로써 언어 및 체계에 관계없이 컴파일이 가능해져 모듈성과 확장성이 향상되었다.
  • 트랜스파일된 코드는 저수준 부울 게이트 외에도 덧셈, 곱셈, 나눗셈과 같은 고수준 연산을 지원하여 사용성과 성능을 향상시켰다.
  • 디버깅이 가능하고 인간이 읽을 수 있는 FHE-C++ 출력을 생성함으로써, 이전 도구가 저수준 회로 표현만 생성했던 것에 비해 상당한 개선이 이루어졌다.
  • 동일한 고수준 프로그램을 기반으로 다양한 FHE 체계와 최적화 기법을 직접 비교할 수 있도록 하여 연구 및 평가를 가속화하였다.
  • 트랜스파일러는 향후 프로그래머블 부트스트랩, 네이티브 산술 연산, SIMD 방식의 배치 처리를 통한 성능 향상을 위한 최적화의 기반을 마련하였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.