Skip to content
/ SMP Public
forked from OpenSMP/SMP

Secure Matrix Product Protocol

License

Notifications You must be signed in to change notification settings

kinoko/SMP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Secure Matrix Multiplication Protocol

A two-party secure computation protocol for computing matrix multiplication. This repo includes the implementation of our paper More Practical Privacy-Preserving Machine Learning as A Service via Efficient Secure Matrix Multiplication.

  • Use HElib as the basic FHE implementation.

    • Install NTL, GMP
    • plz use the fork version in the submodule.
  • Use Boost network library

  • Build

    • pull the submodule, git submodule init && git submodule update
    • create the build dir, mkdir build && cd build
    • cmake and make cmake -DCMAKE_BUILD_TYPE=Release .. && make
    • check out the executables in build/bin
  • Main Executable

    • bin/SMP with parameters R, a, N, M and D
      Usage: bin/SMP [ name=value ]...
       N       n1  [ default=8 ]
       M       n2  [ default=8 ]
       D       n3  [ default=8 ]
       R       role. 0 for server and 1 for client  [ default=-1 ]
       a       server address  [ default=127.0.0.1 ]
       p       port  [ default=12345 ]
      
      
    • The client holds a N*M matrix (generated randomly inside the program), and the server holds a M*D matrix (generated randomly inside the program).
    • The computed N*D matrix will be sent back to the client.
  • Contact Any question, plz contact fionser_AT_gmail.com

About

Secure Matrix Product Protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.8%
  • CMake 1.2%