Wysteria: A Programming Language for Generic, Mixed-Mode Multiparty Computations

View/ Open
Date
2014-03-14Author
Rastogi, Aseem
Hammer, Matthew A.
Hicks, Michael
Metadata
Show full item recordAbstract
In a Secure Multiparty Computation (SMC), mutually distrusting parties
use cryptographic techniques to cooperatively compute over their private
data; in the process each party learns only explicitly revealed outputs.
In this paper, we present Wysteria, a high-level programming language
for writing SMCs. As with past languages, like Fairplay, Wysteria
compiles secure computations to circuits that are executed by an
underlying engine. Unlike past work, Wysteria provides support for
mixed-mode programs, which combine local, private computations with
synchronous SMCs. Wysteria complements a standard feature set with
built-in support for secret shares and with wire bundles, a new
abstraction that supports generic n-party computations. We have
formalized Wysteria, its refinement type system, and its operational
semantics. We show that Wysteria programs have an easy-to-understand
single-threaded interpretation and prove that this view corresponds to
the actual multi-threaded semantics. We also prove type soundness, a
property we show has security ramifications, namely that information
about one party's data can only be revealed to another via (agreed upon)
secure computations. We have implemented Wysteria, and used it to
program a variety of interesting SMC protocols from the literature, as
well as several new ones. We find that Wysteria's performance is
competitive with prior approaches while making programming far easier,
and more trustworthy.