arnaucube
arnaucube/phantom-zonePublic Self-hosted repository
clean a bit
Janmajaya Mall janmajayamall@protonmail.com
Tue, 04 Jun 2024 19:29:44 +0530
commit

0583c9ba4034c61be8ac92e5b51eadf074e7f4aa

parent

5a54685737d98453e4ef470fc5901eb004890f13

3 files changed, 3 insertions(+), 160 deletions(-)

jump to
M src/bool/evaluator.rs → src/bool/evaluator.rs

@@ -1384,75 +1384,8 @@ let ct_back = bool_evaluator.nand(&ct0, &ct1, &server_key_eval_domain);

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;

@@ -1520,8 +1453,6 @@ izip!(ideal_rlwe_sk.iter_mut(), k.sk_rlwe().values()).for_each(|(ideal_i, s_i)| {

*ideal_i = *ideal_i + s_i; }); }); - - println!("{:?}", &ideal_rlwe_sk); let mut m = true; for i in 0..100 {

@@ -1708,81 +1639,6 @@ for _ in 0..2000 {

let lwe_out = bool_evaluator.nand(&lwe0, &lwe1, &server_key_eval); 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
M src/bool/noise.rs → src/bool/noise.rs

@@ -92,28 +92,15 @@

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
M src/decomposer.rs → src/decomposer.rs

@@ -169,7 +169,7 @@ }

#[cfg(test)] mod tests { - use num_traits::Float; + use rand::{thread_rng, Rng}; use crate::{