mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-11 07:38:08 -05:00
Compare commits
1 Commits
am/refacto
...
chore/para
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
00fc67e84c |
@@ -5,7 +5,7 @@ use tfhe::integer::block_decomposition::{DecomposableInto, RecomposableFrom};
|
||||
use tfhe::integer::public_key::{CompactPublicKeyBig, CompactPublicKeySmall};
|
||||
use tfhe::integer::{gen_keys, U256};
|
||||
use tfhe::shortint::keycache::NamedParam;
|
||||
use tfhe::shortint::parameters::*;
|
||||
use tfhe::shortint::parameters::parameters_compact_pk::*;
|
||||
|
||||
pub fn main() {
|
||||
fn size_func<Scalar: Numeric + DecomposableInto<u64> + RecomposableFrom<u64> + From<u32>>() {
|
||||
@@ -49,7 +49,7 @@ pub fn main() {
|
||||
}
|
||||
}
|
||||
|
||||
let params = PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK;
|
||||
let params = PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL;
|
||||
{
|
||||
println!("Sizes for: {} and {num_bits} bits", params.name());
|
||||
let (cks, _) = gen_keys(params);
|
||||
|
||||
@@ -3,6 +3,8 @@ pub use crate::core_crypto::commons::dispersion::StandardDev;
|
||||
pub use crate::core_crypto::commons::parameters::{
|
||||
DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweDimension, PolynomialSize,
|
||||
};
|
||||
pub use crate::shortint::parameters::parameters_compact_pk::*;
|
||||
pub use crate::shortint::parameters::*;
|
||||
use std::os::raw::c_int;
|
||||
|
||||
use crate::shortint;
|
||||
@@ -130,7 +132,7 @@ macro_rules! expose_as_shortint_pbs_parameters(
|
||||
$(
|
||||
#[no_mangle]
|
||||
pub static [<SHORTINT_ $param_name>]: ShortintPBSParameters =
|
||||
ShortintPBSParameters::convert(crate::shortint::parameters::$param_name);
|
||||
ShortintPBSParameters::convert($param_name);
|
||||
|
||||
)*
|
||||
}
|
||||
@@ -198,7 +200,7 @@ expose_as_shortint_pbs_parameters!(
|
||||
PARAM_SMALL_MESSAGE_2_CARRY_2,
|
||||
PARAM_SMALL_MESSAGE_3_CARRY_3,
|
||||
PARAM_SMALL_MESSAGE_4_CARRY_4,
|
||||
PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL,
|
||||
);
|
||||
|
||||
#[no_mangle]
|
||||
|
||||
@@ -230,7 +230,7 @@ fn test_decompressed_public_key_encrypt() {
|
||||
fn test_compact_public_key_big() {
|
||||
let config = ConfigBuilder::all_disabled()
|
||||
.enable_custom_integers(
|
||||
crate::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
crate::shortint::parameters::parameters_compact_pk::PARAM_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
None,
|
||||
)
|
||||
.build();
|
||||
@@ -247,7 +247,7 @@ fn test_compact_public_key_big() {
|
||||
fn test_compact_public_key_list_big() {
|
||||
let config = ConfigBuilder::all_disabled()
|
||||
.enable_custom_integers(
|
||||
crate::shortint::parameters::PARAM_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
crate::shortint::parameters::parameters_compact_pk::PARAM_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
None,
|
||||
)
|
||||
.build();
|
||||
@@ -258,7 +258,8 @@ fn test_compact_public_key_list_big() {
|
||||
fn test_compact_public_key_list_small() {
|
||||
let config = ConfigBuilder::all_disabled()
|
||||
.enable_custom_integers(
|
||||
crate::shortint::parameters::PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
crate::shortint::parameters::parameters_compact_pk
|
||||
::PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL,
|
||||
None,
|
||||
)
|
||||
.build();
|
||||
@@ -305,7 +306,8 @@ fn test_compact_public_key_list(config: Config) {
|
||||
fn test_compact_public_key_small() {
|
||||
let config = ConfigBuilder::all_disabled()
|
||||
.enable_custom_integers(
|
||||
crate::shortint::parameters::PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
crate::shortint::parameters::parameters_compact_pk
|
||||
::PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL,
|
||||
None,
|
||||
)
|
||||
.build();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use rand::Rng;
|
||||
|
||||
use crate::integer::{gen_keys, CompressedPublicKeyBig, PublicKeyBig};
|
||||
use crate::shortint::parameters::parameters_compact_pk::*;
|
||||
use crate::shortint::parameters::*;
|
||||
use crate::shortint::ClassicPBSParameters;
|
||||
|
||||
@@ -22,7 +23,7 @@ create_parametrized_test!(big_radix_encrypt_decrypt_compact_128_bits_list {
|
||||
});
|
||||
|
||||
create_parametrized_test!(small_radix_encrypt_decrypt_compact_128_bits_list {
|
||||
PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK
|
||||
PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL
|
||||
});
|
||||
|
||||
/// Test that the public key can encrypt a 128 bit number
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
use crate::core_crypto::commons::generators::DeterministicSeeder;
|
||||
pub use crate::core_crypto::commons::math::random::Seed;
|
||||
use crate::core_crypto::prelude::ActivatedRandomGenerator;
|
||||
pub use crate::shortint::parameters::parameters_compact_pk::*;
|
||||
pub use crate::shortint::parameters::*;
|
||||
use bincode;
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
@@ -95,7 +97,7 @@ macro_rules! expose_predefined_parameters {
|
||||
match name {
|
||||
$(
|
||||
ShortintParametersName::$param_name => {
|
||||
Self(crate::shortint::parameters::$param_name)
|
||||
Self($param_name)
|
||||
}
|
||||
)*
|
||||
}
|
||||
@@ -148,7 +150,7 @@ expose_predefined_parameters! {
|
||||
PARAM_SMALL_MESSAGE_4_CARRY_4,
|
||||
|
||||
PARAM_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL,
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
use crate::shortint::parameters::multi_bit::*;
|
||||
use crate::shortint::parameters::parameters_compact_pk::*;
|
||||
use crate::shortint::parameters::parameters_wopbs::*;
|
||||
use crate::shortint::parameters::parameters_wopbs_message_carry::*;
|
||||
use crate::shortint::parameters::parameters_wopbs_prime_moduli::*;
|
||||
@@ -258,7 +260,7 @@ impl NamedParam for ShortintParameterSet {
|
||||
PARAM_SMALL_MESSAGE_2_CARRY_2,
|
||||
PARAM_SMALL_MESSAGE_3_CARRY_3,
|
||||
PARAM_SMALL_MESSAGE_4_CARRY_4,
|
||||
PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL,
|
||||
// MultiBit Group 2
|
||||
PARAM_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_2,
|
||||
PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_2,
|
||||
|
||||
@@ -13,10 +13,13 @@ pub use crate::core_crypto::commons::parameters::{
|
||||
use crate::shortint::ciphertext::PBSOrder;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
pub mod multi_bit;
|
||||
pub mod parameters_compact_pk;
|
||||
pub mod parameters_wopbs;
|
||||
pub mod parameters_wopbs_message_carry;
|
||||
pub(crate) mod parameters_wopbs_prime_moduli;
|
||||
|
||||
pub use multi_bit::*;
|
||||
pub use parameters_wopbs::WopbsParameters;
|
||||
|
||||
/// The choice of encryption key for (`shortint ciphertext`)[`super::ciphertext::CiphertextBase`].
|
||||
@@ -118,27 +121,6 @@ impl ClassicPBSParameters {
|
||||
}
|
||||
}
|
||||
|
||||
/// A structure defining the set of cryptographic parameters for homomorphic integer circuit
|
||||
/// evaluation. This structure contains information to run the so-called multi-bit PBS with improved
|
||||
/// latency provided enough threads are available on the machine performing the FHE computations
|
||||
#[derive(Serialize, Copy, Clone, Deserialize, Debug, PartialEq)]
|
||||
pub struct MultiBitPBSParameters {
|
||||
pub lwe_dimension: LweDimension,
|
||||
pub glwe_dimension: GlweDimension,
|
||||
pub polynomial_size: PolynomialSize,
|
||||
pub lwe_modular_std_dev: StandardDev,
|
||||
pub glwe_modular_std_dev: StandardDev,
|
||||
pub pbs_base_log: DecompositionBaseLog,
|
||||
pub pbs_level: DecompositionLevelCount,
|
||||
pub ks_base_log: DecompositionBaseLog,
|
||||
pub ks_level: DecompositionLevelCount,
|
||||
pub message_modulus: MessageModulus,
|
||||
pub carry_modulus: CarryModulus,
|
||||
pub ciphertext_modulus: CiphertextModulus,
|
||||
pub encryption_key_choice: EncryptionKeyChoice,
|
||||
pub grouping_factor: LweBskGroupingFactor,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Copy, Clone, Deserialize, Debug, PartialEq)]
|
||||
pub enum PBSParameters {
|
||||
PBS(ClassicPBSParameters),
|
||||
@@ -530,18 +512,6 @@ pub const BIVARIATE_PBS_COMPLIANT_PARAMETER_SET_VEC: [ClassicPBSParameters; 16]
|
||||
PARAM_MESSAGE_4_CARRY_4,
|
||||
];
|
||||
|
||||
/// Vector containing all [`MultiBitPBSParameters`] parameter sets
|
||||
pub const ALL_MULTI_BIT_PARAMETER_VEC: [MultiBitPBSParameters; 8] = [
|
||||
PARAM_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_2,
|
||||
PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_2,
|
||||
PARAM_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_2,
|
||||
PARAM_MULTI_BIT_MESSAGE_4_CARRY_4_GROUP_2,
|
||||
PARAM_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_3,
|
||||
PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_3,
|
||||
PARAM_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_3,
|
||||
PARAM_MULTI_BIT_MESSAGE_4_CARRY_4_GROUP_3,
|
||||
];
|
||||
|
||||
/// Nomenclature: PARAM_MESSAGE_X_CARRY_Y: the message (respectively carry) modulus is
|
||||
/// encoded over X (reps. Y) bits, i.e., message_modulus = 2^{X} (resp. carry_modulus = 2^{Y}).
|
||||
/// All parameter sets guarantee 128-bits of security and an error probability smaller than
|
||||
@@ -1151,172 +1121,26 @@ pub const PARAM_SMALL_MESSAGE_4_CARRY_4: ClassicPBSParameters = ClassicPBSParame
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
|
||||
// Group 2
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_2: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(764),
|
||||
glwe_dimension: GlweDimension(3),
|
||||
polynomial_size: PolynomialSize(512),
|
||||
lwe_modular_std_dev: StandardDev(0.000006025673585415336),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000039666089171633006),
|
||||
pbs_base_log: DecompositionBaseLog(18),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(2),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_2: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(818),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(0.000002226459789930014),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000003152931493498455),
|
||||
pbs_base_log: DecompositionBaseLog(22),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(2),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_2: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(922),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(0.0000003272369292345697),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000000002168404344971009),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(4),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(2),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_4_CARRY_4_GROUP_2: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(1052),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(0.000000029779789543501806),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000000002168404344971009),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(4),
|
||||
ks_level: DecompositionLevelCount(5),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(2),
|
||||
};
|
||||
|
||||
// Group 3
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_3: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(765),
|
||||
glwe_dimension: GlweDimension(3),
|
||||
polynomial_size: PolynomialSize(512),
|
||||
lwe_modular_std_dev: StandardDev(0.000005915594083804978),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000039666089171633006),
|
||||
pbs_base_log: DecompositionBaseLog(18),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(3),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_3: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(888),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(0.0000006125031601933181),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000003152931493498455),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(7),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(3),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_3: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(972),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(0.00000013016688349592805),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000000002168404344971009),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(3),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_4_CARRY_4_GROUP_3: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(1098),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(0.000000012752307213087621),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000000002168404344971009),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(3),
|
||||
};
|
||||
|
||||
pub const PARAM_MESSAGE_2_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(1024),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(0.000000049029381729),
|
||||
glwe_modular_std_dev: StandardDev(0.00000000000000031528),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
|
||||
pub const PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
..PARAM_MESSAGE_2_CARRY_2_COMPACT_PK
|
||||
};
|
||||
// pub const PARAM_MESSAGE_2_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
// lwe_dimension: LweDimension(1024),
|
||||
// glwe_dimension: GlweDimension(1),
|
||||
// polynomial_size: PolynomialSize(2048),
|
||||
// lwe_modular_std_dev: StandardDev(0.000000049029381729),
|
||||
// glwe_modular_std_dev: StandardDev(0.00000000000000031528),
|
||||
// pbs_base_log: DecompositionBaseLog(21),
|
||||
// pbs_level: DecompositionLevelCount(1),
|
||||
// ks_level: DecompositionLevelCount(2),
|
||||
// ks_base_log: DecompositionBaseLog(8),
|
||||
// message_modulus: MessageModulus(4),
|
||||
// carry_modulus: CarryModulus(4),
|
||||
// ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
// encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
// };
|
||||
//
|
||||
// pub const PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
// encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
// ..PARAM_MESSAGE_2_CARRY_2_COMPACT_PK
|
||||
// };
|
||||
|
||||
/// Return a parameter set from a message and carry moduli.
|
||||
///
|
||||
|
||||
189
tfhe/src/shortint/parameters/multi_bit.rs
Normal file
189
tfhe/src/shortint/parameters/multi_bit.rs
Normal file
@@ -0,0 +1,189 @@
|
||||
//! #Warning experimental
|
||||
|
||||
pub use crate::core_crypto::commons::dispersion::{DispersionParameter, StandardDev};
|
||||
pub use crate::core_crypto::commons::parameters::{
|
||||
DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweDimension, PolynomialSize,
|
||||
};
|
||||
use crate::shortint::parameters::{
|
||||
CarryModulus, CiphertextModulus, EncryptionKeyChoice, LweBskGroupingFactor, MessageModulus,
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
/// A structure defining the set of cryptographic parameters for homomorphic integer circuit
|
||||
/// evaluation. This structure contains information to run the so-called multi-bit PBS with improved
|
||||
/// latency provided enough threads are available on the machine performing the FHE computations
|
||||
#[derive(Serialize, Copy, Clone, Deserialize, Debug, PartialEq)]
|
||||
pub struct MultiBitPBSParameters {
|
||||
pub lwe_dimension: LweDimension,
|
||||
pub glwe_dimension: GlweDimension,
|
||||
pub polynomial_size: PolynomialSize,
|
||||
pub lwe_modular_std_dev: StandardDev,
|
||||
pub glwe_modular_std_dev: StandardDev,
|
||||
pub pbs_base_log: DecompositionBaseLog,
|
||||
pub pbs_level: DecompositionLevelCount,
|
||||
pub ks_base_log: DecompositionBaseLog,
|
||||
pub ks_level: DecompositionLevelCount,
|
||||
pub message_modulus: MessageModulus,
|
||||
pub carry_modulus: CarryModulus,
|
||||
pub ciphertext_modulus: CiphertextModulus,
|
||||
pub encryption_key_choice: EncryptionKeyChoice,
|
||||
pub grouping_factor: LweBskGroupingFactor,
|
||||
}
|
||||
|
||||
/// Vector containing all [`MultiBitPBSParameters`] parameter sets
|
||||
pub const ALL_MULTI_BIT_PARAMETER_VEC: [MultiBitPBSParameters; 8] = [
|
||||
PARAM_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_2,
|
||||
PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_2,
|
||||
PARAM_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_2,
|
||||
PARAM_MULTI_BIT_MESSAGE_4_CARRY_4_GROUP_2,
|
||||
PARAM_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_3,
|
||||
PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_3,
|
||||
PARAM_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_3,
|
||||
PARAM_MULTI_BIT_MESSAGE_4_CARRY_4_GROUP_3,
|
||||
];
|
||||
|
||||
// Group 2
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_2: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(764),
|
||||
glwe_dimension: GlweDimension(3),
|
||||
polynomial_size: PolynomialSize(512),
|
||||
lwe_modular_std_dev: StandardDev(0.000006025673585415336),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000039666089171633006),
|
||||
pbs_base_log: DecompositionBaseLog(18),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(2),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_2: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(818),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(0.000002226459789930014),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000003152931493498455),
|
||||
pbs_base_log: DecompositionBaseLog(22),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(2),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_2: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(922),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(0.0000003272369292345697),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000000002168404344971009),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(4),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(2),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_4_CARRY_4_GROUP_2: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(1052),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(0.000000029779789543501806),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000000002168404344971009),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(4),
|
||||
ks_level: DecompositionLevelCount(5),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(2),
|
||||
};
|
||||
|
||||
// Group 3
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_1_CARRY_1_GROUP_3: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(765),
|
||||
glwe_dimension: GlweDimension(3),
|
||||
polynomial_size: PolynomialSize(512),
|
||||
lwe_modular_std_dev: StandardDev(0.000005915594083804978),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000039666089171633006),
|
||||
pbs_base_log: DecompositionBaseLog(18),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(3),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_3: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(888),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(0.0000006125031601933181),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000003152931493498455),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(7),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(3),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_3_CARRY_3_GROUP_3: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(972),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(0.00000013016688349592805),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000000002168404344971009),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(3),
|
||||
};
|
||||
|
||||
pub const PARAM_MULTI_BIT_MESSAGE_4_CARRY_4_GROUP_3: MultiBitPBSParameters =
|
||||
MultiBitPBSParameters {
|
||||
lwe_dimension: LweDimension(1098),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(0.000000012752307213087621),
|
||||
glwe_modular_std_dev: StandardDev(0.0000000000000000002168404344971009),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
grouping_factor: LweBskGroupingFactor(3),
|
||||
};
|
||||
912
tfhe/src/shortint/parameters/parameters_compact_pk.rs
Normal file
912
tfhe/src/shortint/parameters/parameters_compact_pk.rs
Normal file
@@ -0,0 +1,912 @@
|
||||
//! #Warning experimental
|
||||
|
||||
pub use crate::core_crypto::commons::dispersion::{DispersionParameter, StandardDev};
|
||||
pub use crate::core_crypto::commons::parameters::{
|
||||
DecompositionBaseLog, DecompositionLevelCount, GlweDimension, LweDimension, PolynomialSize,
|
||||
};
|
||||
use crate::shortint::parameters::{
|
||||
CarryModulus, CiphertextModulus, EncryptionKeyChoice, MessageModulus,
|
||||
};
|
||||
use crate::shortint::ClassicPBSParameters;
|
||||
|
||||
pub const ALL_PARAMETER_VEC_COMPACT_PK: [ClassicPBSParameters; 56] = [
|
||||
PARAM_MESSAGE_1_CARRY_1_COMPACT_PK,
|
||||
PARAM_MESSAGE_1_CARRY_2_COMPACT_PK,
|
||||
PARAM_MESSAGE_1_CARRY_3_COMPACT_PK,
|
||||
PARAM_MESSAGE_1_CARRY_4_COMPACT_PK,
|
||||
PARAM_MESSAGE_1_CARRY_5_COMPACT_PK,
|
||||
PARAM_MESSAGE_1_CARRY_6_COMPACT_PK,
|
||||
PARAM_MESSAGE_1_CARRY_7_COMPACT_PK,
|
||||
PARAM_MESSAGE_2_CARRY_1_COMPACT_PK,
|
||||
PARAM_MESSAGE_2_CARRY_2_COMPACT_PK,
|
||||
PARAM_MESSAGE_2_CARRY_3_COMPACT_PK,
|
||||
PARAM_MESSAGE_2_CARRY_4_COMPACT_PK,
|
||||
PARAM_MESSAGE_2_CARRY_5_COMPACT_PK,
|
||||
PARAM_MESSAGE_2_CARRY_6_COMPACT_PK,
|
||||
PARAM_MESSAGE_3_CARRY_1_COMPACT_PK,
|
||||
PARAM_MESSAGE_3_CARRY_2_COMPACT_PK,
|
||||
PARAM_MESSAGE_3_CARRY_3_COMPACT_PK,
|
||||
PARAM_MESSAGE_3_CARRY_4_COMPACT_PK,
|
||||
PARAM_MESSAGE_3_CARRY_5_COMPACT_PK,
|
||||
PARAM_MESSAGE_4_CARRY_1_COMPACT_PK,
|
||||
PARAM_MESSAGE_4_CARRY_2_COMPACT_PK,
|
||||
PARAM_MESSAGE_4_CARRY_3_COMPACT_PK,
|
||||
PARAM_MESSAGE_4_CARRY_4_COMPACT_PK,
|
||||
PARAM_MESSAGE_5_CARRY_1_COMPACT_PK,
|
||||
PARAM_MESSAGE_5_CARRY_2_COMPACT_PK,
|
||||
PARAM_MESSAGE_5_CARRY_3_COMPACT_PK,
|
||||
PARAM_MESSAGE_6_CARRY_1_COMPACT_PK,
|
||||
PARAM_MESSAGE_6_CARRY_2_COMPACT_PK,
|
||||
PARAM_MESSAGE_7_CARRY_1_COMPACT_PK,
|
||||
PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_SMALL,
|
||||
PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_SMALL,
|
||||
];
|
||||
|
||||
pub const PARAM_MESSAGE_1_CARRY_1_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(3),
|
||||
polynomial_size: PolynomialSize(512),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.96669408172410e-12),
|
||||
pbs_base_log: DecompositionBaseLog(18),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(12),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(2),
|
||||
polynomial_size: PolynomialSize(1024),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(18),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_3_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_4_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(4096),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_5_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(22),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(32),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_6_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(64),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_7_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(7),
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(128),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_1_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(2),
|
||||
polynomial_size: PolynomialSize(1024),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_3_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(4096),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_4_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_5_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(32),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_6_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(7),
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(64),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_1_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(22),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(4096),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_3_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_4_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_5_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(7),
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(32),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_4_CARRY_1_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(4096),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_4_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_4_CARRY_3_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_4_CARRY_4_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(7),
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_5_CARRY_1_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
message_modulus: MessageModulus(32),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_5_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
message_modulus: MessageModulus(32),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_5_CARRY_3_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(11),
|
||||
pbs_level: DecompositionLevelCount(3),
|
||||
ks_level: DecompositionLevelCount(7),
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
message_modulus: MessageModulus(32),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_6_CARRY_1_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(11),
|
||||
pbs_level: DecompositionLevelCount(3),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
message_modulus: MessageModulus(64),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_6_CARRY_2_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(11),
|
||||
pbs_level: DecompositionLevelCount(3),
|
||||
ks_level: DecompositionLevelCount(7),
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
message_modulus: MessageModulus(64),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
pub const PARAM_MESSAGE_7_CARRY_1_COMPACT_PK: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(11),
|
||||
pbs_level: DecompositionLevelCount(3),
|
||||
ks_level: DecompositionLevelCount(7),
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
message_modulus: MessageModulus(128),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Big,
|
||||
};
|
||||
|
||||
// Parameter set for small
|
||||
pub const PARAM_MESSAGE_1_CARRY_1_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(3),
|
||||
polynomial_size: PolynomialSize(512),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.96669408172410e-12),
|
||||
pbs_base_log: DecompositionBaseLog(18),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_2_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(2),
|
||||
polynomial_size: PolynomialSize(1024),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(18),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_3_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_4_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(4096),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_5_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(22),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(32),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_6_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(5),
|
||||
ks_base_log: DecompositionBaseLog(4),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(64),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_1_CARRY_7_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(11),
|
||||
ks_base_log: DecompositionBaseLog(2),
|
||||
message_modulus: MessageModulus(2),
|
||||
carry_modulus: CarryModulus(128),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_1_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(2),
|
||||
polynomial_size: PolynomialSize(1024),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(8),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_3_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(4096),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(21),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_4_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_5_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(7),
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(32),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_2_CARRY_6_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(65536),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(25),
|
||||
message_modulus: MessageModulus(4),
|
||||
carry_modulus: CarryModulus(64),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_1_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(2048),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
pbs_base_log: DecompositionBaseLog(22),
|
||||
pbs_level: DecompositionLevelCount(1),
|
||||
ks_level: DecompositionLevelCount(3),
|
||||
ks_base_log: DecompositionBaseLog(6),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_2_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(4096),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(4),
|
||||
ks_base_log: DecompositionBaseLog(5),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_3_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(7),
|
||||
ks_base_log: DecompositionBaseLog(3),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_4_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(22),
|
||||
ks_base_log: DecompositionBaseLog(1),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_3_CARRY_5_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(65536),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(25),
|
||||
message_modulus: MessageModulus(8),
|
||||
carry_modulus: CarryModulus(32),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_4_CARRY_1_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(4096),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(12),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(11),
|
||||
ks_base_log: DecompositionBaseLog(2),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_4_CARRY_2_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(10),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(8192),
|
||||
lwe_modular_std_dev: StandardDev(4.99029381172945e-8),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(9),
|
||||
pbs_level: DecompositionLevelCount(3),
|
||||
ks_level: DecompositionLevelCount(21),
|
||||
ks_base_log: DecompositionBaseLog(1),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_4_CARRY_3_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(25),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_4_CARRY_4_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(65536),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(11),
|
||||
pbs_level: DecompositionLevelCount(3),
|
||||
ks_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(25),
|
||||
message_modulus: MessageModulus(16),
|
||||
carry_modulus: CarryModulus(16),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_5_CARRY_1_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(16384),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(25),
|
||||
message_modulus: MessageModulus(32),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_5_CARRY_2_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(14),
|
||||
pbs_level: DecompositionLevelCount(2),
|
||||
ks_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(25),
|
||||
message_modulus: MessageModulus(32),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_5_CARRY_3_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(65536),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(11),
|
||||
pbs_level: DecompositionLevelCount(3),
|
||||
ks_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(25),
|
||||
message_modulus: MessageModulus(32),
|
||||
carry_modulus: CarryModulus(8),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_6_CARRY_1_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(32768),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(11),
|
||||
pbs_level: DecompositionLevelCount(3),
|
||||
ks_level: DecompositionLevelCount(1),
|
||||
ks_base_log: DecompositionBaseLog(25),
|
||||
message_modulus: MessageModulus(64),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_6_CARRY_2_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(65536),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(11),
|
||||
pbs_level: DecompositionLevelCount(3),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(17),
|
||||
message_modulus: MessageModulus(64),
|
||||
carry_modulus: CarryModulus(4),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
pub const PARAM_MESSAGE_7_CARRY_1_COMPACT_PK_SMALL: ClassicPBSParameters = ClassicPBSParameters {
|
||||
lwe_dimension: LweDimension(11),
|
||||
glwe_dimension: GlweDimension(1),
|
||||
polynomial_size: PolynomialSize(65536),
|
||||
lwe_modular_std_dev: StandardDev(3.15283466779972e-16),
|
||||
glwe_modular_std_dev: StandardDev(2.16840434497101e-19),
|
||||
pbs_base_log: DecompositionBaseLog(9),
|
||||
pbs_level: DecompositionLevelCount(4),
|
||||
ks_level: DecompositionLevelCount(2),
|
||||
ks_base_log: DecompositionBaseLog(17),
|
||||
message_modulus: MessageModulus(128),
|
||||
carry_modulus: CarryModulus(2),
|
||||
ciphertext_modulus: CiphertextModulus::new_native(),
|
||||
encryption_key_choice: EncryptionKeyChoice::Small,
|
||||
};
|
||||
@@ -1,4 +1,5 @@
|
||||
use crate::shortint::keycache::KEY_CACHE;
|
||||
use crate::shortint::parameters::parameters_compact_pk::*;
|
||||
use crate::shortint::parameters::*;
|
||||
use crate::shortint::CiphertextBig;
|
||||
use paste::paste;
|
||||
@@ -2891,7 +2892,7 @@ fn test_shortint_compact_public_key_smart_add_big() {
|
||||
fn test_shortint_compact_public_key_smart_add_small() {
|
||||
test_shortint_compact_public_key_base_smart_add::<
|
||||
crate::shortint::ciphertext::BootstrapKeyswitch,
|
||||
>(PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK);
|
||||
>(PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL);
|
||||
}
|
||||
|
||||
fn test_shortint_compact_public_key_base_smart_add<OpOrder: crate::shortint::PBSOrderMarker>(
|
||||
@@ -2948,7 +2949,7 @@ fn test_shortint_compact_public_key_list_smart_sub_big() {
|
||||
fn test_shortint_compact_public_key_list_smart_sub_small() {
|
||||
test_shortint_compact_public_key_base_list_smart_sub::<
|
||||
crate::shortint::ciphertext::BootstrapKeyswitch,
|
||||
>(PARAM_SMALL_MESSAGE_2_CARRY_2_COMPACT_PK);
|
||||
>(PARAM_MESSAGE_2_CARRY_2_COMPACT_PK_SMALL);
|
||||
}
|
||||
|
||||
fn test_shortint_compact_public_key_base_list_smart_sub<
|
||||
|
||||
Reference in New Issue
Block a user