Skip to content

Releases: data61/MP-SPDZ

Functionality to call high-level code from C++

21 Nov 06:56
Compare
Choose a tag to compare
  • Functionality to call high-level code from C++
  • Matrix triples from file for all appropriate protocols
  • Exit with message on errors instead of uncaught exceptions
  • Reduce memory usage for binary memory
  • Optimized cint-regint conversion in Dealer protocol
  • Fixed security bug: missing MAC check in probabilistic truncation

Maintenance

09 Jul 05:47
Compare
Choose a tag to compare
  • Inference with non-sequential PyTorch networks
  • SHA-3 for any input length (@hiddely)
  • Improved client facilities
  • Shuffling with malicious security for SPDZ-wise protocols by Asharov et al.
  • More reusable bytecode via in-thread calling facility
  • Recursive functions without return values
  • Fewer rounds for parallel matrix multiplications (@vincent-ehrmanntraut)
  • Optimized usage of SoftSpokenOT in semi-honest protocols
  • More integrity checks on storage in MAC-based protocols
  • Use C++17
  • Use glibc 2.18 for the binaries
  • Fixed security bugs: remotely caused buffer overflows (#1382)
  • Fixed security bug: Missing randomization before revealing to client
  • Fixed security bug: Bias in Rep3 secure shuffling

Multinode computation

14 Dec 03:00
Compare
Choose a tag to compare
  • Functionality for multiple nodes per party
  • Functionality to use disk space for high-level data structures
  • True division is always fixed-point division (similar to Python 3)
  • Compiler option to optimize for specific protocol
  • Cleartext permutation
  • Faster compilation and lower bytecode size
  • Functionality to output secret shares from high-level code
  • Run-time command-line arguments accessible from high-level code
  • Client connection setup specifies cleartext domain
  • Compile-time parameter for connection timeout
  • Prevent connections from timing out (@ParallelogramPal)
  • More ECDSA examples
  • More flexible multiplication instruction
  • Dot product instruction supports several operations at once
  • Example-based virtual machine explanation

Maintenance

14 Aug 09:50
Compare
Choose a tag to compare
  • Path Oblivious Heap (@tskovlund)
  • Adjust batch and bucket size to program
  • Direct communication available in more protocols
  • Option for seed in fake preprocessing (@strieflin)
  • Lower memory usage due to improved register allocation
  • New instructions to speed up CISC compilation
  • Protocol implementation example
  • Fixed security bug: missing MAC checks in multi-threaded programs
  • Fixed security bug: race condition in MAC check
  • Fixed security bug: missing shuffling check in PS mod 2^k and Brain
  • Fixed security bug: insufficient drowning in pairwise protocols

Maintenance

09 May 05:54
Compare
Choose a tag to compare
  • More extensive benchmarking outputs
  • Replace MPIR by GMP
  • Secure reading of edaBits from files
  • Semi-honest client communication
  • Back-propagation for average pooling
  • Parallelized convolution
  • Probabilistic truncation as in ABY3
  • More balanced communication in Shamir secret sharing
  • Avoid unnecessary communication in Dealer protocol
  • Linear solver using Cholesky decomposition
  • Accept .py files for compilation
  • Fixed security bug: proper accounting for random elements

More accessible machine learning functionality

16 Feb 02:58
Compare
Choose a tag to compare
  • Easier-to-use machine learning interface
  • Integrated compilation-execution facility
  • Import/export sequential models and parameters from/to PyTorch
  • Binary-format input files
  • Less aggressive round optimization for faster compilation by default
  • Multithreading with client interface
  • Functionality to protect order of specific memory accesses
  • Oblivious transfer works again on older (pre-2011) x86 CPUs
  • clang is used by default

Decision tree training

09 Nov 02:19
Compare
Choose a tag to compare
  • Decision tree training
  • Optimized oblivious shuffle in Rep3
  • Optimized daBit generation in Rep3 and semi-honest HE-based 2PC
  • Optimized element-vector AND in SemiBin
  • Optimized input protocol in Shamir-based protocols
  • Square-root ORAM (@Quitlox)
  • Improved ORAM in binary circuits
  • UTF-8 outputs

SoftSpokenOT

25 Aug 07:03
Compare
Choose a tag to compare
  • Use SoftSpokenOT to avoid unclear security of KOS OT extension candidate
  • Fix security bug in MAC check when using multithreading
  • Fix security bug to prevent selective failure attack by checking earlier
  • Fix security bug in Mama: insufficient sacrifice.
  • Inverse permutation (@Quitlox)
  • Easier direct compilation (@eriktaubeneck)
  • Generally allow element-vector operations
  • Increase maximum register size to 2^54
  • Client example in Python
  • Uniform base OTs across platforms
  • Multithreaded base OT computation
  • Faster random bit generation in two-player Semi(2k)

Secure shuffling

27 May 13:54
Compare
Choose a tag to compare
  • Secure shuffling
  • O(n log n) radix sorting
  • Documented BGV encryption interface
  • Optimized matrix multiplication in dealer protocol
  • Fixed security bug in homomorphic encryption parameter generation
  • Fixed security bug in Temi matrix multiplication

Protocol in dealer model

19 Apr 13:52
Compare
Choose a tag to compare
  • Protocol in dealer model
  • Command-line option for security parameter
  • Fixed security bug in SPDZ2k (see Section 3.4 of the updated paper)
  • Ability to run high-level (Python) code from C++
  • More memory capacity due to 64-bit addressing
  • Homomorphic encryption for more fields of characteristic two
  • Docker container