fix asymmetric encryption

This commit is contained in:
2025-04-30 16:31:04 +02:00
parent 98a33dad0d
commit 976ffa0279

View File

@ -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,10 +86,11 @@ 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 _ in 0..=10000 {
for &m in &[0u8, 1u8] {
let c = encrypt_bit_asym(m, &pk, rho);
let m2 = decrypt_bit(&c, &sk.p);
@ -97,3 +98,4 @@ mod tests {
}
}
}
}