https://github.com/openmined/pyfe
A library for running Functional Encryption on tensors
https://github.com/openmined/pyfe
Last synced: 12 months ago
JSON representation
A library for running Functional Encryption on tensors
- Host: GitHub
- URL: https://github.com/openmined/pyfe
- Owner: OpenMined
- License: apache-2.0
- Created: 2020-05-22T15:24:37.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-01-05T12:20:47.000Z (over 5 years ago)
- Last Synced: 2025-06-07T00:39:49.422Z (about 1 year ago)
- Language: Python
- Size: 23.4 KB
- Stars: 44
- Watchers: 5
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PyFE
A library for running Functional Encryption on tensors
## What is Functional Encryption?
Functional encryption (FE) is a generalization of public-key encryption in which possessing a secret key allows one to learn a function of what the ciphertext is encrypting. Functional encryption extends the notion of public key encryption where one uses a public key `pk` and a secret key `sk` to respectively encrypt and decrypt some data. More precisely, `pk` is still used to encrypt data, but for a given function f, `sk` can be used to derive a functional decryption key `dkf`
which will be shared to users so that, given a ciphertext of `x`, they can decrypt `f(x)` but not `x`. In
particular, someone having access to `dkf` cannot learn anything about `x` other than `f(x)`. Note also
that functions cannot be composed, since the decryption happens within the function evaluation.
Hence, only single quadratic functions can be currently securely evaluated.
**Perfect correctness**: Perfect correctness is achieved in functional encryption: ∀x ∈ X , f ∈ F,
Pr[Dec(dkf , ct) = f(x)] = 1, where dkf ← KeyGen(msk, f) and ct ← Enc(pk, x). Note that this
property is a very strict condition, which is not satisfied by exisiting fully homomorphic encryption
schemes (FHE),
## How it helps in deep learning ?
It will mask the private data and allow to evaluate a pre-trained model thanks to its decryption key `dkf`
## Installation
```
pip install PyFE
```
# Usage
[] to do