About the noise in CONCRETE

Dear everyone,

I’m currently working on some application of CONCRETE and I have a couple of questions about the noise.

  1. How many bits are allocated for the noise when r=32 or 64?

  2. Now, can the number of these bits be public, or is this makes the whole thing not secure for the encryption?

  3. Is it possible to add a second noise to the message and save only one of them?

Hi Ella,

Sorry for the late reply.

  1. Is your ‘r’ referring to the number of bits of the ciphertext modulus? The noise is generally parametered by its standard deviation (or equivalently its variance) since it’s taken from a normal distribution centered in 0. If you want to have some examples of parameters, you can have a look here for a ciphertext modulus over 32 bits, and here for ciphertext modulus over 64 bits.

  2. The noise is a secret random value added to the ciphertexts to ensure the security of the cryptosystem. Its standard deviation is public, but its real value (picked during the encryption) should remain secret.

  3. Sorry, I’m not sure to understand your question here: what do you mean by adding a second noise?

On a side note, the concrete library is replaced by TFHE-rs (sources here and doc here). We strongly advise you to switch to TFHE-rs! The low-level API have been a lot simplified, so it should be easier to work with :wink: