Groundbreaking results from the 1980s showed the surprising result that any function can be securely computed by a group of participants in a distributed fashion such that each party learns its intended output and nothing more. These celebrated results were viewed as theoretical proofs of concept. Starting with the FairPlay system, however, a series of theoretical and practical advances in the field have supported the idea that secure computation can perhaps be as practical and ubiquitous as public key cryptography. Some of these advances involve new cryptographic techniques such as building secure computation from fully homomorphic encryption, oblivious RAM, and reusable rather than use-once garbled circuits.
Another source of insight comes from the programming languages community, which has recently begun to contribute techniques from language design, formal methods, compiler optimizations, and security analyses to the problem of improving the efficiency, flexibility, and usability of secure computation protocols. For example, some of the results described above provide compiler-based optimizations for circuit-based approaches, a full ANSI-C compiler for secure two-party computation has recently been implemented, and some research has begun to take a programming-language approach to secure computation, applying both analysis and optimization.
Despite this recent progress, implementations of secure computation protocols remain difficult to use and do not have the flavor and full expressivity and optimizability of modern programming language methods and compilers. Adapting more advanced techniques from programming language research requires care to ensure that they do not negatively impact the security of the protocol. Similarly, it can be confusing for decision makers as well as end users to understand the implications of choosing one secure computation system over another. While some progress has been made on this front, more remains to be done.
This workshop will bring together cryptographers, programming language experts, and systems researchers to address advances in overcoming practical barriers to using secure computation, including questions of programming architectures, programming abstractions, modularity for programmability and plug-and-play usage, and efficiency for general secure computation.