-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSABER_params.h
54 lines (43 loc) · 1.67 KB
/
SABER_params.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef PARAMS_H
#define PARAMS_H
/* Change this for different security strengths */
// #define SABER_L 2 /* LightSaber */
#define SABER_L 2 /* Saber */
// #define SABER_L 4 /* FireSaber */
/* Don't change anything below this line */
#if SABER_L == 2
#define SABER_MU 10
#define SABER_ET 3
#elif SABER_L == 3
#define SABER_MU 8
#define SABER_ET 4
#elif SABER_L == 4
#define SABER_MU 6
#define SABER_ET 6
#endif
#define SABER_EQ 13
#define SABER_EP 10
#define SABER_N 256
#define SABER_Q 8192
#define SABER_SEEDBYTES 32
#define SABER_NOISE_SEEDBYTES 32
#define SABER_KEYBYTES 32
#define SABER_HASHBYTES 32
#define SABER_PWBYTES 32
#define SABER_IDBYTES 32
#define SABER_PAKE_KEYBYTES 32
#define SABER_POLYCOINBYTES (SABER_MU * SABER_N / 8)
#define SABER_POLYBYTES (SABER_EQ * SABER_N / 8)
#define SABER_POLYVECBYTES (SABER_L * SABER_POLYBYTES)
#define SABER_POLYCOMPRESSEDBYTES (SABER_EP * SABER_N / 8)
#define SABER_POLYVECCOMPRESSEDBYTES (SABER_L * SABER_POLYCOMPRESSEDBYTES)
#define SABER_SCALEBYTES_KEM (SABER_ET * SABER_N / 8)
#define SABER_INDCPA_PUBLICKEYBYTES (SABER_POLYVECCOMPRESSEDBYTES + SABER_SEEDBYTES)
#define SABER_INDCPA_SECRETKEYBYTES (SABER_POLYVECBYTES)
#define SABER_PUBLICKEYBYTES (SABER_INDCPA_PUBLICKEYBYTES)
#define SABER_SECRETKEYBYTES (SABER_INDCPA_SECRETKEYBYTES + SABER_INDCPA_PUBLICKEYBYTES + SABER_HASHBYTES + SABER_KEYBYTES)
#define SABER_BYTES_CCA_DEC (SABER_POLYVECCOMPRESSEDBYTES + SABER_SCALEBYTES_KEM)
#define HASH_BYTES (2*SABER_IDBYTES + 3 * SABER_POLYVECBYTES + SABER_PAKE_KEYBYTES)
#define PAKE_SENDC0 (SABER_IDBYTES + (SABER_POLYVECBYTES) + SABER_SEEDBYTES)
#define PAKE_SENDS0 (SABER_POLYVECBYTES + CRYPTO_CIPHERTEXTBYTES + SABER_PAKE_KEYBYTES)
#endif