Paper 2013/371

Domain-Polymorphic Programming of Privacy-Preserving Applications

Dan Bogdanov, Peeter Laud, and Jaak Randmets


Secure Multiparty Computation (SMC) is seen as one of the main enablers for secure outsourcing of computation. Currently, there are many different SMC techniques (garbled circuits, secret sharing, homomorphic encryption, etc.) and none of them is clearly superior to others in terms of efficiency, security guarantees, ease of implementation, etc. For maximum efficiency, and for obeying the trust policies, a privacy-preserving application may wish to use several different SMC techniques for different operations it performs. A straightforward implementation of this application may result in a program that (i) contains a lot of duplicated code, differing only in the used SMC technique; (ii) is difficult to maintain, if policies or SMC implementations change; and (iii) is difficult to reuse in similar applications using different SMC techniques. In this paper, we propose a programming language with associated compilation techniques for simple orchestration of multiple SMC techniques and multiple protection domains. It is a simple imperative language with function calls where the types of data items are annotated with protection domains and where the function declarations may be domain-polymorphic. This allows most of the program code working with private data to be written in a SMC-technique-agnostic manner. It also allows rapid deployment of new SMC techniques and implementations in existing applications. We have implemented the compiler for the language, integrated it with an existing SMC framework, and are currently using it for new privacy-preserving applications.

Available format(s)
Publication info
Published elsewhere. Unknown status
secure multiparty computation
Contact author(s)
peeter laud @ cyber ee
2014-04-22: revised
2013-06-12: received
See all versions
Short URL
Creative Commons Attribution


      author = {Dan Bogdanov and Peeter Laud and Jaak Randmets},
      title = {Domain-Polymorphic Programming of Privacy-Preserving Applications},
      howpublished = {Cryptology ePrint Archive, Paper 2013/371},
      year = {2013},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.