mirror of
https://github.com/arnaucube/phantom-zone.git
synced 2026-01-07 22:51:29 +01:00
clean a bit
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -169,7 +169,7 @@ fn round_value<T: PrimInt>(value: T, ignore_bits: usize) -> T {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use num_traits::Float;
|
||||
|
||||
use rand::{thread_rng, Rng};
|
||||
|
||||
use crate::{
|
||||
|
||||
Reference in New Issue
Block a user