From 976ffa0279b884e6bc8398a67508edcf9042954f Mon Sep 17 00:00:00 2001 From: Sam Hadow Date: Wed, 30 Apr 2025 16:31:04 +0200 Subject: [PATCH] fix asymmetric encryption --- src/dghv_asym.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/dghv_asym.rs b/src/dghv_asym.rs index ddcc457..f74b1b9 100644 --- a/src/dghv_asym.rs +++ b/src/dghv_asym.rs @@ -1,5 +1,5 @@ use crate::dghv::{encrypt_bit, generate_secret_key}; -use crate::utils::generate_random_integer; +use crate::utils::generate_random_odd_integer; use rand::rngs::StdRng; use rand::Rng; use rand::SeedableRng; @@ -49,7 +49,7 @@ pub fn encrypt_bit_asym(m: u8, pk: &PublicKey, rho: u32) -> Integer { } // noise - let r = generate_random_integer(rho); + let r = generate_random_odd_integer(rho); let mut c = Integer::from(m); c += Integer::from(2) * r; c += sum; @@ -86,14 +86,16 @@ mod tests { fn test_encrypt_decrypt_bit() { let eta: u32 = 1024; let gamma: u32 = 2048; - let theta: usize = 128; + let theta: usize = 10; let rho: u32 = 128; let (sk, pk) = generate_keys(gamma, eta, rho, theta); - for &m in &[0u8, 1u8] { - let c = encrypt_bit_asym(m, &pk, rho); - let m2 = decrypt_bit(&c, &sk.p); - assert_eq!(m, m2); + for _ in 0..=10000 { + for &m in &[0u8, 1u8] { + let c = encrypt_bit_asym(m, &pk, rho); + let m2 = decrypt_bit(&c, &sk.p); + assert_eq!(m, m2); + } } } }