Skip to content

Latest commit

 

History

History

mpyc

Synopsis

MPyC currently consists of 14 modules (all in pure Python):

  1. numpy: stub to avoid dependency on NumPy package (also handling version issues, etc.)
  2. gmpy: some basic number theoretic algorithms (using GMP via Python package gmpy2, if installed)
  3. gfpx: polynomial arithmetic over arbitrary prime fields
  4. finfields: arbitrary finite fields, including binary fields and prime fields
  5. fingroups: finite groups, in particular for use in cryptography (elliptic curves, Schnorr groups, etc.)
  6. thresha: threshold Shamir (and also pseudorandom) secret sharing
  7. asyncoro: asynchronous communication and computation of secret-shared values
  8. sectypes: SecInt/Fld/Fxp/Flt types for secure (secret-shared) integer/finite-field/fixed-/floating-point values
  9. runtime: core MPC protocols (many hidden by Python's operator overloading)
  10. mpctools: reduce and accumulate with log round complexity
  11. random: securely mimicking Python’s random module
  12. seclists: secure lists with oblivious access and updates
  13. secgroups: SecGrp types for secure (secret-shared) finite group elements
  14. statistics: securely mimicking Python’s statistics module

The modules are listed in topological order w.r.t. internal dependencies:

  • Modules 1-5 are basic modules which can also be used outside an MPC context
  • Modules 6-9 form the core of MPyC
  • Modules 10-13 form the extended core of MPyC
  • Module 14 is a small library on top of the (extended) core