Cryptology ePrint Archive: Report 2012/205

Information-flow control for programming on encrypted data

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

Abstract: 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.

Category / Keywords: foundations / domain-specific languages, secure cloud computing, information flow control, homomorphic encryption, multiparty computation

Date: received 13 Apr 2012

Contact author: deian at cs stanford edu

Available format(s): PDF | BibTeX Citation

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

Version: 20120415:220953 (All versions of this report)

Short URL:

[ Cryptology ePrint archive ]