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 --releaseto build the crate, bind it to the Python package and install the package locally.
Test
cargo testto test the Rust functionality.pytest testto 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