odd random only

This commit is contained in:
2025-05-26 09:29:20 +02:00
parent 9346355406
commit 9bf891bf8b

View File

@ -4,11 +4,11 @@ use rug::{Assign, Integer};
pub fn encrypt_bit(bit: u8, key: &Integer, gamma: u32, rho: u32) -> Integer {
assert!(bit == 0 || bit == 1, "Only bits (0 or 1) are allowed");
let q: Integer = generate_random_integer(gamma);
let q: Integer = generate_random_odd_integer(gamma);
// noise
let p_div_4: Integer = key.clone() / 4;
let r = std::iter::repeat_with(|| generate_random_integer(rho))
let r = std::iter::repeat_with(|| generate_random_odd_integer(rho))
.find(|r| r.clone() * 2 < p_div_4)
.unwrap();