|
123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifndef PARAMS_H
- #define PARAMS_H
-
- #ifndef KYBER_K
- #define KYBER_K 2 /* Change this for different security strengths */
- #endif
-
- /* Don't change parameters below this line */
-
- #define KYBER_N 256
- #define KYBER_Q 3329
-
- #define KYBER_ETA 2
-
- #define KYBER_SYMBYTES 32 /* size in bytes of hashes, and seeds */
- #define KYBER_SSBYTES 32 /* size in bytes of shared key */
-
- #define KYBER_POLYBYTES 384
- #define KYBER_POLYVECBYTES (KYBER_K * KYBER_POLYBYTES)
-
-
- #if KYBER_K == 2
- #define KYBER_POLYCOMPRESSEDBYTES 96
- #define KYBER_POLYVECCOMPRESSEDBYTES (KYBER_K * 320)
- #elif KYBER_K == 3
- #define KYBER_POLYCOMPRESSEDBYTES 128
- #define KYBER_POLYVECCOMPRESSEDBYTES (KYBER_K * 320)
- #elif KYBER_K == 4
- #define KYBER_POLYCOMPRESSEDBYTES 160
- #define KYBER_POLYVECCOMPRESSEDBYTES (KYBER_K * 352)
- #endif
-
- #define KYBER_INDCPA_MSGBYTES KYBER_SYMBYTES
- #define KYBER_INDCPA_PUBLICKEYBYTES (KYBER_POLYVECBYTES + KYBER_SYMBYTES)
- #define KYBER_INDCPA_SECRETKEYBYTES (KYBER_POLYVECBYTES)
- #define KYBER_INDCPA_BYTES (KYBER_POLYVECCOMPRESSEDBYTES + KYBER_POLYCOMPRESSEDBYTES)
-
- #define KYBER_PUBLICKEYBYTES (KYBER_INDCPA_PUBLICKEYBYTES)
- #define KYBER_SECRETKEYBYTES (KYBER_INDCPA_SECRETKEYBYTES + KYBER_INDCPA_PUBLICKEYBYTES + 2*KYBER_SYMBYTES) /* 32 bytes of additional space to save H(pk) */
- #define KYBER_CIPHERTEXTBYTES KYBER_INDCPA_BYTES
-
- #endif
|