Crate she_elgamal

Crate she_elgamal 

Source
Expand description

§ElGamal Encryption

CI crates.io badge Documentation GitHub license codecov dependency status

This crate provides additive homomorphic ElGamal encryption over jubjub curve and also supports fully no_std and parity-scale-codec.

§Specification

Alice has balance $a$ and public key $b$.
She generates the randomness $r$ and computes encrypted balance $(g^r, g^a * b^r)$.
When Bob transfers $c$ to Alice, he generates the randomness $r’$ and computes encrypted transfer amount $(g^{r’}, g^c * b^{r’})$.
The sum of encrypted balance and transfer amount is folloing.

$$ (g^{r + r’}, g^{a + c} * b^{r + r’}) $$

§Test

$ cargo test

Structs§

EncryptedNumber
ElGamal encryption number encrypted supports additive homomorphism. allows perform Enc(a) + Enc(b) = Enc(a + b)

Traits§

ConfidentialTransferPublicInputs
interface for circuit public inputs