Abstract
Fully Homomorphic Encryption (FHE) allows private computation over encrypted data, disclosing neither the inputs, intermediate values nor results. Thanks to recent advances, FHE has become feasible for a wide range of applications, resulting in an explosion of interest in the topic and ground-breaking real-world deployments. Given the increasing presence of FHE beyond the core academic community, there is increasing demand for easier access to FHE for wider audiences. Efficient implementations of FHE schemes are mostly written in high-performance languages like C++, posing a high entry barrier to novice users. We need to bring FHE to the (higher-level) languages and ecosystems non-experts are already familiar with, such as Python, the de-facto standard language of data science and machine learning. We achieve this through wrapping existing FHE implementations in Python, providing one-click installation and convenience in addition to a significantly higher-level API. In contrast to other similar works, Pyfhel goes beyond merely exposing the underlying API, adding a carefully designed abstraction layer that feels at home in Python. In this paper, we present Pyfhel, introduce its design and usage, and highlight how its unique support for accessing low-level features through a high-level API makes it an ideal teaching tool for lectures on FHE.
Highlights
Misuse of private data harms users, and threatens the adoption of new technological innovations — e.g., the risks and complexities associated with sharing medical data are widely considered as a barrier to advances in personalized medicine
In contrast to partially homomorphic encryption, which supports only one type of arithmetic operation, fully homomorphic encryption allows encrypted multiplications and additions, theoretically allowing private computation of arbitrary functions. This concept was conceived by Rivest et al in the 1970s, but it remained unrealized until Craig Gentry presented a first feasible Fully Homomorphic Encryption (FHE) scheme in 2009
FHE-based secure computation solutions have generated significant commercial interest and Gartner projects [16] that “by 2025, at least 20% of companies will have a budget for projects that include fully homomorphic encryption.”
Summary
Homomorphic Encryption (FHE) allows a third party to perform computations on encrypted data without learning the inputs or the computation results. Beyond merely providing a way to access, e.g., functionalities from a C++ library in a different language, well-written wrappers should provide idiomatic ways to use the code, respecting best practices and conventions of the target language. This results in code that feels familiar to developers and allows them to correctly and efficiently use the library. Most existing FHE implementations require, or strongly benefit from, dependencies which need to be installed through properly configured toolchains to make the library work properly Wrappers that handle this setup and provide an automatic one-click installation greatly improve the practical accessibility of FHE. Just as a healthy FHE ecosystem requires different libraries implementing the same schemes, it benefits from different ways to expose this functionality
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.