Overview of Multiparty Homomorphic Encryption (MHE) in Lattigo
mainThe multiparty package implements Multiparty Homomorphic Encryption (MHE) primitives based on Ring-Learning-with-Errors (RLWE). It provides two core threshold schemes:
- $N\text{-out-of-}N$-threshold scheme: Requires collaboration from all $N$ parties to perform secret-key operations (like decryption).
- $t\text{-out-of-}N$-threshold scheme: Allows any group of at least $t$ parties to perform secret-key operations, providing better liveness guarantees if some parties are unavailable.
Key Characteristics:
- Local Operations Only: The package implements the local steps of the MHE-MPC protocol but does not provide a network-layer protocol implementation. You are responsible for the communication between parties.
- Serialization: All relevant types implement
encoding.BinaryMarshaller,encoding.BinaryUnmarshaller,io.WriterTo, andio.ReaderFromfor easy transmission over a network. - Scheme-Specific Functionality: Packages like
multiparty/mpbgvandmultiparty/mpckksprovide threshold versions of BGV and CKKS cryptosystems, including features like interactive bootstrapping. - Protocol Basis: The implementation follows the MHE-MPC protocol described in Mouchet et al. (2021).