All Projects → tf-encrypted → Tf Encrypted

tf-encrypted / Tf Encrypted

Licence: apache-2.0
A Framework for Encrypted Machine Learning in TensorFlow

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Tf Encrypted

Cryptag
Encrypted, taggable, searchable cloud storage
Stars: ✭ 178 (-78.61%)
Mutual labels:  cryptography, privacy
Sdk Js
Tanker client-side encryption SDK for JavaScript
Stars: ✭ 786 (-5.53%)
Mutual labels:  cryptography, privacy
Awesome Iam
👤 Identity and Access Management Knowledge for Cloud Platforms
Stars: ✭ 186 (-77.64%)
Mutual labels:  cryptography, privacy
Discordcrypt
End-To-End File & Message Encryption For Discord
Stars: ✭ 150 (-81.97%)
Mutual labels:  cryptography, privacy
Firo
The privacy-focused cryptocurrency
Stars: ✭ 528 (-36.54%)
Mutual labels:  cryptography, privacy
Magicpad
MagicPad is an encryption suite for beginners. It is designed to be run standalone via the browser or executable (Electron).
Stars: ✭ 174 (-79.09%)
Mutual labels:  cryptography, privacy
WeDPR-Lab-Java-SDK
Java SDK of WeDPR-Lab-Core; WeDPR即时可用场景式隐私保护高效解决方案核心算法组件通用Java SDK
Stars: ✭ 18 (-97.84%)
Mutual labels:  cryptography, privacy
I2pd
🛡 I2P: End-to-End encrypted and anonymous Internet
Stars: ✭ 1,796 (+115.87%)
Mutual labels:  cryptography, privacy
Iotex Core
Official implementation of IoTeX blockchain protocol in Go.
Stars: ✭ 505 (-39.3%)
Mutual labels:  cryptography, privacy
Swifty
🔑 Free Offline Password Manager
Stars: ✭ 496 (-40.38%)
Mutual labels:  cryptography, privacy
Auth Adt
Authenticated Data Structures Generically
Stars: ✭ 150 (-81.97%)
Mutual labels:  cryptography, privacy
Cryptomator
Multi-platform transparent client-side encryption of your files in the cloud
Stars: ✭ 6,623 (+696.03%)
Mutual labels:  cryptography, privacy
Dontclickshit
Як не стати кібер-жертвою
Stars: ✭ 149 (-82.09%)
Mutual labels:  cryptography, privacy
Stegcloak
Hide secrets with invisible characters in plain text securely using passwords 🧙🏻‍♂️⭐
Stars: ✭ 2,379 (+185.94%)
Mutual labels:  cryptography, privacy
Mpyc
MPyC for Secure Multiparty Computation in Python
Stars: ✭ 142 (-82.93%)
Mutual labels:  cryptography, privacy
Vuvuzela
Private messaging system that hides metadata
Stars: ✭ 2,423 (+191.23%)
Mutual labels:  cryptography, privacy
0fc
Anonymous web chat server, built on top of Themis/WebThemis
Stars: ✭ 98 (-88.22%)
Mutual labels:  cryptography, privacy
Library
Collection of papers in the field of distributed systems, game theory, cryptography, cryptoeconomics, zero knowledge
Stars: ✭ 100 (-87.98%)
Mutual labels:  cryptography, privacy
Capillary
Capillary is a library to simplify the sending of end-to-end encrypted push messages from Java-based application servers to Android clients.
Stars: ✭ 445 (-46.51%)
Mutual labels:  cryptography, privacy
Darkwire.io
End-to-end encrypted instant web chat
Stars: ✭ 594 (-28.61%)
Mutual labels:  cryptography, privacy

TF Encrypted is a framework for encrypted machine learning in TensorFlow. It looks and feels like TensorFlow, taking advantage of the ease-of-use of the Keras API while enabling training and prediction over encrypted data via secure multi-party computation and homomorphic encryption. TF Encrypted aims to make privacy-preserving machine learning readily available, without requiring expertise in cryptography, distributed systems, or high performance computing.

See below for more background material, explore the examples, or visit the documentation to learn more about how to use the library. You are also more than welcome to join our Slack channel for all questions around use and development.

Website Documentation PyPI CircleCI Badge

Installation

TF Encrypted is available as a package on PyPI supporting Python 3.5+ and TensorFlow 1.12.0+:

pip install tf-encrypted

Creating a conda environment to run TF Encrypted code can be done using:

conda create -n tfe python=3.6
conda activate tfe
conda install tensorflow notebook
pip install tf-encrypted

Alternatively, installing from source can be done using:

git clone https://github.com/tf-encrypted/tf-encrypted.git
cd tf-encrypted
pip install -e .
make build

This latter is useful on platforms for which the pip package has not yet been compiled but is also needed for development. Note that this will get you a working basic installation, yet a few more steps are required to match the performance and security of the version shipped in the pip package, see the installation instructions.

Usage

The following is an example of simple matmul on encrypted data using TF Encrypted:

import tensorflow as tf
import tf_encrypted as tfe

@tfe.local_computation('input-provider')
def provide_input():
    # normal TensorFlow operations can be run locally
    # as part of defining a private input, in this
    # case on the machine of the input provider
    return tf.ones(shape=(5, 10))

# define inputs
w = tfe.define_private_variable(tf.ones(shape=(10,10)))
x = provide_input()

# define computation
y = tfe.matmul(x, w)

with tfe.Session() as sess:
    # initialize variables
    sess.run(tfe.global_variables_initializer())
    # reveal result
    result = sess.run(y.reveal())

For more information, check out the documentation or the examples.

Roadmap

  • High-level APIs for combining privacy and machine learning. So far TF Encrypted is focused on its low-level interface but it's time to figure out what it means for interfaces such as Keras when privacy enters the picture.

  • Tighter integration with TensorFlow. This includes aligning with the upcoming TensorFlow 2.0 as well as figuring out how TF Encrypted can work closely together with related projects such as TF Privacy and TF Federated.

  • Support for third party libraries. While TF Encrypted has its own implementations of secure computation, there are other excellent libraries out there for both secure computation and homomorphic encryption. We want to bring these on board and provide a bridge from TensorFlow.

Background & Further Reading

Blog posts:

Papers:

Presentations:

Other:

Development and Contribution

TF Encrypted is open source community project developed under the Apache 2 license and maintained by a set of core developers. We welcome contributions from all individuals and organizations, with further information available in our contribution guide. We invite any organizations interested in partnering with us to reach out via email or Slack.

Don't hesitate to send a pull request, open an issue, or ask for help! You can do so either via GitHub or in our Slack channel. We use ZenHub to plan and track GitHub issues and pull requests.

Individual contributions

We appreciate the efforts of all contributors that have helped make TF Encrypted what it is! Below is a small selection of these, generated by sourcerer.io from most recent stats:

Organizational contributions

We are very grateful for the significant contributions made by the following organizations!

Cape Privacy Alibaba Security Group OpenMined

Project Status

TF Encrypted is experimental software not currently intended for use in production environments. The focus is on building the underlying primitives and techniques, with some practical security issues postponed for a later stage. However, care is taken to ensure that none of these represent fundamental issues that cannot be fixed as needed.

Known limitations

  • Elements of TensorFlow's networking subsystem does not appear to be sufficiently hardened against malicious users. Proxies or other means of access filtering may be sufficient to mitigate this.

Support

Please open an issue, reach out directly on Slack, or send an email to [email protected].

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].