|
ABY Framework
1.0
Arithmetic Bool Yao Framework
|
A library implementing the Damgaard Jurik Nielsen cryptosystem with s=1 (Same properties as Paillier, but more efficient). based on:
libdjn - A library implementing the Paillier cryptosystem. (http://hms.isi.jhu.edu/acsc/libdjn/)
More...


Go to the source code of this file.
Classes | |
| struct | djn_pubkey_t |
| struct | djn_prvkey_t |
Macros | |
| #define | PAILLIER_BITS_TO_BYTES(n) ((n) % 8 ? (n) / 8 + 1 : (n) / 8) |
Typedefs | |
| typedef void(* | djn_get_rand_t )(void *buf, int len) |
Functions | |
| void | djn_keygen (unsigned int modulusbits, djn_pubkey_t **pub, djn_prvkey_t **prv) |
| void | djn_encrypt (mpz_t res, djn_pubkey_t *pub, mpz_t pt, gmp_randstate_t rnd) |
| void | djn_encrypt_crt (mpz_t res, djn_pubkey_t *pub, djn_prvkey_t *prv, mpz_t pt, gmp_randstate_t rnd) |
| void | djn_encrypt_fb (mpz_t res, djn_pubkey_t *pub, mpz_t plaintext, gmp_randstate_t rnd) |
| void | djn_decrypt (mpz_t res, djn_pubkey_t *pub, djn_prvkey_t *prv, mpz_t ct) |
| char * | djn_pubkey_to_hex (djn_pubkey_t *pub) |
| char * | djn_prvkey_to_hex (djn_prvkey_t *prv) |
| djn_pubkey_t * | djn_pubkey_from_hex (char *str) |
| djn_prvkey_t * | djn_prvkey_from_hex (char *str, djn_pubkey_t *pub) |
| void | djn_freepubkey (djn_pubkey_t *pub) |
| void | djn_freeprvkey (djn_prvkey_t *prv) |
| void | djn_pow_mod_n_crt (mpz_t res, const mpz_t b, const mpz_t e, const djn_pubkey_t *pub, const djn_prvkey_t *prv) |
| void | djn_pow_mod_n_squared_crt (mpz_t res, const mpz_t b, const mpz_t e, const djn_pubkey_t *pub, const djn_prvkey_t *prv) |
| void | djn_complete_pubkey (unsigned int modulusbits, djn_pubkey_t **pub, mpz_t n, mpz_t h) |
A library implementing the Damgaard Jurik Nielsen cryptosystem with s=1 (Same properties as Paillier, but more efficient). based on:
libdjn - A library implementing the Paillier cryptosystem. (http://hms.isi.jhu.edu/acsc/libdjn/)
| void djn_complete_pubkey | ( | unsigned int | modulusbits, |
| djn_pubkey_t ** | pub, | ||
| mpz_t | n, | ||
| mpz_t | h | ||
| ) |
create full public key given only n and h (e.g., after a key exchange)
| void djn_decrypt | ( | mpz_t | res, |
| djn_pubkey_t * | pub, | ||
| djn_prvkey_t * | prv, | ||
| mpz_t | ciphertext | ||
| ) |
decrypt, using CRT, assumes res to be initialized
| void djn_encrypt | ( | mpz_t | res, |
| djn_pubkey_t * | pub, | ||
| mpz_t | plaintext, | ||
| gmp_randstate_t | rnd | ||
| ) |
encrypt plaintext to res
| void djn_encrypt_crt | ( | mpz_t | res, |
| djn_pubkey_t * | pub, | ||
| djn_prvkey_t * | prv, | ||
| mpz_t | plaintext, | ||
| gmp_randstate_t | rnd | ||
| ) |
encrypt plaintext using crt if private key is known
| void djn_encrypt_fb | ( | mpz_t | res, |
| djn_pubkey_t * | pub, | ||
| mpz_t | plaintext, | ||
| gmp_randstate_t | rnd | ||
| ) |
fixed base encryption. Requires pre-computed fixed base table.
mpz_t version of encrypt_crt
1.8.8