[论文解读] A General Purpose Transpiler for Fully Homomorphic Encryption
本文提出了一种通用的转换器(transpiler),通过使用TFHE库和Google的XLS中间表示(intermediate representation, IR),自动将高级C++代码转换为等价的全同态加密(FHE)兼容代码。该转换器使开发人员无需具备密码学专业知识即可对加密数据执行安全计算,为多种FHE方案和编程语言提供模块化、可调试且可扩展的FHE代码生成机制。
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操作之间的差距。
提出的方法
- 转换器使用Google的XLS SDK生成一种表达性强、与源语言和FHE后端无关的中间表示(IR)。
- 它将高层C++操作(例如,SUM、MUL、DIV)转换为低层布尔门电路,再通过翻译层映射为TFHE原生操作。
- 通过自动生成相应的FHE数据编码,系统支持复杂数据类型,如结构体和类。
- 转换后的输出为可使用TFHE库进行编译和执行的FHE-C++代码,实现端到端的同态计算。
- 模块化设计允许在不重写核心管道的前提下,无缝集成其他FHE库或高层编程语言。
- 转换器包含一个FHE IR的运行时解释器,支持灵活的执行策略,包括多核分发。
实验结果
研究问题
- RQ1通用转换器能否在无需密码学专业知识的前提下,自动将高层C++程序转换为安全且功能正确的FHE代码?
- RQ2中间表示(如XLS)如何实现不同FHE方案与高层编程语言之间的互操作性?
- RQ3转换后的FHE代码在性能方面可优化到何种程度,特别是针对算术运算和控制流操作?
- RQ4转换器在保持同态求值正确性的前提下,能否支持类和结构体等复杂数据结构?
- RQ5模块化设计在比较新型FHE方案和优化技术方面,如何促进评估效率?
主要发现
- 转换器成功将任意C++程序转换为使用TFHE和XLS的等价FHE-C++代码,实现了对加密数据的端到端同态执行。
- 使用XLS作为中间表示,实现了语言和方案无关的编译,显著提升了模块化和可扩展性。
- 转换后的代码支持加法、乘法和除法等高层操作,而不仅限于底层布尔门电路,从而提升了可用性和性能。
- 系统生成可调试、人类可读的FHE-C++输出,相较于以往仅生成低层电路表示的工具,实现了显著改进。
- 该框架支持在相同高层程序上直接比较不同FHE方案和优化技术,加速了研究与评估进程。
- 该转换器为未来优化(如可编程刷新、原生算术运算、SIMD风格批量处理)奠定了基础,有望进一步提升性能。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。