1个不稳定版本

0.1.0 2020年3月25日

#2084 in 密码学

GPL-3.0许可证

33KB
891

gmorph

gWasm的全同态加密库。

Crates.io version Download docs.rs docs

gMorph完全使用Rust编写,旨在轻松交叉编译为WebAssembly,以便在gWasm中使用。

免责声明

gMorph非常实验性,因此可能会出现意外问题。此外,请注意,我们对加密方案的安全性不做任何声明。这项工作作为FHE在gWASM上的概念验证提供,基本上用于演示目的。如果您发现一个错误,请在此处提交错误报告这里

# Cargo.toml
[dependencies]
gmorph = "0.1"

示例使用

use gmorph::*;
use num_traits::Zero;

let key_pair = KeyPair::default();
let enc: Vec<_> = (1..10)
    .map(|x| Encoded::encode(x).encrypt(&key_pair))
    .collect();
let enc = enc.into_iter().fold(Encoded::zero(), |acc, x| acc + x);
let given = enc.decrypt(&key_pair).decode();
let expected: u32 = (1..10).sum();

assert_eq!(expected, given, "the sums should be equal, and equal to 45");

示例

您可以在examples文件夹中找到更多示例。例如,要运行examples/simple_mul.rs,请调用

cargo run --release --example simple_mul

依赖关系

~5.5MB
~109K SLoC