Skip to content

Function Secret Sharing library for Python and Rust with hardware acceleration (PETS '22)

License

Notifications You must be signed in to change notification settings

OpenMined/sycret

Repository files navigation

Sycret

Python library for Function Secret Sharing with an efficient Rust backend using the AES-NI hardware acceleration. It is used in PySyft for ARIANN: Low-Interaction Privacy-Preserving Deep Learning via Function Secret Sharing.

Disclaimer. Sycret is not production-ready yet. It is intended for research and prototyping purposes.

Installation

pip install sycret

Integration with PySyft

The Python package is called from PySyft, like in this branch.

Development instructions

Structure

  • src: the Rust crate.
  • rustfss: the Python package calling the Rust crate with Maturin.
  • tests: tests for the Rust crate.
  • test: tests for the Python wrapper.

Build

  • Create a Python environment from dev-requirements.txt
  • maturin develop -b cffi --release to build the crate, bind it to the Python package and install the package locally.

Test

  • cargo test to test the Rust functionality.
  • pytest test to test the Python package.

Publish

See docs/publish.md for details.

About

Function Secret Sharing library for Python and Rust with hardware acceleration (PETS '22)

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published