SecretFlow includes a number of components, such as a secure processing unit, which provides secure computation capabilities guaranteeing data privacy; a homomorphic encryption unit; a portable simplest oblivious transfer protocol implementation; and SecretFlow, a higher-level unified framework integrating all of them. While the high-level SecretFlow module is written in Python, the lower-level modules are written in C, C++, and assembly.
SecretFlow aims to be complete, transparent, open, and interoperable with other technologies. According to the Ant Group, the framework aims to make it easier for developer to create applications based on privacy-preserving computing and to contribute to the further growth of the market and technology maturity.
You can install SecretFlow by running
pip install -U secretflow. The following snippet shows how you can generate a random number between 3 and 4 for a specific user in standalone mode:
import secretflow as sf >>> sf.init(['alice', 'bob', 'carol'], num_cpus=8, log_to_driver=True) >>> dev = sf.PYU('alice') >>> import numpy as np >>> data = dev(np.random.rand)(3, 4) >>> data
SecretFlow can also be deployed in cluster mode, which enables allocating nodes to specific users to increase privacy. SecretFlow cluster mode is based on Ray, an open source framework that provides a simple, universal API for building distributed applications.
For a quick start with SecretFlow, you can check the tutorials which present a number of use cases, from data preprocessing to logistic regression, to neural network training, and so on.
Privacy-preserving computation is a technique that aims to provide protection for sensitive data while they are processed. Using such techniques, e.g., homomorphic encryption, you can carry through computation over encrypted data, which ensure it cannot be collected or tampered with during the processing.