CiFEr
|
Fully secure schemes for functional encryption of inner products. More...
Files | |
file | damgard.h |
Damgard scheme. | |
file | damgard_dec_multi.h |
Damgard style decentralized multi input scheme. The decentralization is based on paper by Abdalla, Benhamouda, Kohlweiss, and Waldner: "Decentralizing Inner-Product Functional Encryption". The participants in the scheme are clients without a central authority. They interactively generate private keys for each client so that client i can encrypt vector x_i. The scheme allows the clients to interactively generate a key_Y, depending on a matrix Y with rows y_i, so that given key_Y and the ciphertexts the decryptor can compute value Σ_i <x_i, y_i> (sum of dot products). | |
file | damgard_multi.h |
Damgard multi input scheme. | |
file | dmcfe.h |
Decentralized multi-client inner-product scheme based on the paper "Decentralized Multi-Client Functional Encryption for Inner Product" by Chotard, Dufour Sans, Gay, Phan, and Pointcheval. | |
file | fh_multi_ipe.h |
// FH-Multi-IPE represents a Function Hiding Multi-client Inner Product Encryption scheme based on the paper by P. Datta, T. Okamoto, and J. Tomida: "Full-Hiding (Unbounded) Multi-Input Inner Product Functional Encryption
from the 𝒌-Linear Assumption". It allows clients to encrypt vectors {x_1,...,x_m} and derive a secret key based on an inner product vectors {y_1,...,y_m} so that a decryptor can decrypt the sum of inner products <x_1,y_1> + ... + <x_m, y_m> without revealing vectors x_i or y_i. The scheme is slightly modified from the original one to achieve a better performance. The difference is in storing the secret master key as matrices B_hat, B_hat_star, instead of matrices of elliptic curve elements g_1^B_hat, g_2^B_hat_star. This replaces elliptic curves operations with matrix multiplications. | |
file | fhipe.h |
// FHIPE represents a Function Hiding Inner Product Encryption scheme based on the paper by Kim, Lewi, Mandal, Montgomery, Roy, Wu: "Function-Hiding Inner Product Encryption is Practical". It allows to encrypt a vector x and derive a secret key based on an inner product vector y so that a deryptor can decrypt the inner product <x,y> without revealing x or y. | |
file | lwe_fs.h |
LWE scheme. | |
file | paillier.h |
Paillier scheme. | |
Fully secure schemes for functional encryption of inner products.
All implementations in this package are based on the reference paper by Agrawal, Libert and Stehlé (see https://eprint.iacr.org/2015/608.pdf), and offer adaptive security under chosen-plaintext attacks (IND-CPA security).
The reference scheme is public key, which means that no master secret key is required for the encryption.
For instantiation from the decisional Diffie-Hellman assumption (DDH), see struct damgard (and its multi-input variant damgard_multi, which is a secret key scheme, because a part of the secret key is required for the encryption).
For instantiation from learning with errors (LWE), see struct lwe_fs.