Skip to content

Commit

Permalink
feat: add data for proven compact lists
Browse files Browse the repository at this point in the history
  • Loading branch information
nsarlin-zama committed Sep 24, 2024
1 parent d32455b commit e846b0a
Show file tree
Hide file tree
Showing 18 changed files with 935 additions and 68 deletions.
540 changes: 508 additions & 32 deletions Cargo.lock

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tfhe-backward-compat-data"
version = "0.1.0"
version = "0.2.0"
license = "BSD-3-Clause-Clear"
edition = "2021"

Expand All @@ -11,9 +11,11 @@ edition = "2021"
# They are only activated when generating data, with the binary target and the "generate" feature.
tfhe_0_6 = { version = "0.6", features = ["boolean", "integer", "shortint", "x86_64-unix", "experimental-force_fft_algo_dif4"], package = "tfhe", optional = true }
tfhe_0_7 = { version = "0.7", features = ["boolean", "integer", "shortint", "x86_64-unix", "experimental-force_fft_algo_dif4"], package = "tfhe", optional = true }
tfhe_0_8 = { features = ["boolean", "integer", "shortint", "x86_64-unix", "zk-pok", "experimental-force_fft_algo_dif4"], package = "tfhe", optional = true, git = "https://github.com/zama-ai/tfhe-rs", branch = "ns/versionize_zk" }

tfhe-versionable_0_1 = { version = "0.1", optional = true, package = "tfhe-versionable" }
tfhe-versionable_0_2 = { version = "0.2", optional = true, package = "tfhe-versionable" }
tfhe-versionable_0_3 = { version = "0.3", optional = true, package = "tfhe-versionable", git = "https://github.com/zama-ai/tfhe-rs", branch = "ns/versionize_zk" }

# other deps
serde = { version = "1.0", features = ["derive"] }
Expand All @@ -30,5 +32,6 @@ required-features = ["generate"]
[features]
default = ["generate"]

generate = ["dep:tfhe_0_6", "dep:tfhe_0_7", "dep:tfhe-versionable_0_1", "dep:tfhe-versionable_0_2"]
generate = ["dep:tfhe_0_6", "dep:tfhe_0_7", "dep:tfhe_0_8", "dep:tfhe-versionable_0_1", "dep:tfhe-versionable_0_2", "dep:tfhe-versionable_0_3"]
load = ["dep:semver"]

