Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/secretflow/spu
SPU (Secure Processing Unit) aims to be a provable, measurable secure computation device, which provides computation ability while keeping your private data protected.
https://github.com/secretflow/spu
privacy-preserving private-set-intersection secure-multiparty-computation
Last synced: 2 months ago
JSON representation
SPU (Secure Processing Unit) aims to be a provable, measurable secure computation device, which provides computation ability while keeping your private data protected.
- Host: GitHub
- URL: https://github.com/secretflow/spu
- Owner: secretflow
- License: apache-2.0
- Created: 2022-07-02T09:05:04.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T04:21:27.000Z (2 months ago)
- Last Synced: 2024-04-08T04:23:35.110Z (2 months ago)
- Topics: privacy-preserving, private-set-intersection, secure-multiparty-computation
- Language: C++
- Homepage: https://www.secretflow.org.cn/docs/spu/en/
- Size: 12.5 MB
- Stars: 197
- Watchers: 8
- Forks: 85
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Lists
- awesome-jax - SPU - A domain-specific compiler and runtime suite to run JAX code with MPC(Secure Multi-Party Computation). <img src="https://img.shields.io/github/stars/secretflow/spu?style=social" align="center"> (Libraries / New Libraries)
- awesome-mpc - SecretFlow-SPU - A domain-specific compiler and runtime suite, that aims to provide a secure computation service with provable security. SPU compiler uses XLA as its front-end Intermediate Representation (IR) and SPU runtime implements various MPC protocols. | [USENIX ATC'23](https://www.usenix.org/system/files/atc23-ma.pdf). (Software / Frameworks)
- awesome-stars - secretflow/spu - SPU (Secure Processing Unit) aims to be a provable, measurable secure computation device, which provides computation ability while keeping your private data protected. (C++)
- Awesome-SGX-Open-Source - https://github.com/secretflow/spu
- mpc-awesome - SecretFlow-SPU - A domain-specific compiler and runtime suite, that aims to provide a secure computation service with provable security. SPU compiler uses XLA as its front-end Intermediate Representation (IR) and SPU runtime implements various MPC protocols. | [USENIX ATC'23](https://www.usenix.org/system/files/atc23-ma.pdf). (Software / Frameworks)
README
# SPU: Secure Processing Unit
[![CircleCI](https://dl.circleci.com/status-badge/img/gh/secretflow/spu/tree/main.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/secretflow/spu/tree/main)
[![Python](https://img.shields.io/pypi/pyversions/spu.svg)](https://pypi.org/project/spu/)
[![PyPI version](https://img.shields.io/pypi/v/spu)](https://pypi.org/project/spu/)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/secretflow/spu/badge)](https://securityscorecards.dev/viewer/?uri=github.com/secretflow/spu)
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8311/badge)](https://www.bestpractices.dev/projects/8311)SPU (Secure Processing Unit) aims to be a `provable`, `measurable` secure computation device,
which provides computation ability while keeping your private data protected.SPU could be treated as a programmable device, it's not designed to be used directly.
Normally we use SecretFlow framework, which use SPU as the underline secure computing device.Currently, we mainly focus on `provable` security. It contains a secure runtime that evaluates
[XLA](https://www.tensorflow.org/xla/operation_semantics)-like tensor operations,
which use [MPC](https://en.wikipedia.org/wiki/Secure_multi-party_computation) as the underline
evaluation engine to protect privacy information.SPU python package also contains a simple distributed module to demo SPU usage,
but it's **NOT designed for production** due to system security and performance concerns,
please **DO NOT** use it directly in production.## Contribution Guidelines
If you would like to contribute to SPU, please check [Contribution guidelines](CONTRIBUTING.md).
This documentation also contains instructions for [build and testing](CONTRIBUTING.md#build).
## Installation Guidelines
### Supported platforms
| | Linux x86_64 | Linux aarch64 | macOS x64 | macOS Apple Silicon | Windows x64 | Windows WSL2 x64 |
|------------|--------------|---------------|----------------|---------------------|----------------|---------------------|
| CPU | yes | yes | yes1| yes | no | yes |
| NVIDIA GPU | experimental | no | no | n/a | no | experimental |1. Due to CI resource limitation, macOS x64 prebuild binary is no longer available.
### Instructions
Please follow [Installation Guidelines](INSTALLATION.md) to install SPU.
### Hardware Requirements
| General Features | FourQ based PSI | GPU |
| ---------------- | --------------- | --- |
| AVX/ARMv8 | AVX2/ARMv8 | CUDA 11.8+ |## Citing SPU
If you think SPU is helpful for your research or development, please consider citing our [paper](https://www.usenix.org/conference/atc23/presentation/ma):
```text
@inproceedings {spu,
author = {Junming Ma and Yancheng Zheng and Jun Feng and Derun Zhao and Haoqi Wu and Wenjing Fang and Jin Tan and Chaofan Yu and Benyu Zhang and Lei Wang},
title = {{SecretFlow-SPU}: A Performant and {User-Friendly} Framework for {Privacy-Preserving} Machine Learning},
booktitle = {2023 USENIX Annual Technical Conference (USENIX ATC 23)},
year = {2023},
isbn = {978-1-939133-35-9},
address = {Boston, MA},
pages = {17--33},
url = {https://www.usenix.org/conference/atc23/presentation/ma},
publisher = {USENIX Association},
month = jul,
}
```## Acknowledgement
We thank the significant contributions made by [Alibaba Gemini Lab](https://alibaba-gemini-lab.github.io).