number generation

This commit is contained in:
2025-04-30 15:10:44 +02:00
parent 9fa9f4a8bc
commit f15cd646c6
4 changed files with 18 additions and 12 deletions

View File

@ -1,16 +1,21 @@
mod dghv;
mod dghv_asym;
mod utils;
use crate::dghv::{decrypt_bit, encrypt_bit, generate_secret_key};
fn main() {
let eta = 64;
let eta = 10000;
let secret_key = generate_secret_key(eta);
let bit = 1;
let ciphertext = encrypt_bit(bit, &secret_key);
let ciphertext = encrypt_bit(bit, &secret_key, 10000, 512);
let decrypted = decrypt_bit(&ciphertext, &secret_key);
let opx2 = ciphertext.clone() * encrypt_bit(1, &secret_key, 10000, 512);
let decrypted_opx2 = decrypt_bit(&opx2, &secret_key);
println!("clear bit (b): {}", bit);
println!("Secret key (p): {}", secret_key);
println!("Encrypted bit (c): {}", ciphertext);
println!("decrypted bit : {}", decrypted);
println!("decrypted bit AND 1: {}", decrypted_opx2);
}

View File

@ -4,9 +4,15 @@ use rand::SeedableRng;
use rug::Integer;
pub fn generate_random_odd_integer(num_bits: u32) -> Integer {
std::iter::repeat_with(|| generate_random_integer(num_bits))
.find(|p: &Integer| p.is_odd())
.unwrap()
let mut rng = StdRng::from_os_rng();
let mut x = Integer::from(1);
for _ in 1..(num_bits-1) {
x <<= 1;
x += rng.random_range(0..=1);
}
x <<= 1;
x += 1;
x
}
pub fn generate_random_integer(num_bits: u32) -> Integer {