Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/facebookresearch/Cupcake
A Rust library for lattice-based additive homomorphic encryption.
https://github.com/facebookresearch/Cupcake
Last synced: 3 months ago
JSON representation
A Rust library for lattice-based additive homomorphic encryption.
- Host: GitHub
- URL: https://github.com/facebookresearch/Cupcake
- Owner: facebookresearch
- License: mit
- Created: 2021-03-03T19:38:04.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-29T16:24:59.000Z (about 1 year ago)
- Last Synced: 2024-06-29T10:34:56.779Z (4 months ago)
- Language: Rust
- Size: 128 KB
- Stars: 400
- Watchers: 13
- Forks: 31
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-fhe - Cupcake - Facebook's Rust library for the (additive version of the) Fan-Vercauteren scheme. (Libraries / [Sunscreen](https://sunscreen.tech/))
- awesome-list - Cupcake - based additive homomorphic encryption. | facebookresearch | 294 | (Rust)
- awesome-he - Cupcake - Facebook's Rust library for the (additive version of the) Fan-Vercauteren scheme. (Libraries)
README
# Cupcake
Cupcake is an efficient Rust library for the (additive version of) Fan-Vercauteren homomorphic encryption scheme, offering capabilities to
encrypt vectors, add/subtract two encrypted vectors, and rerandomize a ciphertext.## Requirements
Cupcake requires or works with
* Mac OS X or Linux## Installation
Add the following line to the dependencies of your Cargo.toml:
```
Cupcake = "0.2.1"
```## Building from source
```bash
git clone https://github.com/facebookresearch/Cupcake
cd cupcake
cargo build --release
```## Examples
Several examples are included in `examples/.rs`, and can be run via
`cargo run --example `## Documentation
Documentation on the API can be built from `cargo doc`.
## Benchmarks and Tests
We have included benchmarks and tests for both homomorphic operations and underlying arithmetic operations. They can be run using `cargo bench` and `cargo test`.
## Supported parameters
Currently, we provide only one set of secure parameter, namely `FV::::default_2048();`. This parameter set has an estimated security level of about 128 bits according
to the homomorphic encryption security standards [link](http://homomorphicencryption.org/wp-content/uploads/2018/11/HomomorphicEncryptionStandardv1.1.pdf). Use other parameters at your own risk! With the default parameter set, the plaintext type is vector of `u8` with a fixed length 2048.## References
- [The Fan-Vercauteren scheme](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.400.6346&rep=rep1&type=pdf)
See the [CONTRIBUTING](CONTRIBUTING.md) file for how to help out.
## License
Cupcake is MIT licensed, as found in the LICENSE file.