Skip to content

Sycret documentation

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.

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

docker run --rm --env RUSTFLAGS="-C target-feature=+aes,+ssse3" -v $(pwd):/io konstin2/maturin publish -b cffi --manylinux 2010 -u __token__ -p pypi-your-token