/tf-encrypted

Layer on top of TensorFlow for doing machine learning on encrypted data

Primary LanguagePythonApache License 2.0Apache-2.0

tf-encrypted

Status License PyPI CircleCI Badge Documentation

This library provides a layer on top of TensorFlow for doing machine learning on encrypted data as initially described in Secure Computations as Dataflow Programs, with the aim of making it easy for researchers and practitioners to experiment with private machine learning using familiar tools and without being an expert in both machine learning and cryptography. To this end the code is structured into roughly three modules:

  • secure operations for computing on encrypted tensors
  • basic machine learning operations built on top of these
  • ready-to-use components for private prediction and training

that are all exposed through Python interfaces, and all resulting in ordinary TensorFlow graphs for easy integration with other TensorFlow mechanisms and efficient execution.

Several contributors have put resources into the development of this library, most notably Dropout Labs and members of the OpenMined community (see below for details).

Important: this is experimental software that should not be used in production for security reasons.

License

Licensed under Apache License, Version 2.0 (see LICENSE or http://www.apache.org/licenses/LICENSE-2.0). Copyright as specified in NOTICE.

Contributions

Several people have had an impact on the development of this library (in alphabetical order):

and several companies have invested significant resources (in alphabetical order):

  • Dropout Labs continues to sponsor a large amount of both research and engineering
  • OpenMined was the breeding ground for the initial idea and continues to support discussions and guidance

Reported uses

Happy to hear all!