correct noise values
This commit is contained in:
16
src/dghv.rs
16
src/dghv.rs
@ -43,28 +43,28 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_encrypt_decrypt_bit() {
|
||||
let eta = 64;
|
||||
let eta = 10000;
|
||||
let key = generate_secret_key(eta);
|
||||
|
||||
let bit = 0;
|
||||
let ciphertext = encrypt_bit(bit, &key, 128, 61);
|
||||
let ciphertext = encrypt_bit(bit, &key, 100, 100);
|
||||
let decrypted = decrypt_bit(&ciphertext, &key);
|
||||
assert_eq!(decrypted, bit);
|
||||
|
||||
let bit = 1;
|
||||
let ciphertext = encrypt_bit(bit, &key, 128, 61);
|
||||
let ciphertext = encrypt_bit(bit, &key, 100, 100);
|
||||
let decrypted = decrypt_bit(&ciphertext, &key);
|
||||
assert_eq!(decrypted, bit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_multiple_encryptions_are_different() {
|
||||
let eta = 64;
|
||||
let eta = 10000;
|
||||
let key = generate_secret_key(eta);
|
||||
|
||||
let bit = 1;
|
||||
let c1 = encrypt_bit(bit, &key, 128, 61);
|
||||
let c2 = encrypt_bit(bit, &key, 128, 61);
|
||||
let c1 = encrypt_bit(bit, &key, 100, 100);
|
||||
let c2 = encrypt_bit(bit, &key, 100, 100);
|
||||
|
||||
assert_ne!(c1, c2);
|
||||
assert_eq!(decrypt_bit(&c1, &key), bit);
|
||||
@ -77,8 +77,8 @@ mod tests {
|
||||
let key = generate_secret_key(eta);
|
||||
|
||||
for &(b1, b2) in &[(0, 0), (0, 1), (1, 0), (1, 1)] {
|
||||
let c1 = encrypt_bit(b1, &key, 4096, 512);
|
||||
let c2 = encrypt_bit(b2, &key, 4096, 512);
|
||||
let c1 = encrypt_bit(b1, &key, 45, 45);
|
||||
let c2 = encrypt_bit(b2, &key, 45, 45);
|
||||
|
||||
let sum: Integer = c1.clone() + &c2;
|
||||
let product: Integer = c1 * c2;
|
||||
|
@ -69,10 +69,9 @@ mod tests {
|
||||
#[test]
|
||||
fn test_key_generation_properties() {
|
||||
let eta: u32 = 10000;
|
||||
let gamma: u32 = 11000;
|
||||
let theta: usize = 5;
|
||||
let rho: u32 = 16;
|
||||
let (sk, pk) = generate_keys(gamma, eta, rho, theta);
|
||||
let rho: u32 = 100;
|
||||
let (sk, pk) = generate_keys(rho, eta, rho, theta);
|
||||
|
||||
assert_eq!(sk.p.significant_bits(), eta);
|
||||
assert!(sk.p.is_odd());
|
||||
@ -90,12 +89,11 @@ mod tests {
|
||||
use rayon::prelude::*;
|
||||
|
||||
let eta: u32 = 10000;
|
||||
let gamma: u32 = 11000;
|
||||
let theta: usize = 50;
|
||||
let rho: u32 = 128;
|
||||
let rho: u32 = 100;
|
||||
|
||||
(0..=127).into_par_iter().for_each(|_| {
|
||||
let (sk, pk) = generate_keys(gamma, eta, rho, theta);
|
||||
let (sk, pk) = generate_keys(rho, eta, rho, theta);
|
||||
for &m in &[0u8, 1u8] {
|
||||
let c = encrypt_bit_asym(m, &pk, rho);
|
||||
let m2 = decrypt_bit(&c, &sk.p);
|
||||
|
@ -5,13 +5,13 @@ mod utils;
|
||||
use crate::dghv::{decrypt_bit, encrypt_bit, generate_secret_key};
|
||||
|
||||
fn main() {
|
||||
let eta = 10000;
|
||||
let eta = 6400;
|
||||
let secret_key = generate_secret_key(eta);
|
||||
|
||||
let bit = 1;
|
||||
let ciphertext = encrypt_bit(bit, &secret_key, 10000, 512);
|
||||
let ciphertext = encrypt_bit(bit, &secret_key, 80, 80);
|
||||
let decrypted = decrypt_bit(&ciphertext, &secret_key);
|
||||
let opx2 = ciphertext.clone() * encrypt_bit(1, &secret_key, 10000, 512);
|
||||
let opx2 = ciphertext.clone() * encrypt_bit(1, &secret_key, 80, 80);
|
||||
let decrypted_opx2 = decrypt_bit(&opx2, &secret_key);
|
||||
|
||||
println!("clear bit (b): {}", bit);
|
||||
|
Reference in New Issue
Block a user