Configuration options¶
A key generator takes its configuration as a mapping of options; it is converted into the config class of its scheme (pyfe4ai.core.config) and completed by its security profile before the key generator is built. Crypto objects take their config as given. Options not listed are ignored.
Server and client ids¶
A server id (an entry of lst_sid) or a client id (an entry of lst_nid) is a str or an int (not a bool; pyfe4ai.core.ids), and one list holds ids of one of the two types. A key generator (and FESchemeWrapper) refuses with FEValidationError a list of other values (bytes, floats, None, bool, tuples, numpy integers), a list that mixes str and int ids (JSON names 1 and "1" alike) and a value that is not a list or tuple (a string, a set, a dict): convert numpy integers with int(), other ids with str(). Partial decryptions, key shares, EncryptedGradient and ThresholdPartial carry ids of these two types only.
After setup, wherever an id is given – the server or client named when keys are issued, a crypto object’s id, the enrolled servers of share_decrypt, servers= and server= of the ML adapter, nid= of encrypt_gradient, the keys of the weights and encrypted gradients the adapter aggregates, the ids of partial decryptions and gradients read back – a numpy integer (numpy.integer) is read as the int it equals (list(rng.choice(lst_sid, t, replace=False)) gives such ids), so that key shares, partial decryptions and gradients carry plain ints. Other values that equal an id (1.0, True, numpy.bool_) are no ids: the key generators issue no key share and no encryption key for them (None, as for an unknown server or client), a server refuses an enrolled set that holds one, or an id that is one, and the ML adapter refuses such servers and such keys – before anything is computed.
JSON writes an integer that keys an object as a string (1 becomes "1"). The ML adapter reads integer ids back from the JSON of its records (EncryptedGradient, ThresholdPartial), and a threshold server finds its tag in a ciphertext that went through JSON; an application that moves other objects keyed by ids through JSON itself (key shares, the ciphertexts of a request as {nid: ciphertext}) uses string ids.
Security profiles¶
security_profile = 'toy' (the default) uses the config as given. 'standard' sets the minima below where the config has no value and refuses weaker ones (FEValidationError); see pyfe4ai.core.profiles.
kind |
schemes |
under |
|---|---|---|
dcr |
|
|
dl |
|
|
ec |
|
nothing to set |
lwe |
|
|
lwe_abdp15 |
|
|
lwe_matrix |
|
refused |
pairing |
|
|
ring_lwe |
|
|
Refused under standard (FEValidationError):
sife/fullysec_lwe,mife/fullysec_lwe: at a 128-bit dimension (lwe_n = 3328 to 4352 for X = Y <= 50, eta <= 10) its public matrix has 1 to 2*10^10 entries and every ciphertext m = 4 n log2 q = 2.9 to 4.5*10^6 coordinates of 219 to 258 bits (80 to 145 MB); use sife/fullysec_ring_lwe for adaptive security, or the Ring-LWE scheme of the same family.mife/lwe_threshold: read at the width sigma / (1 + 4 X sqrt(eta)) of its security reduction, the LWE of its flooding-enlarged q (stat_param 128) needs a dimension at the very end of the 128-bit table (5888 to 6144, a public matrix of 6.5 to 7.8*10^9 entries) for a few small bounds, e.g. X = Y in {1, 2, 3, 8, 10} at eta = 1, and beyond it for most others (X = Y = 4 to 6, X = Y >= 12, most eta >= 2; about 6500 for X = Y = 50); use mife/ddh_threshold, or mcfe/ring_lwe_threshold with labels.mcfe/paillier_decentralized: its key shares would be combined under a DCR modulus of more than 15000 bits; use mcfe/ddh_decentralized.
Refused and constrained combinations¶
schemes |
options |
outcome |
|---|---|---|
pairing schemes |
|
|
|
|
|
Ring-LWE schemes |
|
|
LWE schemes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
any |
|
threshold schemes |
|
|
threshold LWE / Ring-LWE servers (crypto) |
a Shamir key share with |
|
|
|
|
DDH schemes |
|
|
|
|
|
|
|
|
decentralised MCFE (DDH, DCR, LWE, Ring-LWE, FH) |
|
|
|
|
|
|
no |
|
Damgard and Paillier schemes |
bounds too large for the modulus ( |
|
|
|
|
|
|
|
pairing and quadratic schemes |
a discrete-log bound above |
|
Options of every key generator¶
option |
meaning |
default |
accepted |
|---|---|---|---|
security_profile |
|
|
|
sec_param |
the DDH modulus bits, the Ring-LWE kappa, or only recorded (the scheme says which) |
|
|
stat_param |
statistical parameter of the schemes that use one |
unused |
an int of at most 256 |
n |
number of clients (slots) |
– |
|
s |
number of decryption servers (threshold schemes) |
– |
|
lst_nid |
client ids |
|
|
cache_dir |
parameter cache directory |
|
a non-empty path |
Crypto objects take:
option |
meaning |
default |
accepted |
|---|---|---|---|
keys |
|
– |
a non-empty mapping |
id |
the client or server id |
– |
|
type |
unused |
– |
|
precision |
decimal digits kept when values are scaled to integers |
|
a non-negative int |
cache_dir |
parameter cache directory |
|
a non-empty path |
Options of each scheme¶
The options of every key generator above, where a scheme changes them, and the scheme’s own.
sife/ddh¶
SIFEDDHConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
bits of the safe prime |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
group |
the group (fixed by the scheme) |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
sife/ddh_ristretto255¶
SIFEDDHRistretto255Config; kind ec.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only (the group is fixed) |
|
||
group |
the group (fixed by the scheme) |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
sife/lwe¶
SIFELWEConfig; kind lwe_abdp15.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a non-negative int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
lwe_n |
LWE dimension |
|
|
|
matrix_mode |
how the seeded public matrix |
|
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
the library-wide sampler ( |
|
|
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
matrix_mode |
how the seeded public matrix |
|
|
sife/paillier¶
SIFEPaillierConfig; kind dcr.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
bit_length |
bits of each safe prime of the Paillier modulus |
|
>= |
an int >= 6 large enough that |
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
sife/damgard¶
SIFEDamgardConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
the DDH modulus bits, the Ring-LWE kappa, or only recorded (the scheme says which) |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
modulus_length |
bits of the modulus |
|
>= |
an int >= 3 large enough that |
bound |
bound on the plaintext entries and the weights |
|
a positive int |
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
sife/ring_lwe¶
SIFERingLWEConfig; kind ring_lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
kappa of the BMMS21 widths and noise bound |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
ring_modulus |
ring modulus: an NTT prime, or a product of NTT primes (RNS) |
|
|
|
ring_n |
ring dimension |
32 (also for |
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
gaussian_sampler |
sampler of the encryption noise |
the public parameters’ sampler, else |
|
sife/fullysec_ring_lwe¶
SIFEFullySecRingLWEConfig; kind ring_lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
kappa of the BMMS21 widths and noise bound |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
ring_modulus |
ring modulus: an NTT prime, or a product of NTT primes (RNS) |
|
|
|
ring_n |
ring dimension |
32 (also for |
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
m |
number of key polynomials |
|
|
|
ndarray_layout |
ndarray ciphertexts: one per element, or packed (one per |
|
|
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
gaussian_sampler |
sampler of the encryption noise |
the public parameters’ sampler, else |
|
sife/fullysec_lwe¶
SIFEFullySecLWEConfig; kind lwe_matrix.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a non-negative int |
|
bound_y |
bound Y on the weights |
|
a non-negative int |
|
lwe_n |
LWE dimension |
|
an int >= 2 |
sife/ddh_dynamic¶
SIFEDDHDynamicConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
bits of the safe prime |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
group |
the group (fixed by the scheme) |
|
|
|
eta |
the largest number of inputs (keys may cover a prefix) |
|
a positive int |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
sife/fh_ipe_pairing¶
SIFEFHIPEPairingConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
sife/part_fh_ipe_pairing¶
SIFEPartFHIPEPairingConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
eta |
inputs per client (the length of each inner product) |
|
an int above |
|
bound |
bound on the plaintext entries and the weights |
|
a positive int |
|
bound_x |
the default of |
|
a positive int |
|
subspace_dim |
dimension |
|
|
|
coeff_bound |
bound on the subspace coefficients of a public encryption |
|
a positive int with |
mife/ddh¶
MIFEDDHConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
bits of the safe prime |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
group |
the group (fixed by the scheme) |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int, or one per client (a dict keyed by |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
mife/ddh_ristretto255¶
MIFEDDHRistretto255Config; kind ec.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only (the group is fixed) |
|
||
group |
the group (fixed by the scheme) |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int, or one per client (a dict keyed by |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
mife/lwe¶
MIFELWEConfig; kind lwe_abdp15.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a non-negative int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
lwe_n |
LWE dimension |
|
|
|
matrix_mode |
how the seeded public matrix |
|
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
the library-wide sampler ( |
|
|
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
matrix_mode |
how the seeded public matrix |
|
|
mife/paillier¶
MIFEPaillierConfig; kind dcr.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
bit_length |
bits of each safe prime of the Paillier modulus |
|
>= |
an int >= 6 large enough that |
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
mife/damgard¶
MIFEDamgardConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
the DDH modulus bits, the Ring-LWE kappa, or only recorded (the scheme says which) |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
modulus_length |
bits of the modulus |
|
>= |
an int >= 3 large enough that |
bound |
bound on the plaintext entries and the weights |
|
a positive int |
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
mife/ring_lwe¶
MIFERingLWEConfig; kind ring_lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
kappa of the BMMS21 widths and noise bound |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
ring_modulus |
ring modulus: an NTT prime, or a product of NTT primes (RNS) |
|
|
|
ring_n |
ring dimension |
32 (also for |
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
gaussian_sampler |
sampler of the encryption noise |
the public parameters’ sampler, else |
|
ct_format |
ciphertext format: JSON lists, or the binary format 1 |
|
|
mife/fullysec_lwe¶
MIFEFullySecLWEConfig; kind lwe_matrix.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a non-negative int |
|
bound_y |
bound Y on the weights |
|
a non-negative int |
|
lwe_n |
LWE dimension |
|
an int >= 2 |
mife/fh_ipe_pairing¶
MIFEFHIPEPairingConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
mife/fh_multi_ipe_pairing¶
MIFEFHMultiIPEPairingConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
n |
number of clients (slots) |
– |
an int >= 2 |
|
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
sec_level |
|
|
a positive int |
mife/ddh_threshold¶
ThresholdMIFEDDHConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
bits of the safe prime |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
s |
number of decryption servers |
|
|
|
t |
threshold: partial decryptions needed to decrypt |
|
|
|
lst_sid |
server ids |
|
|
|
group |
the group (fixed by the scheme) |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int, or one per client (a dict keyed by |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
mife/lwe_threshold¶
ThresholdMIFELWEConfig; kind lwe_abdp15.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
s |
number of decryption servers |
|
|
|
t |
threshold: partial decryptions needed to decrypt |
|
|
|
lst_sid |
server ids |
|
|
|
sharing |
how the functional keys are shared among the servers |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a non-negative int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
lwe_n |
LWE dimension |
|
|
|
matrix_mode |
how the seeded public matrix |
|
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
the library-wide sampler ( |
|
|
flooding_accounting |
accounting of the flooding noise: per sample, or the opt-in KL bound of a run |
|
|
|
max_partial_decryptions |
partial decryptions each server may produce ( |
– |
a positive int with |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
matrix_mode |
how the seeded public matrix |
|
|
legacy_shamir |
a server’s handling of a Shamir key share with |
|
|
partial_budget |
the server’s budget of partial decryptions ( |
– |
a |
mcfe/ddh¶
MCFEDDHConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
bits of the safe prime |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
group |
the group (fixed by the scheme) |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int, or one per client (a dict of |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
mcfe/ddh_ristretto255¶
MCFEDDHRistretto255Config; kind ec.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only (the group is fixed) |
|
||
group |
the group (fixed by the scheme) |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int, or one per client (a dict keyed by |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
mcfe/lwe¶
MCFELWEConfig; kind lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
lwe_n |
LWE dimension |
|
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
label_hash |
hash of the labels onto the key space |
|
|
mcfe/paillier¶
MCFEPaillierConfig; kind dcr.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
bit_length |
bits of each safe prime of the Paillier modulus |
|
>= |
an int >= 6 large enough that |
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
mcfe/damgard¶
MCFEDamgardConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
the DDH modulus bits, the Ring-LWE kappa, or only recorded (the scheme says which) |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
modulus_length |
bits of the modulus |
|
>= |
an int >= 3 large enough that |
bound |
bound on the plaintext entries and the weights |
|
a positive int |
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
mddh_k |
|
|
a positive int |
mcfe/ring_lwe¶
MCFERingLWEConfig; kind ring_lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
kappa of the BMMS21 widths and noise bound |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
ring_modulus |
ring modulus: an NTT prime, or a product of NTT primes (RNS) |
|
|
|
ring_n |
ring dimension |
32 (also for |
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
label_hash |
hash of the labels onto the key space |
|
|
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
gaussian_sampler |
sampler of the encryption noise |
the public parameters’ sampler, else |
|
ct_format |
ciphertext format: JSON lists, or the binary format 1 |
|
|
mcfe/fullysec_lwe¶
MCFEFullySecLWEConfig; kind lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
lwe_n |
LWE dimension |
|
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
label_hash |
hash of the labels onto the key space |
|
|
mcfe/fh_multi_ipe_pairing¶
MCFEFHMultiIPEPairingConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
mcfe/fh_multi_ipe_pairing_threshold¶
ThresholdMCFEFHMultiIPEPairingConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
s |
number of decryption servers |
|
|
|
t |
threshold: partial decryptions needed to decrypt |
|
|
|
lst_sid |
server ids |
|
|
|
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
mcfe/fh_multi_ipe_pairing_decentralized¶
DecentralizedMCFEFHMultiIPEPairingConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
n |
number of clients (slots) |
– |
an int >= 2 (checked by |
|
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
mcfe/ddh_threshold¶
ThresholdMCFEDDHConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
bits of the safe prime |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
s |
number of decryption servers |
|
|
|
t |
threshold: partial decryptions needed to decrypt |
|
|
|
lst_sid |
server ids |
|
|
|
group |
the group (fixed by the scheme) |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
mcfe/ddh_decentralized¶
DecentralizedMCFEDDHConfig; kind dl.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
bits of the safe prime |
|
>= |
|
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
n |
number of clients (slots) |
– |
an int >= 2 |
|
group |
the group (fixed by the scheme) |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int (one for every client) |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
dlog_bound |
bound on |
|
a non-negative int |
mcfe/lwe_threshold¶
ThresholdMCFELWEConfig; kind lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
s |
number of decryption servers |
|
|
|
t |
threshold: partial decryptions needed to decrypt |
|
|
|
lst_sid |
server ids |
|
|
|
sharing |
how the functional keys are shared among the servers |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
lwe_n |
LWE dimension |
|
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
label_hash |
hash of the labels onto the key space |
|
|
|
flooding_accounting |
accounting of the flooding noise: per sample, or the opt-in KL bound of a run |
|
|
|
max_partial_decryptions |
partial decryptions each server may produce ( |
– |
none (the option is refused) |
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
legacy_shamir |
a server’s handling of a Shamir key share with |
|
|
mcfe/lwe_decentralized¶
DecentralizedMCFELWEConfig; kind lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
lwe_n |
LWE dimension |
|
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
label_hash |
hash of the labels onto the key space |
|
|
mcfe/ring_lwe_threshold¶
ThresholdMCFERingLWEConfig; kind ring_lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
kappa of the BMMS21 widths and noise bound |
|
>= |
|
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
s |
number of decryption servers |
|
|
|
t |
threshold: partial decryptions needed to decrypt |
|
|
|
lst_sid |
server ids |
|
|
|
sharing |
how the functional keys are shared among the servers |
|
|
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
ring_modulus |
ring modulus: an NTT prime, or a product of NTT primes (RNS) |
|
|
|
ring_n |
ring dimension |
32 (also for |
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
label_hash |
hash of the labels onto the key space |
|
|
|
flooding_accounting |
accounting of the flooding noise: per sample, or the opt-in KL bound of a run |
|
|
|
max_partial_decryptions |
partial decryptions each server may produce ( |
– |
a positive int with |
|
flooding |
distribution of the flooding noise of the partial decryptions |
|
|
|
ct_format |
ciphertext format (published in the public parameters): binary format 2, or JSON lists |
|
|
|
key_shares |
key shares: a weight part and a label part, or whole key shares per label |
|
|
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
gaussian_sampler |
sampler of the encryption noise |
the public parameters’ sampler, else |
|
ct_format |
ciphertext format (must be the public parameters’) |
the public parameters’ format |
|
legacy_shamir |
a server’s handling of a Shamir key share with |
|
|
partial_budget |
the server’s budget of partial decryptions ( |
– |
a |
mcfe/ring_lwe_decentralized¶
DecentralizedMCFERingLWEConfig; kind ring_lwe.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
kappa of the BMMS21 widths and noise bound |
|
>= |
|
stat_param |
statistical parameter of the schemes that use one |
unused |
>= |
an int of at most 256 |
n |
number of clients (slots) |
– |
an int >= 2 |
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
ring_modulus |
ring modulus: an NTT prime, or a product of NTT primes (RNS) |
|
|
|
ring_n |
ring dimension |
32 (also for |
|
|
gaussian_sampler |
sampler of the Gaussian key noise |
|
|
|
label_hash |
hash of the labels onto the key space |
|
|
Crypto objects also take:
option |
meaning |
default |
accepted |
|---|---|---|---|
gaussian_sampler |
sampler of the encryption noise |
the public parameters’ sampler, else |
|
ct_format |
ciphertext format: JSON lists, or the binary format 1 |
|
|
mcfe/paillier_decentralized¶
DecentralizedMCFEPaillierConfig; kind dcr.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
recorded only ( |
|
||
stat_param |
statistical parameter (rounding, flooding, masks, key widths) |
|
>= |
an int of at most 256 |
n |
number of clients (slots) |
– |
an int >= 2 |
|
bit_length |
bits of each safe prime of the Paillier modulus |
|
>= |
an int >= 6 large enough that |
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_y |
bound Y on the weights |
|
a positive int |
|
eta |
inputs per client (the length of each inner product) |
|
a positive int |
quadratic/quad¶
QuadraticQuadConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
n |
length of |
|
a positive int |
|
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
m |
length of |
|
a positive int |
|
bound |
bound on the entries of |
|
a positive int |
quadratic/sgp¶
QuadraticSGPConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
n |
length of |
|
a positive int |
|
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
eta |
the default of |
|
a positive int |
|
bound |
bound on the entries of |
|
a positive int |
quadratic/miqfe¶
QuadraticMIQFEConfig; kind pairing.
option |
meaning |
default |
|
accepted |
|---|---|---|---|---|
sec_param |
unused (the pairing group fixes the security) |
|
||
n |
number of users |
– |
an int >= 2 (required) |
|
pairing_group_param |
pairing group |
|
|
an asymmetric pairing group (other than BLS12-381: needs charm-crypto) |
m |
inputs per user |
|
a positive int |
|
bound_x |
bound X on the plaintext entries |
|
a positive int |
|
bound_c |
bound on the coefficients of the quadratic function |
|
a positive int |
|
mddh_k |
|
|
an int >= 2 |