3 changes: 3 additions & 0 deletions data/0_8/high_level_api/client_key.cbor
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/0_8/high_level_api/hl_proven_heterogeneous_list.bcode
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/0_8/high_level_api/hl_proven_heterogeneous_list.cbor
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/0_8/high_level_api/public_key.cbor
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/0_8/high_level_api/zk_pke_public_params.bcode
Git LFS file not shown
3 changes: 3 additions & 0 deletions data/0_8/high_level_api/zk_pke_public_params.cbor
Git LFS file not shown
49 changes: 47 additions & 2 deletions data/high_level_api.ron
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@
lwe_dimension: 761,
glwe_dimension: 1,
polynomial_size: 2048,
lwe_noise_gaussian_stddev: 0.00000636835566258815,
glwe_noise_gaussian_stddev: 0.00000000000000031529322391500584,
lwe_noise_distribution: Gaussian(
stddev: 0.00000636835566258815,
),
glwe_noise_distribution: Gaussian(
stddev: 0.00000000000000031529322391500584,
),
pbs_base_log: 23,
pbs_level: 1,
ks_base_log: 3,
Expand Down Expand Up @@ -291,6 +295,7 @@
test_filename: "hl_packed_heterogeneous_list",
key_filename: "client_key.cbor",
compressed: false,
proof_info: None,
clear_values: [
17,
18446744073709551604,
Expand All @@ -312,6 +317,7 @@
test_filename: "hl_heterogeneous_list",
key_filename: "client_key.cbor",
compressed: false,
proof_info: None,
clear_values: [
17,
18446744073709551604,
Expand All @@ -333,6 +339,45 @@
test_filename: "hl_compressed_heterogeneous_list",
key_filename: "client_key.cbor",
compressed: true,
proof_info: None,
clear_values: [
17,
18446744073709551604,
0,
1,
],
data_kinds: [
Unsigned,
Signed,
Bool,
Bool,
],
)),
),
(
tfhe_version_min: "0.8",
tfhe_module: "high_level_api",
metadata: ZkPkePublicParams((
test_filename: "zk_pke_public_params",
lwe_dimension: 2048,
max_num_cleartext: 16,
noise_bound: 46,
ciphertext_modulus: 18446744073709551616,
plaintext_modulus: 32,
)),
),
(
tfhe_version_min: "0.8",
tfhe_module: "high_level_api",
metadata: HlHeterogeneousCiphertextList((
test_filename: "hl_proven_heterogeneous_list",
key_filename: "client_key.cbor",
compressed: false,
proof_info: Some((
public_key_filename: "public_key.cbor",
params_filename: "zk_pke_public_params.cbor",
metadata: "drawkcab",
)),
clear_values: [
17,
18446744073709551604,
Expand Down
8 changes: 6 additions & 2 deletions data/shortint.ron
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@
lwe_dimension: 761,
glwe_dimension: 1,
polynomial_size: 2048,
lwe_noise_gaussian_stddev: 0.00000636835566258815,
glwe_noise_gaussian_stddev: 0.00000000000000031529322391500584,
lwe_noise_distribution: Gaussian(
stddev: 0.00000636835566258815,
),
glwe_noise_distribution: Gaussian(
stddev: 0.00000000000000031529322391500584,
),
pbs_base_log: 23,
pbs_level: 1,
ks_base_log: 3,
Expand Down
34 changes: 23 additions & 11 deletions src/data_0_6.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ use std::{borrow::Cow, fs::create_dir_all};

use tfhe_0_6::{
boolean::engine::BooleanEngine,
core_crypto::commons::{
generators::DeterministicSeeder,
math::random::{ActivatedRandomGenerator, Seed},
core_crypto::{
commons::{
generators::DeterministicSeeder,
math::random::{ActivatedRandomGenerator, Seed},
},
prelude::TUniform,
},
generate_keys,
prelude::FheEncrypt,
Expand All @@ -30,8 +33,8 @@ use crate::{
generate::{save_cbor, store_versioned_test_01, TfhersVersion, VALID_TEST_PARAMS},
HlBoolCiphertextListTest, HlBoolCiphertextTest, HlCiphertextListTest, HlCiphertextTest,
HlClientKeyTest, HlPublicKeyTest, HlServerKeyTest, HlSignedCiphertextListTest,
HlSignedCiphertextTest, ShortintCiphertextTest, ShortintClientKeyTest, TestMetadata,
TestParameterSet, HL_MODULE_NAME, SHORTINT_MODULE_NAME,
HlSignedCiphertextTest, ShortintCiphertextTest, ShortintClientKeyTest, TestDistribution,
TestMetadata, TestParameterSet, HL_MODULE_NAME, SHORTINT_MODULE_NAME,
};

macro_rules! store_versioned_test {
Expand All @@ -40,18 +43,27 @@ macro_rules! store_versioned_test {
};
}

impl From<TestDistribution> for DynamicDistribution<u64> {
fn from(value: TestDistribution) -> Self {
match value {
TestDistribution::Gaussian { stddev } => {
DynamicDistribution::new_gaussian_from_std_dev(StandardDev(stddev))
}
TestDistribution::TUniform { bound_log2 } => {
DynamicDistribution::TUniform(TUniform::new(bound_log2))
}
}
}
}

impl From<TestParameterSet> for ClassicPBSParameters {
fn from(value: TestParameterSet) -> Self {
ClassicPBSParameters {
lwe_dimension: LweDimension(value.lwe_dimension),
glwe_dimension: GlweDimension(value.glwe_dimension),
polynomial_size: PolynomialSize(value.polynomial_size),
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
value.lwe_noise_gaussian_stddev,
)),
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
value.glwe_noise_gaussian_stddev,
)),
lwe_noise_distribution: value.lwe_noise_distribution.into(),
glwe_noise_distribution: value.glwe_noise_distribution.into(),
pbs_base_log: DecompositionBaseLog(value.pbs_base_log),
pbs_level: DecompositionLevelCount(value.pbs_level),
ks_base_log: DecompositionBaseLog(value.ks_base_log),
Expand Down
32 changes: 23 additions & 9 deletions src/data_0_7.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ use std::{borrow::Cow, fs::create_dir_all};

use tfhe_0_7::{
boolean::engine::BooleanEngine,
core_crypto::commons::{
generators::DeterministicSeeder, math::random::ActivatedRandomGenerator,
core_crypto::{
commons::{generators::DeterministicSeeder, math::random::ActivatedRandomGenerator},
prelude::TUniform,
},
generate_keys,
prelude::FheEncrypt,
Expand All @@ -25,7 +26,8 @@ use crate::{
generate::{
store_versioned_auxiliary_02, store_versioned_test_02, TfhersVersion, VALID_TEST_PARAMS,
},
DataKind, HlHeterogeneousCiphertextListTest, TestMetadata, TestParameterSet, HL_MODULE_NAME,
DataKind, HlHeterogeneousCiphertextListTest, TestDistribution, TestMetadata, TestParameterSet,
HL_MODULE_NAME,
};

macro_rules! store_versioned_test {
Expand All @@ -40,18 +42,27 @@ macro_rules! store_versioned_auxiliary {
};
}

impl From<TestDistribution> for DynamicDistribution<u64> {
fn from(value: TestDistribution) -> Self {
match value {
TestDistribution::Gaussian { stddev } => {
DynamicDistribution::new_gaussian_from_std_dev(StandardDev(stddev))
}
TestDistribution::TUniform { bound_log2 } => {
DynamicDistribution::TUniform(TUniform::new(bound_log2))
}
}
}
}

impl From<TestParameterSet> for ClassicPBSParameters {
fn from(value: TestParameterSet) -> Self {
ClassicPBSParameters {
lwe_dimension: LweDimension(value.lwe_dimension),
glwe_dimension: GlweDimension(value.glwe_dimension),
polynomial_size: PolynomialSize(value.polynomial_size),
lwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
value.lwe_noise_gaussian_stddev,
)),
glwe_noise_distribution: DynamicDistribution::new_gaussian_from_std_dev(StandardDev(
value.glwe_noise_gaussian_stddev,
)),
lwe_noise_distribution: value.lwe_noise_distribution.into(),
glwe_noise_distribution: value.glwe_noise_distribution.into(),
pbs_base_log: DecompositionBaseLog(value.pbs_base_log),
pbs_level: DecompositionLevelCount(value.pbs_level),
ks_base_log: DecompositionBaseLog(value.ks_base_log),
Expand Down Expand Up @@ -90,6 +101,7 @@ const HL_COMPACTLIST_TEST: HlHeterogeneousCiphertextListTest = HlHeterogeneousCi
DataKind::Bool,
]),
compressed: false,
proof_info: None,
};

const HL_PACKED_COMPACTLIST_TEST: HlHeterogeneousCiphertextListTest =
Expand All @@ -99,6 +111,7 @@ const HL_PACKED_COMPACTLIST_TEST: HlHeterogeneousCiphertextListTest =
clear_values: HL_COMPACTLIST_TEST.clear_values,
data_kinds: HL_COMPACTLIST_TEST.data_kinds,
compressed: false,
proof_info: None,
};

const HL_COMPRESSED_LIST_TEST: HlHeterogeneousCiphertextListTest =
Expand All @@ -113,6 +126,7 @@ const HL_COMPRESSED_LIST_TEST: HlHeterogeneousCiphertextListTest =
DataKind::Bool,
]),
compressed: true,
proof_info: None,
};

pub struct V0_7;
Expand Down
Loading

0 comments on commit e846b0a

Please sign in to comment.