Cryptology ePrint Archive: Report 2018/1013

E3: A Framework for Compiling C++ Programs with Encrypted Operands

Eduardo Chielle and Oleg Mazonka and Homer Gamil and Sanja Kastratovic and Nektarios Georgios Tsoutsos and Michail Maniatakos

Abstract: The dramatic increase of data breaches in modern computing platforms has emphasized that access control is not sufficient to protect sensitive user data. Even in the case of honest parties, unknown software/hardware vulnerabilities and side-channels can enable data leakage, leading to the conclusion that as long as data exists in a decrypted form, it can be leaked. Recent advances on cryptographic homomorphic schemes allow end-to-end processing of encrypted data without any need for decryption. Such schemes, however, still incur impractical overheads and they are difficult to use by non-crypto-savvy users, inhibiting their applicability.

In this work we propose a framework which allows optimal, in terms of performance, execution of standard C++ code with encrypted variables. The framework automatically generates protected types so the programmer can remain oblivious to the underlying encryption scheme. C++ protected classes redefine operators according to the encryption scheme effectively making the introduction of a new API unnecessary. The performance of encrypted computation is enhanced by our novel methodology, dubbed bridging, that blends faster and restricted modular computation with slower and comprehensive bit-level computation. Experimental results show that bridging computation can lead to a performance improvement of more than two orders of magnitude.

Category / Keywords: applications / Data Privacy, Fully Homomorphic Encryption, General-purpose computation, Privacy-preserving computation

Date: received 14 Oct 2018, last revised 20 May 2020

Contact author: tsoutsos at udel edu

Available format(s): PDF | BibTeX Citation

Note: The E3 framework can be downloaded from

Version: 20200520:145341 (All versions of this report)

Short URL:

[ Cryptology ePrint archive ]