Browse Source

clean a bit

par-agg-key-shares
Janmajaya Mall 10 months ago
parent
commit
0583c9ba40
3 changed files with 3 additions and 160 deletions
  1. +0
    -144
      src/bool/evaluator.rs
  2. +2
    -15
      src/bool/noise.rs
  3. +1
    -1
      src/decomposer.rs

+ 0
- 144
src/bool/evaluator.rs

@ -1384,75 +1384,8 @@ mod tests {
let m_out = !(m0 && m1);
// Trace and measure PBS noise
{
let noise0 = {
let ideal = if m0 {
bool_evaluator.pbs_info.parameters.rlwe_q().true_el()
} else {
bool_evaluator.pbs_info.parameters.rlwe_q().false_el()
};
let n = measure_noise_lwe(
&ct0,
client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
&ideal,
);
let v = decrypt_lwe(
&ct0,
client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
);
(n, v)
};
let noise1 = {
let ideal = if m1 {
bool_evaluator.pbs_info.parameters.rlwe_q().true_el()
} else {
bool_evaluator.pbs_info.parameters.rlwe_q().false_el()
};
let n = measure_noise_lwe(
&ct1,
client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
&ideal,
);
let v = decrypt_lwe(
&ct1,
client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
);
(n, v)
};
// Calculate noise in ciphertext post PBS
let noise_out = {
let ideal = if m_out {
bool_evaluator.pbs_info.parameters.rlwe_q().true_el()
} else {
bool_evaluator.pbs_info.parameters.rlwe_q().false_el()
};
let n = measure_noise_lwe(
&ct_back,
client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
&ideal,
);
let v = decrypt_lwe(
&ct_back,
client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
);
(n, v)
};
dbg!(m0, m1, m_out);
println!(
"ct0 (noise, message): {:?} \n ct1 (noise, message): {:?} \n PBS (noise, message): {:?}", noise0, noise1, noise_out
);
}
let m_back = bool_evaluator.sk_decrypt(&ct_back, &client_key);
assert!(m_out == m_back, "Expected {m_out}, got {m_back}");
println!("----------");
m1 = m0;
m0 = m_out;
@ -1521,8 +1454,6 @@ mod tests {
});
});
println!("{:?}", &ideal_rlwe_sk);
let mut m = true;
for i in 0..100 {
let pk_cr_seed = [0u8; 32];
@ -1709,81 +1640,6 @@ mod tests {
let m_expected = !(m0 & m1);
// measure noise
{
let noise0 = {
let ideal = if m0 {
bool_evaluator.pbs_info.rlwe_q().true_el()
} else {
bool_evaluator.pbs_info.rlwe_q().false_el()
};
let n = measure_noise_lwe(
&lwe0,
ideal_client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
&ideal,
);
let v = decrypt_lwe(
&lwe0,
ideal_client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
);
(n, v)
};
let noise1 = {
let ideal = if m1 {
bool_evaluator.pbs_info.rlwe_q().true_el()
} else {
bool_evaluator.pbs_info.rlwe_q().false_el()
};
let n = measure_noise_lwe(
&lwe1,
ideal_client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
&ideal,
);
let v = decrypt_lwe(
&lwe1,
ideal_client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
);
(n, v)
};
// // Trace PBS
// PBSTracer::with_local(|t| {
// t.trace(
// &MP_BOOL_PARAMS,
// &ideal_client_key.sk_lwe.values(),
// &ideal_client_key.sk_rlwe.values(),
// )
// });
let noise_out = {
let ideal_m = if m_expected {
bool_evaluator.pbs_info.rlwe_q().true_el()
} else {
bool_evaluator.pbs_info.rlwe_q().false_el()
};
let n = measure_noise_lwe(
&lwe_out,
ideal_client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
&ideal_m,
);
let v = decrypt_lwe(
&lwe_out,
ideal_client_key.sk_rlwe().values(),
&bool_evaluator.pbs_info.rlwe_modop,
);
(n, v)
};
dbg!(m0, m1, m_expected);
println!(
"ct0 (noise, message): {:?} \n ct1 (noise, message): {:?} \n PBS (noise, message): {:?}", noise0, noise1, noise_out
);
}
// multi-party decrypt
let decryption_shares = parties
.iter()

+ 2
- 15
src/bool/noise.rs

@ -92,28 +92,15 @@ mod test {
let mut c_m0 = evaluator.pk_encrypt(pk.key(), m0);
let mut c_m1 = evaluator.pk_encrypt(pk.key(), m1);
// println!(
// "Evaluator ciphertext modulus: {:?}",
// evaluator.parameters().rlwe_q()
// );
// {
// // let v = LWE_VEC.take();
// let added = decrypt_lwe(
// &c_m1,
// ideal_client_key.sk_rlwe().values(),
// evaluator.pbs_info().modop_rlweq(),
// );
// println!("Of interest {added}");
// }
let true_el_encoded = evaluator.parameters().rlwe_q().true_el();
let false_el_encoded = evaluator.parameters().rlwe_q().false_el();
let mut stats = Stats::new();
for _ in 0..1000 {
// let now = std::time::Instant::now();
let c_out = evaluator.xor(&c_m0, &c_m1, &server_key_eval_domain);
// println!("Gate time: {:?}", now.elapsed());
// mp decrypt
let decryption_shares = cks

+ 1
- 1
src/decomposer.rs

@ -169,7 +169,7 @@ fn round_value(value: T, ignore_bits: usize) -> T {
#[cfg(test)]
mod tests {
use num_traits::Float;
use rand::{thread_rng, Rng};
use crate::{

Loading…
Cancel
Save