Skip to content

Nist submission 2.0 #6

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

Merged
merged 157 commits into from
Apr 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
2ad256d
Add support for GF384, GF576, and GF768
alecolo129 Feb 18, 2025
8687d01
Switch to version 2.0
alecolo129 Feb 18, 2025
f4d295d
Modify separators according to version 2.0
alecolo129 Feb 18, 2025
c66064d
Add implementation for LeafHash
alecolo129 Feb 18, 2025
f50341a
Disable old code
alecolo129 Feb 18, 2025
980e2a0
Refactor
alecolo129 Feb 18, 2025
723c4ae
Remove generic argument from LeafHasher
alecolo129 Feb 19, 2025
f1df339
Add leaf commitment and test vectors
alecolo129 Feb 19, 2025
8c5e1d8
Add constraint on lenght of extended field
alecolo129 Feb 20, 2025
b7ca3c2
Add batch vector commitment
alecolo129 Feb 20, 2025
eec521c
Add bitset crate to dependencies
alecolo129 Feb 24, 2025
e9ad858
Implement BAVAC opening and reconstruct
alecolo129 Feb 24, 2025
611941f
Add test vectors for BAVAC
alecolo129 Feb 24, 2025
55780a7
Use references instead of cloning value in BAVAC opening
alecolo129 Feb 24, 2025
3d90590
Refactor
alecolo129 Feb 24, 2025
3d73443
Refactor
alecolo129 Feb 24, 2025
76b7f2b
Implement mul by reference for larger fields
alecolo129 Feb 25, 2025
f49c16c
Implement BAVAC in EM mode.
alecolo129 Feb 25, 2025
7b3fa72
Add test data for BAVAC in em mode
alecolo129 Feb 25, 2025
27eb786
Refactor
alecolo129 Feb 25, 2025
318a684
Refactor
alecolo129 Feb 25, 2025
b5b61b7
Add test vectors for EM mode
alecolo129 Feb 25, 2025
7a2355c
Add tau parameters for EM mode
alecolo129 Feb 25, 2025
5e027b8
Refactor
alecolo129 Feb 27, 2025
0cb1821
Add first volecommit implementation
alecolo129 Feb 27, 2025
0ed8b92
Use single trait for bavc
alecolo129 Feb 27, 2025
24baf80
Add Lambda to LeafHaser trait
alecolo129 Feb 27, 2025
9676889
Refactor
alecolo129 Feb 27, 2025
29dcb83
Replace old types with new bavc types
alecolo129 Feb 27, 2025
a678f45
Refactor
alecolo129 Feb 28, 2025
5c97ab8
Add challenge decomposition
alecolo129 Mar 3, 2025
8628e90
Use wrapper for bavac reconstruct output
alecolo129 Mar 3, 2025
650f59f
Implement vole reconstruct
alecolo129 Mar 3, 2025
fbf670b
Remove unused import
alecolo129 Mar 3, 2025
f7183be
Refactor
Mar 4, 2025
ca0a48d
Refactor
alecolo129 Mar 4, 2025
c68a29b
Refactor
alecolo129 Mar 4, 2025
67b86f7
Add constraints on LambdaBytes
alecolo129 Mar 4, 2025
af27718
Refactor
alecolo129 Mar 4, 2025
b18b9b0
Refactor and add comments
alecolo129 Mar 4, 2025
aee1435
Move helper functions outside of bavc trait
alecolo129 Mar 4, 2025
640ef86
Add vole test vectors
alecolo129 Mar 5, 2025
53ecf30
Update OWF trait
alecolo129 Mar 5, 2025
efad41e
Create wrappers for vole return values and write tests
alecolo129 Mar 5, 2025
9ee72bd
Add hash array function
alecolo129 Mar 5, 2025
93dc9ce
Refactor
alecolo129 Mar 5, 2025
7dc6c6e
Refactor bit extraction algorithms
alecolo129 Mar 5, 2025
6cb71f0
Refactor bit extraction algorithms
alecolo129 Mar 5, 2025
70b01ef
Refactor
alecolo129 Mar 6, 2025
0cbda03
Enable old rijndael functions
alecolo129 Mar 6, 2025
9c07dba
Implement inverse norm for GF8
alecolo129 Mar 6, 2025
ceb3289
Add owf parameter
alecolo129 Mar 7, 2025
1834c82
First implementation of aes witness extension
alecolo129 Mar 7, 2025
d508b2c
Precompute GF8 inverse norms
Mar 10, 2025
52c60aa
Add witness extension EM mode.
alecolo129 Mar 10, 2025
915c3c2
Refactor
alecolo129 Mar 10, 2025
38bcc2d
First implementation of key constraints
alecolo129 Mar 12, 2025
2a29f81
Implement key constraints
alecolo129 Mar 14, 2025
4d819ac
Add bit squaring for GF8
alecolo129 Mar 19, 2025
e7f8379
Implement missing aes functions
alecolo129 Mar 20, 2025
b9a06d3
Add helper function for extracting bits
alecolo129 Mar 20, 2025
497a9c6
Derive constraints for encryption rounds
alecolo129 Mar 20, 2025
24799c6
Add arithmetic operations
alecolo129 Mar 20, 2025
8b5fcd3
Add import
alecolo129 Mar 20, 2025
8b3d143
Refactor
alecolo129 Mar 20, 2025
55b3f11
Refactor
alecolo129 Mar 21, 2025
465ca47
Add wgrind parameter
alecolo129 Mar 21, 2025
7740c0c
Implement aes round constraints
alecolo129 Mar 21, 2025
292b357
Add sum_poly_bits
alecolo129 Mar 21, 2025
6ecc2de
Refactor
alecolo129 Mar 21, 2025
a1028f3
Fix byte squaring. Add helper trait for derving field element from bi…
alecolo129 Mar 26, 2025
ad749b5
Fix signature size for FAEST128s
alecolo129 Mar 26, 2025
910a829
Modify lift_and_process signature
alecolo129 Mar 26, 2025
f6275c3
Fix key constraints
alecolo129 Mar 26, 2025
ea35ef3
Fix squaring and field multiplication
alecolo129 Mar 26, 2025
217f3f9
Implement signature and TVs for FAEST128s
alecolo129 Mar 26, 2025
0ca012f
Refactor
alecolo129 Mar 26, 2025
6bc0b14
Refactor
alecolo129 Mar 26, 2025
605d306
Refactor
alecolo129 Mar 26, 2025
11eda4a
Split byte commitments into separate file
alecolo129 Mar 26, 2025
3f59327
Refactor
alecolo129 Mar 26, 2025
e48735b
Refactor
alecolo129 Mar 27, 2025
aec289d
Add test vectors for signing
alecolo129 Mar 27, 2025
e72f853
Derive Clone for Hasher
alecolo129 Mar 27, 2025
a4739c1
Support signing in aes std mode
alecolo129 Mar 27, 2025
c8a4f7a
Refactor
alecolo129 Mar 27, 2025
d153802
Support signature in EM mode and add TVs
alecolo129 Mar 29, 2025
d7a81af
Adjust parameters for em mode
alecolo129 Mar 29, 2025
4435e3f
Make NSTBytes divisible by 2
alecolo129 Mar 31, 2025
0b4e8ab
Add helper function for xoring byte slices
alecolo129 Mar 31, 2025
e5f944f
Refactor encryption constraints
alecolo129 Mar 31, 2025
99cdcf3
Refactor
alecolo129 Apr 1, 2025
79d2f8b
Add traits for add_round_key and state_to_bytes
alecolo129 Apr 1, 2025
b6272cb
remove inports
alecolo129 Apr 1, 2025
64f24e5
Format
alecolo129 Apr 1, 2025
d1c0380
Merge enc_cstrnts and enc_cstrnts_em
alecolo129 Apr 1, 2025
fa12e7a
Start implementing verification
alecolo129 Apr 4, 2025
901c6b8
Consider signature padding in key reconstruction
alecolo129 Apr 7, 2025
c22695d
Bug fix
alecolo129 Apr 7, 2025
af05ca3
Change visibility of reshape_and_to_field
alecolo129 Apr 7, 2025
ee8ab4f
Bug fix
alecolo129 Apr 7, 2025
e727eea
Refactor
alecolo129 Apr 7, 2025
7feb406
Add trait implementations for Scalar commitments
alecolo129 Apr 7, 2025
2791c7a
Bug fix
alecolo129 Apr 7, 2025
7c80ac0
Add helper functions
alecolo129 Apr 7, 2025
2a70ed6
Refactor
alecolo129 Apr 7, 2025
30d0cb3
Enable verification
alecolo129 Apr 7, 2025
35a133c
Add verification in EM mode
alecolo129 Apr 7, 2025
8e42d39
Remove print statement
alecolo129 Apr 9, 2025
45524b0
Add crate exports
alecolo129 Apr 9, 2025
a83e684
Remove unused line
alecolo129 Apr 9, 2025
c78330b
Add traits for aes round functions
alecolo129 Apr 9, 2025
0e4d84a
Enable generic tests
alecolo129 Apr 9, 2025
e74fc1a
Refactor
alecolo129 Apr 9, 2025
6c00eb9
Enable doc tests and macros
alecolo129 Apr 9, 2025
5e7c0d1
Add key generation
alecolo129 Apr 9, 2025
5218f4d
Add lift and process function
alecolo129 Apr 9, 2025
d467577
Refactor
alecolo129 Apr 9, 2025
8574d32
Use VoleCommitments instead of GenericArrays
alecolo129 Apr 9, 2025
e5e007e
Implement key expansion
alecolo129 Apr 9, 2025
560291c
Implement verifier's vole commitments
alecolo129 Apr 9, 2025
180f650
Refactor
alecolo129 Apr 9, 2025
17df6d4
Implement verification in non-em mode
alecolo129 Apr 9, 2025
b4bee4a
Verify last bits of challenge 3 are 0s
alecolo129 Apr 9, 2025
739d711
Add benches
alecolo129 Apr 9, 2025
f029311
Refactor
alecolo129 Apr 10, 2025
9413da9
Use reference instead of moving field elements
alecolo129 Apr 10, 2025
f69b829
Take challenge as argument in hash functions
alecolo129 Apr 10, 2025
ba1b43f
Refactor
alecolo129 Apr 10, 2025
36c26be
Remove unnecessary allocations
alecolo129 Apr 10, 2025
b6c6b52
Restore example
alecolo129 Apr 10, 2025
fe8ccf2
Refactor
alecolo129 Apr 11, 2025
5bc7f89
Remove unused parameters and restore old tests
alecolo129 Apr 14, 2025
bdcdd3d
Cargo fmt
alecolo129 Apr 14, 2025
cb012a5
Use references instead of moving values
alecolo129 Apr 14, 2025
ef24ed1
Refactor
alecolo129 Apr 14, 2025
a3b19ab
Use boxed arrays in convert_to_vole
alecolo129 Apr 14, 2025
9e6cf51
Loop only on owf key bytes
alecolo129 Apr 15, 2025
27db8d9
Update KATs
alecolo129 Apr 15, 2025
4d4a9e1
Update to nist-pqc-seeded-rng v0.2.1
alecolo129 Apr 15, 2025
8371204
Use swap_remove instead of unwrapping
alecolo129 Apr 15, 2025
526829e
Refactor
alecolo129 Apr 15, 2025
409abf6
Add check on first bits on sk desrialization
alecolo129 Apr 15, 2025
877e548
Add boxed byte representation for Field elements
alecolo129 Apr 15, 2025
8aa8619
Add read into boxed array
alecolo129 Apr 15, 2025
547ceb9
Use boxes instead of moving arrays
alecolo129 Apr 15, 2025
35d3fe7
Remove unnecessary function parameters
alecolo129 Apr 16, 2025
512559c
Reduce trait visibility
alecolo129 Apr 16, 2025
2b66930
Refactor
alecolo129 Apr 16, 2025
315878f
Use traits instead of generic functions
alecolo129 Apr 16, 2025
9d1e33d
Remove unnecessary generic parameters
alecolo129 Apr 16, 2025
7b6157c
refactor
alecolo129 Apr 16, 2025
3301925
Avoid useless vector initialization
alecolo129 Apr 16, 2025
c8bc28b
Cargo fmt
alecolo129 Apr 16, 2025
b42f409
Fix test
alecolo129 Apr 16, 2025
2356362
Fix cargo clippy
alecolo129 Apr 16, 2025
9569bdc
Update Rust version to 1.85
alecolo129 Apr 16, 2025
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 .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
matrix:
toolchain:
- stable
- "1.78"
- "1.85"
name: Test with Rust ${{matrix.toolchain}} toolchain
steps:
- uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,13 @@ zeroize = { version = "1.2", optional = true, default-features = false, features
] }
paste = "1"
itertools = { version = "0.14", default-features = false }
bit-set = "0.8.0"

[dev-dependencies]
criterion = "0.5"
generic-tests = "0.1"
hex = "0.4"
nist-pqc-seeded-rng = { version = "0.2", default-features = false }
nist-pqc-seeded-rng = { version = "0.2.1", default-features = false }
rand = { version = "0.8", features = ["small_rng"] }
rand_chacha = { version = "0.3" }
serde = { version = "1", features = ["derive"] }
Expand All @@ -53,7 +54,8 @@ serde = ["dep:serde", "generic-array/serde"]
opt-simd = []

[[bench]]
name = "bench"
name = "faest"
path = "benches/bench.rs"
required-features = ["randomized-signer"]
harness = false
test = false
Expand Down
1 change: 1 addition & 0 deletions benches/bench.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#![allow(unused_imports, dead_code)]
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use faest::*;
use rand::{RngCore, SeedableRng};
Expand Down
1 change: 1 addition & 0 deletions examples/simple.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#![allow(unused_imports, dead_code)]
use faest::*;
use signature::RandomizedSigner;
use signature::{Signer, Verifier};
Expand Down
Loading