Wysteria: A Programming Language for Generic, Mixed-Mode Multiparty Computations
Wysteria: A Programming Language for Generic, Mixed-Mode Multiparty Computations
Loading...
Files
Publication or External Link
Date
2014-03-14
Authors
Rastogi, Aseem
Hammer, Matthew A.
Hicks, Michael
Advisor
Citation
DRUM DOI
Abstract
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.