odd random only
This commit is contained in:
@ -4,11 +4,11 @@ use rug::{Assign, Integer};
|
|||||||
pub fn encrypt_bit(bit: u8, key: &Integer, gamma: u32, rho: u32) -> 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");
|
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
|
// noise
|
||||||
let p_div_4: Integer = key.clone() / 4;
|
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)
|
.find(|r| r.clone() * 2 < p_div_4)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user