dcrypt_params/pqc/
falcon.rs

1//! Constants for Falcon signature algorithm
2
3/// Falcon degree parameter size for Falcon-512
4pub const FALCON_512_N: usize = 512;
5
6/// Falcon degree parameter size for Falcon-1024
7pub const FALCON_1024_N: usize = 1024;
8
9/// Structure containing Falcon-512 parameters
10pub struct Falcon512Params {
11    /// Polynomial degree
12    pub n: usize,
13
14    /// Modulus
15    pub q: u16,
16
17    /// Standard deviation for signatures
18    pub sigma: f64,
19
20    /// Public key size in bytes
21    pub public_key_size: usize,
22
23    /// Secret key size in bytes
24    pub secret_key_size: usize,
25
26    /// Signature size in bytes
27    pub signature_size: usize,
28}
29
30/// Falcon-512 parameters (NIST security level 1)
31pub const FALCON512: Falcon512Params = Falcon512Params {
32    n: FALCON_512_N,
33    q: 12289,
34    sigma: 165.0,
35    public_key_size: 897,
36    secret_key_size: 1281,
37    signature_size: 666,
38};
39
40/// Structure containing Falcon-1024 parameters
41pub struct Falcon1024Params {
42    /// Polynomial degree
43    pub n: usize,
44
45    /// Modulus
46    pub q: u16,
47
48    /// Standard deviation for signatures
49    pub sigma: f64,
50
51    /// Public key size in bytes
52    pub public_key_size: usize,
53
54    /// Secret key size in bytes
55    pub secret_key_size: usize,
56
57    /// Signature size in bytes
58    pub signature_size: usize,
59}
60
61/// Falcon-1024 parameters (NIST security level 5)
62pub const FALCON1024: Falcon1024Params = Falcon1024Params {
63    n: FALCON_1024_N,
64    q: 12289,
65    sigma: 168.0,
66    public_key_size: 1793,
67    secret_key_size: 2305,
68    signature_size: 1280,
69};