Paper 2012/205

Information-flow control for programming on encrypted data

J. C. Mitchell, R. Sharma, D. Stefan, and J. Zimmerman


Using homomorphic encryption and secure multiparty computation, cloud servers may perform regularly structured computation on encrypted data, without access to decryption keys. However, prior approaches for programming on encrypted data involve restrictive models such as boolean circuits, or standard languages that do not guarantee secure execution of all expressible programs. We present an expressive core language for secure cloud computing, with primitive types, conditionals, standard functional features, mutable state, and a secrecy preserving form of general recursion. This language, which uses an augmented information-flow type system to prevent control-flow leakage, allows programs to be developed and tested using conventional means, then exported to a variety of secure cloud execution platforms, dramatically reducing the amount of specialized knowledge needed to write secure code. We present a Haskell-based implementation and prove that cloud implementations based on secret sharing, homomorphic encryption, or other alternatives satisfying our general definition meet precise security requirements.

Note: This document is the extended version of a CSF 2012 publication.

Available format(s)
Publication info
Published elsewhere. Unknown where it was published
domain-specific languagessecure cloud computinginformation flow controlhomomorphic encryptionmultiparty computation
Contact author(s)
deian @ cs stanford edu
2012-04-15: received
Short URL
Creative Commons Attribution


      author = {J. C.  Mitchell and R.  Sharma and D.  Stefan and J.  Zimmerman},
      title = {Information-flow control for programming on encrypted data},
      howpublished = {Cryptology ePrint Archive, Paper 2012/205},
      year = {2012},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.