Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(zk): proof compatiblity between 32/64b platforms (0.6) #1732

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tfhe-zk-pok/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tfhe-zk-pok"
version = "0.1.0"
version = "0.1.1"
edition = "2021"
keywords = ["zero", "knowledge", "proof", "vector-commitments"]
homepage = "https://zama.ai/"
Expand Down
4 changes: 2 additions & 2 deletions tfhe-zk-pok/src/proofs/pke.rs
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ pub fn prove<G: Curve>(

let x_bytes = &*[
q.to_le_bytes().as_slice(),
d.to_le_bytes().as_slice(),
(d as u64).to_le_bytes().as_slice(),
b_i.to_le_bytes().as_slice(),
t.to_le_bytes().as_slice(),
&*a.iter().flat_map(|&x| x.to_le_bytes()).collect::<Box<_>>(),
Expand Down Expand Up @@ -684,7 +684,7 @@ pub fn verify<G: Curve>(

let x_bytes = &*[
q.to_le_bytes().as_slice(),
d.to_le_bytes().as_slice(),
(d as u64).to_le_bytes().as_slice(),
b_i.to_le_bytes().as_slice(),
t.to_le_bytes().as_slice(),
&*a.iter().flat_map(|&x| x.to_le_bytes()).collect::<Box<_>>(),
Expand Down
4 changes: 2 additions & 2 deletions tfhe-zk-pok/src/proofs/range.rs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ pub fn prove<G: Curve>(
G::Zp::hash(
core::slice::from_mut(s),
&[
&i.to_le_bytes(),
&(i as u64).to_le_bytes(),
v_hat.to_bytes().as_ref(),
c_hat.to_bytes().as_ref(),
c_y.to_bytes().as_ref(),
Expand Down Expand Up @@ -286,7 +286,7 @@ pub fn verify<G: Curve>(
G::Zp::hash(
core::slice::from_mut(s),
&[
&i.to_le_bytes(),
&(i as u64).to_le_bytes(),
v_hat.to_bytes().as_ref(),
c_hat.to_bytes().as_ref(),
c_y.to_bytes().as_ref(),
Expand Down
4 changes: 2 additions & 2 deletions tfhe/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tfhe"
version = "0.6.4"
version = "0.6.5"
edition = "2021"
readme = "../README.md"
keywords = ["fully", "homomorphic", "encryption", "fhe", "cryptography"]
Expand Down Expand Up @@ -73,7 +73,7 @@ fs2 = { version = "0.4.3", optional = true }
# While we wait for repeat_n in rust standard library
itertools = "0.11.0"
rand_core = { version = "0.6.4", features = ["std"] }
tfhe-zk-pok = { version = "0.1.0", path = "../tfhe-zk-pok", optional = true }
tfhe-zk-pok = { version = "0.1.1", path = "../tfhe-zk-pok", optional = true }
tfhe-versionable = { version = "0.1.0", path = "../utils/tfhe-versionable" }

# wasm deps
Expand Down
2 changes: 1 addition & 1 deletion tfhe/docs/fundamentals/serialization.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Here is a full example:

[dependencies]
# ...
tfhe = { version = "0.6.4", features = ["integer","x86_64-unix"]}
tfhe = { version = "0.6.5", features = ["integer","x86_64-unix"]}
bincode = "1.3.3"
```

Expand Down
4 changes: 2 additions & 2 deletions tfhe/docs/getting_started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ First, add **TFHE-rs** as a dependency in your `Cargo.toml`.
**For `x86_64` machine running a Unix-like OS:**

```toml
tfhe = { version = "0.6.4", features = [ "boolean", "shortint", "integer", "x86_64-unix" ] }
tfhe = { version = "0.6.5", features = [ "boolean", "shortint", "integer", "x86_64-unix" ] }
```

**For `ARM` machine running a Unix-like OS:**

```toml
tfhe = { version = "0.6.4", features = [ "boolean", "shortint", "integer", "aarch64-unix" ] }
tfhe = { version = "0.6.5", features = [ "boolean", "shortint", "integer", "aarch64-unix" ] }
```

**For `x86_64` machines with the** [**`rdseed instruction`**](https://en.wikipedia.org/wiki/RDRAND) **running Windows:**
Expand Down
2 changes: 1 addition & 1 deletion tfhe/docs/getting_started/quick_start.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ fn main() {
The default configuration for x86 Unix machines is as follows:

```toml
tfhe = { version = "0.6.4", features = ["integer", "x86_64-unix"]}
tfhe = { version = "0.6.5", features = ["integer", "x86_64-unix"]}
```

Refer to the [installation documentation](installation.md) for configuration options of different platforms.Learn more about homomorphic types features in the [configuration documentation.](../guides/rust\_configuration.md)
Expand Down
4 changes: 2 additions & 2 deletions tfhe/docs/guides/data_versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This document explains how to save and load versioned data using the data versioning feature.

Starting from v0.6.4, **TFHE-rs** supports versioned data types. This allows you to store data and load it in the future without compatibility concerns. This feature is done by the `tfhe-versionable` crate.
Starting from v0.6.5, **TFHE-rs** supports versioned data types. This allows you to store data and load it in the future without compatibility concerns. This feature is done by the `tfhe-versionable` crate.

This versioning scheme is compatible with all the [data formats](https://serde.rs/#data-formats) supported by serde.

Expand All @@ -16,7 +16,7 @@ You can load serialized data with the `unversionize` function, even in newer ver

[dependencies]
# ...
tfhe = { version = "0.6.4", features = ["integer","x86_64-unix"]}
tfhe = { version = "0.6.5", features = ["integer","x86_64-unix"]}
tfhe-versionable = "0.1.0"
bincode = "1.3.3"
```
Expand Down
4 changes: 2 additions & 2 deletions tfhe/docs/guides/run_on_gpu.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ To use the **TFHE-rs** GPU backend in your project, add the following dependency
If you are using an `x86` machine:

```toml
tfhe = { version = "0.6.4", features = [ "boolean", "shortint", "integer", "x86_64-unix", "gpu" ] }
tfhe = { version = "0.6.5", features = [ "boolean", "shortint", "integer", "x86_64-unix", "gpu" ] }
```

If you are using an `ARM` machine:

```toml
tfhe = { version = "0.6.4", features = [ "boolean", "shortint", "integer", "aarch64-unix", "gpu" ] }
tfhe = { version = "0.6.5", features = [ "boolean", "shortint", "integer", "aarch64-unix", "gpu" ] }
```

{% hint style="success" %}
Expand Down
8 changes: 4 additions & 4 deletions tfhe/docs/references/core-crypto-api/tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Welcome to this tutorial about `TFHE-rs` `core_crypto` module.
To use `TFHE-rs`, it first has to be added as a dependency in the `Cargo.toml`:

```toml
tfhe = { version = "0.6.4", features = [ "x86_64-unix" ] }
tfhe = { version = "0.6.5", features = [ "x86_64-unix" ] }
```

This enables the `x86_64-unix` feature to have efficient implementations of various algorithms for `x86_64` CPUs on a Unix-like system. The 'unix' suffix indicates that the `UnixSeeder`, which uses `/dev/random` to generate random numbers, is activated as a fallback if no hardware number generator is available (like `rdseed` on `x86_64` or if the [`Randomization Services`](https://developer.apple.com/documentation/security/1399291-secrandomcopybytes?language=objc) on Apple platforms are not available). To avoid having the `UnixSeeder` as a potential fallback or to run on non-Unix systems (e.g., Windows), the `x86_64` feature is sufficient.
Expand All @@ -19,19 +19,19 @@ For Apple Silicon, the `aarch64-unix` or `aarch64` feature should be enabled. `a
In short: For `x86_64`-based machines running Unix-like OSes:

```toml
tfhe = { version = "0.6.4", features = ["x86_64-unix"] }
tfhe = { version = "0.6.5", features = ["x86_64-unix"] }
```

For Apple Silicon or aarch64-based machines running Unix-like OSes:

```toml
tfhe = { version = "0.6.4", features = ["aarch64-unix"] }
tfhe = { version = "0.6.5", features = ["aarch64-unix"] }
```

For `x86_64`-based machines with the [`rdseed instruction`](https://en.wikipedia.org/wiki/RDRAND) running Windows:

```toml
tfhe = { version = "0.6.4", features = ["x86_64"] }
tfhe = { version = "0.6.5", features = ["x86_64"] }
```

### Commented code to double a 2-bit message in a leveled fashion and using a PBS with the `core_crypto` module.
Expand Down
2 changes: 1 addition & 1 deletion tfhe/docs/tutorials/ascii_fhe_string.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ To use the `FheUint8` type, enable the `integer` feature:

[dependencies]
# Default configuration for x86 Unix machines:
tfhe = { version = "0.6.4", features = ["integer", "x86_64-unix"]}
tfhe = { version = "0.6.5", features = ["integer", "x86_64-unix"]}
```

Refer to the [installation guide](../getting\_started/installation.md) for other configurations.
Expand Down
2 changes: 1 addition & 1 deletion tfhe/docs/tutorials/parity_bit.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ This function returns a Boolean (`true` or `false`) so that the total count of `
# Cargo.toml

# Default configuration for x86 Unix machines:
tfhe = { version = "0.6.4", features = ["integer", "x86_64-unix"]}
tfhe = { version = "0.6.5", features = ["integer", "x86_64-unix"]}
```

Refer to the [installation](../getting\_started/installation.md) for other configurations.
Expand Down
Loading