The changelog explains changes pulled through from the private development repository. Bug fixes and small enchancements are committed between releases and not documented here.
- Simplified installation on macOS
- Optimized matrix multiplication
- Data type for quantization
- Shamir secret sharing
- More three-party replicated secret sharing
- Encrypted communication for replicated secret sharing
- Added BMR, Yao's garbled circuits, and semi-honest 3-party replicated secret sharing for arithmetic and binary circuits.
- Use inline assembly instead of MPIR for arithmetic modulo primes up length upt to 128 bit.
- Added a secure multiplication instruction to the instruction set in order to accommodate protocols that don't use Beaver randomization.
- Added offline phases based on homomorphic encryption, used in the SPDZ-2 paper and the Overdrive paper.
- On macOS, the minimum requirement is now Sierra.
- Compilation with LLVM/clang is now possible (tested with 3.8).
See the ExternalIO directory for more details and examples.
Note that libsodium is now a dependency on the SPDZ build.
Added compiler instructions:
- LISTEN
- ACCEPTCLIENTCONNECTION
- CONNECTIPV4
- WRITESOCKETSHARE
- WRITESOCKETINT
Removed instructions:
- OPENSOCKET
- CLOSESOCKET
Modified instructions:
- READSOCKETC
- READSOCKETS
- READSOCKETINT
- WRITESOCKETC
- WRITESOCKETS
Support secure external client input and output with new instructions:
- READCLIENTPUBLICKEY
- INITSECURESOCKET
- RESPSECURESOCKET
Added compiler instructions:
- READFILESHARE
- WRITEFILESHARE
Added compiler instructions:
- DIGESTC - Clear truncated hash computation
- PRINTINT - Print register value
- See
README.md
andtutorial.md
.