Paper 2019/988

RAMPARTS: A Programmer-Friendly System for Building Homomorphic Encryption Applications

David W. Archer, Jose Manuel Calderon Trilla, Jason Dagit, Alex J. Malozemoff, Yuriy Polyakov, Kurt Rohloff, and Gerard Ryan


Homomorphic Encryption (HE) is an emerging technology that enables computing on data while the data is encrypted. A major challenge with homomorphic encryption is that it takes extensive expert knowledge to design meaningful and useful programs that are constructed from atomic HE operations. We present RAMPARTS to address this challenge. RAMPARTS provides an environment for developing HE applications in Julia, a high-level language, the same way as ``cleartext'' applications are typically written in Julia. RAMPARTS makes the following three contributions. First, we use symbolic execution to automate the construction of an optimized computation circuit where both the circuit size and multiplicative depth are chosen by the compiler. Second, RAMPARTS automatically selects the HE parameters for the generated circuit, which is typically done manually by an HE expert. Third, RAMPARTS automatically selects the plaintext encoding for input values, and performs input and output data transformations. These three operations are not easily performed by programmers who are not HE experts. Thus, RAMPARTS makes HE more widely available and usable by the the population of programmers. We compare our approach with Cingulata, the only previously known system that automatically generates circuits for HE computations. The HE circuits generated by RAMPARTS are significantly more efficient than the circuits compiled by Cingulata. For instance, our runtimes for key generation/circuit compilation and all online operations are more than one order of magnitude lower for a sample image processing application used for performance evaluation in our study.

Available format(s)
Publication info
Published elsewhere. Minor revision.WAHC 2019 – 7th Workshop on Encrypted Computing & Applied Homomorphic Cryptography
Homomorphic encryptionAutomatic arithmetic circuit generationLattice-based cryptographyUsable security and privacy
Contact author(s)
polyakov @ njit edu
2019-09-03: revised
2019-09-02: received
See all versions
Short URL
Creative Commons Attribution


      author = {David W.  Archer and Jose Manuel Calderon Trilla and Jason Dagit and Alex J.  Malozemoff and Yuriy Polyakov and Kurt Rohloff and Gerard Ryan},
      title = {RAMPARTS: A Programmer-Friendly System for Building Homomorphic Encryption Applications},
      howpublished = {Cryptology ePrint Archive, Paper 2019/988},
      year = {2019},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.