decrypt

Function decrypt 

Source
pub fn decrypt(
    sk: &Vec<Polynomial<i64>>,
    u: &Vec<Polynomial<i64>>,
    v: &Polynomial<i64>,
    params: &Parameters,
) -> Vec<i64>
Expand description

Decrypt a ciphertext

§Arguments

  • sk - secret key
  • q - ciphertext modulus
  • f - polynomial modulus
  • u - ciphertext vector
  • v - ciphertext polynomial

§Returns

  • decrypted_coeffs - plaintext vector

§Example

let params = module_lwe::utils::Parameters::default();
let (pk,sk) = module_lwe::keygen::keygen(&params, None);
let mut m_b = vec![0,1,0,1,0,0,1,1,1,0,1];
m_b.resize(params.n, 0);
let (u, v) = module_lwe::encrypt::encrypt(&pk.0, &pk.1, &m_b, &params, None);
let decrypted_coeffs = module_lwe::decrypt::decrypt(&sk, &u, &v, &params);
assert_eq!(m_b, decrypted_coeffs);