Multiparty Computation in Haskell.
hMPC is a Haskell package for secure multiparty computation (MPC).
hMPC provides a runtime for performing computations on secret-shared values, where parties interact by exchanging messages via peer-to-peer connections. The hMPC protocols are based on Shamir's threshold secret sharing scheme and withstand passive adversaries controlling less than half of the parties.
Secure integer arithmetic is supported for parameterized number ranges, including support for comparison operations. Secure finite field arithmetic is supported.
The above operations are all available via Haskell's operator overloading.
Secure drop-in replacements for lots of Haskell built-in functions, such as all
, sum
, min
, max
are provided, mimicking the Haskell APIs as much as possible. Further operations for container datatypes holding secret-shared data items are provided as well (e.g., matrix-vector operations like secure dot products).