Cryptoleq: A Heterogeneous Abstract Machine for Encrypted and Unencrypted Computation

Oleg Mazonka, Nektarios Georgios Tsoutsos, Michail Maniatakos

Research output: Contribution to journalArticlepeer-review


The rapid expansion and increased popularity of cloud computing comes with no shortage of privacy concerns about outsourcing computation to semi-trusted parties. Leveraging the power of encryption, in this paper, we introduce Cryptoleq: an abstract machine based on the concept of one instruction set computer, capable of performing general-purpose computation on encrypted programs. The program operands are protected using the Paillier partially homomorphic cryptosystem, which supports addition on the encrypted domain. Full homomorphism over addition and multiplication, which is necessary for enabling general-purpose computation, is achieved by inventing a heuristically obfuscated software re-encryption module written using Cryptoleq instructions and blended into the executing program. Cryptoleq is heterogeneous, allowing mixing encrypted and unencrypted instruction operands in the same program memory space. Programming with Cryptoleq is facilitated using an enhanced assembly language that allows the development of any advanced algorithm on encrypted data sets. In our evaluation, we compare Cryptoleq's performance against a popular fully homomorphic encryption library, and demonstrate correctness using a typical private information retrieval problem.

Original languageEnglish (US)
Article number7469876
Pages (from-to)2123-2138
Number of pages16
JournalIEEE Transactions on Information Forensics and Security
Issue number9
StatePublished - Sep 2016


  • Abstract machine
  • Paillier
  • compiler
  • encrypted computation
  • heterogeneous computer
  • homomorphic encryption
  • obfuscation
  • one instruction set computer

ASJC Scopus subject areas

  • Safety, Risk, Reliability and Quality
  • Computer Networks and Communications


Dive into the research topics of 'Cryptoleq: A Heterogeneous Abstract Machine for Encrypted and Unencrypted Computation'. Together they form a unique fingerprint.

Cite this