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 keyq- ciphertext modulusf- polynomial modulusu- ciphertext vectorv- ciphertext polynomial
§Returns
decrypted_coeffs- plaintext vector
§Example
let params = module_lwe::utils::Parameters::default();
let (pk,sk) = module_lwe::keygen::keygen(¶ms, 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, ¶ms, None);
let decrypted_coeffs = module_lwe::decrypt::decrypt(&sk, &u, &v, ¶ms);
assert_eq!(m_b, decrypted_coeffs);