Beka Barbakadze
58169f9365
refactor(c_api): add lwe secret binary key generation , bootstrapping key generation, lwe ciphertext encryption and decryption, all functions without seed.
2023-10-19 16:27:29 +04:00
Arthur Meyre
e14be3b41a
refactor(c_api): do not require a seed in the multi bit PBS keygen
...
BREAKING CHANGE:
function signature has changed, this is a breaking change
2023-10-19 13:15:54 +02:00
Arthur Meyre
f1c21888a7
chore(doc): encourage users to use dedicated keys to Radix or CRT
2023-10-19 09:52:22 +02:00
tmontaigu
2624beb7fa
fix(integer): fix unsigned_overflowing_sub on trivials
...
unsigned_overflowing_sub does an independant subtraction
on each blocks with a correcting term being added to avoid
trashing the padding bit (lhs - rhs + correction).
The correction depended on rhs's degree.
e.g. if rhs's degree was in range 1..(msg_mod-1) -> correction =
msg_mod
However if rhs's degree was zero (so rhs is a trivial 0), the correction
was also 0, however the borrow propagation rely on that correction to
always be added.
2023-10-18 19:26:01 +02:00
tmontaigu
e44c38a102
chore(ci): tell nvm to use node version 20 in wasm parallel tests
2023-10-18 19:04:27 +02:00
Arthur Meyre
4535230874
refactor(core): rename pbs_modulus_switch to fast_pbs_modulus_switch
...
- update docstring to reflect the change that has been done
BREAKING CHANGE:
pbs_modulus_switch is currently part of the public API and the rename is
therefore a breaking change
2023-10-17 16:53:19 +02:00
Arthur Meyre
a7b2d9b228
chore(ci): update check toolchain to latest nightly
...
- no new lints
2023-10-17 16:13:26 +02:00
Arthur Meyre
ab923a3ebc
fix(crt): fix mul for non symmetrical parameters
...
- add non reg test for 32 bits mul with 5_1 parameters
2023-10-17 14:22:00 +02:00
Arthur Meyre
a0e85fb355
feat(core): add more custom moduli primitives to UnsignedInteger
...
As always for now the objective is to have functional custom modulus
implementations, not efficient ones
- add multiplication
- add leading_zeros
- add neg
2023-10-17 13:31:35 +02:00
Arthur Meyre
ecee305340
chore(core): change prelude algorithms imports
2023-10-17 13:31:35 +02:00
Mayeul@Zama
f08ea8cf85
fix(integer): fix max_degree formula
2023-10-17 11:35:08 +02:00
Mayeul@Zama
096e320b97
fix(crt): use 3_3 parameters for crt tests
2023-10-17 11:35:08 +02:00
Mayeul@Zama
95aac64c1c
style(crt): compute modulus from base in tests
2023-10-17 11:35:08 +02:00
Mayeul@Zama
76aaa56691
fix(integer): fix small mul test
2023-10-17 11:35:08 +02:00
Mayeul@Zama
a40489bdd2
style(shortint): do not use assign ops on a cloned input
2023-10-17 11:35:08 +02:00
Mayeul@Zama
4bf617eb10
feat(shortint): cleanup input if necessary in ops
2023-10-17 11:35:08 +02:00
Mayeul@Zama
070073d229
feat(shortint): cleanup input if necessary in apply_lookup_table_bivariate
2023-10-17 11:35:08 +02:00
Arthur Meyre
6c1ca8e32b
chore(core): use modular_distance instead of abs_diff in fft tests
...
- we are doing backwards conversions to the torus, so values could wrap
around near 0 or u64::MAX, take the modular distance which represents the
distance on the torus
2023-10-17 10:29:24 +02:00
Arthur Meyre
6523610ca4
refactor(core): refactor conversion code from f64 to i64
...
- observed that the subnormal case is already handled by the shift logic so
the special handling was not required
- add test for avx512 conversion
2023-10-17 10:29:24 +02:00
Arthur Meyre
41c20e22f5
chore(ci): enable AVX512 for integer and multi bit integer tests
2023-10-17 10:28:14 +02:00
J-B Orfila
4a00d25cb1
doc: updating doc for v0.4
tfhe-rs-0.4.0
2023-10-16 17:56:17 +02:00
tmontaigu
8c9ee64612
fix(integer): better estimate which algorithm to choose
2023-10-16 16:19:00 +02:00
tmontaigu
bfdfbfac0f
chore(integer): add tests for default signed rotations/shifts
2023-10-16 16:16:07 +02:00
tmontaigu
dbe7bdcd5c
feat(integer): map cmux to if_then_else
2023-10-16 16:15:49 +02:00
tmontaigu
6d77ff18ad
chore(integer): add full_propagate test
2023-10-16 14:11:44 +02:00
tmontaigu
7d4d0e0b16
fix(integer): fix is_scalar_add_possible
2023-10-16 14:11:44 +02:00
Mayeul@Zama
b27762232c
feat(wasm): add integers safe deserialization
2023-10-16 10:19:09 +02:00
Mayeul@Zama
f597d0f06f
feat(c_api): add base and compress integers safe deserialization
2023-10-16 10:19:09 +02:00
dependabot[bot]
ee188448f3
chore(deps): bump tj-actions/changed-files from 39.2.1 to 39.2.2
...
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files ) from 39.2.1 to 39.2.2.
- [Release notes](https://github.com/tj-actions/changed-files/releases )
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md )
- [Commits](db153baf73...408093d9ff )
---
updated-dependencies:
- dependency-name: tj-actions/changed-files
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-10-16 09:51:26 +02:00
Mayeul@Zama
ee49f048c7
style(integer): rename num_blocks_per_integer
2023-10-13 14:18:44 +02:00
Mayeul@Zama
a9b09ecc45
feat(c_api): add compact integer safe deserialization
2023-10-13 14:18:44 +02:00
Mayeul@Zama
efc243edc9
feat(global): refactor ciphertext conformance
2023-10-13 14:18:44 +02:00
tmontaigu
bc34411d3f
feat(integer): speed-up division by using overflowing_sub
...
using overflowing sub allows to remove the comparison used
in the algorithm, giving significant performance boost.
before
8 16 32 40 64 128 256
hpc7a: `981 ms` `2.53 s` `6.41 s` `9.04 s` `16.1 s` `39.3 s` `1.55 min`
m6i: `1.10 s` `2.97 s` `7.17 s` `10.5 s` `19.7 s` `50.2 s` `2.11 min`
afer:
8 16 32 40 64 128 256
hpc7a: `604 ms` `1.6 s` `3.8 s` `5.14 s` `9.4 s` `22.4 s` `54.613 s`
m6i: `659 ms` `1.77 s` `4.4 s` `5.9 s` `11.5 s` `29.8 s` `87.95 s`
2023-10-12 14:35:36 +02:00
J-B Orfila
c7923ff3ed
refactor(shortint): update compact parameters
2023-10-12 11:56:50 +02:00
Arthur Meyre
7534b68e5c
test(core): use polynomial tests from NTT PR
...
- initial work done in https://github.com/zama-ai/tfhe-rs/pull/394
- useful reworks of the tests have been waiting in that PR, this is to
have those tests while NTT usage gets validated
co-authored-by: sarah-ek <sarah.elkazdadi@zama.ai >
csprng-0.4.0
2023-10-12 10:40:15 +02:00
tmontaigu
655f7e6214
chore(hlapi): improve scalar type convertion
2023-10-10 17:18:32 +02:00
tmontaigu
b8556ddbd4
feat(hlapi): add C API support for FheInt
2023-10-10 17:18:32 +02:00
tmontaigu
cab7439064
fix(integer): handle trivial ct in if_then_else
...
if_then_else uses two calls to zero_out_if.
In zero_out_if, if the condition block given has a degree of 0
then it would return 0, without calling the predicate function.
This is not correct, as its the predicate function that
gives whether the output should be 0 or the original ciphertext.
Which meant that if if_then_else received a condition with a
degree of 0, it would always return 0.
2023-10-10 17:18:12 +02:00
tmontaigu
f8a8780651
fix(integer): remove remove if_then_else assert
...
unchecked_if_then_else had an assert that required
that the condition value looked like it encrypts a boolean.
This check was made using the degree.
However, the only cases where a value looks like it encrypts a boolean
value is when they are the result of a comparison (lt, le, eq, etc).
But there are other cases were the value holds a boolean value but
due to how degree works, it's not possible to know thus limiting the
use of if_then_else.
So we remove that assert, and rely on the developper knowing
its condition is 0 or 1.
2023-10-09 18:35:26 +02:00
tmontaigu
bb3c8e7d5d
feat(integer): add unsigned_overflowing_sub
2023-10-09 15:39:41 +02:00
Arthur Meyre
69536960c3
chore: fix typos
2023-10-09 14:49:13 +02:00
dependabot[bot]
52a7c52a49
chore(deps): bump tj-actions/changed-files from 39.2.0 to 39.2.1
...
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files ) from 39.2.0 to 39.2.1.
- [Release notes](https://github.com/tj-actions/changed-files/releases )
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md )
- [Commits](8238a41032...db153baf73 )
---
updated-dependencies:
- dependency-name: tj-actions/changed-files
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-10-09 10:21:04 +02:00
tmontaigu
751c407ba5
feat(wasm): add FheInt support
2023-10-05 15:52:45 +02:00
Mayeul@Zama
492d348138
test(serialization): run tests in CI
2023-10-05 09:15:58 +02:00
Mayeul@Zama
e7df7eb5ef
test(serialization): add serialization test
2023-10-05 09:15:58 +02:00
Mayeul@Zama
380ee52986
test(hlapi): test compact integer conformance
2023-10-05 09:15:58 +02:00
Mayeul@Zama
439a28f68b
feat(global): impl ParameterSetConformant for ciphertexts
2023-10-05 09:15:58 +02:00
Mayeul@Zama
2eb1e37ca7
feat(global): add safe deserialization
2023-10-05 09:15:58 +02:00
Mayeul@Zama
eb1b136c45
feat(core): add to_equivalent_lwe_dimension
2023-10-05 09:15:58 +02:00
Mayeul@Zama
1376bcba7c
chore(test): add type hint for rust-analyzer
2023-10-05 09:15:58 +02:00