CRS
Isogeny-based post-quantum Diffie-Hellman protocol.
setup.h
1#ifndef _setup_H_
2#define _setup_H_
3
4#include <stdio.h>
5#include <stdlib.h>
6
7#include "../../src/EllipticCurves/models.h"
8#include "../../src/EllipticCurves/memory.h"
9
10#include <gmp.h>
11#include <flint/fmpz.h>
12#include <flint/fq.h>
13
14#define BASE_p "12037340738208845034383383978222801137092029451270197923071397735408251586669938291587857560356890516069961904754171956588530344066457839297755929645858769"
15#define BASE_q "12037340738208845034383383978222801137092029451270197923071397735408251586669938291587857560356890516069961904754171956588530344066457839297755929645858769"
16
17#define BASE_A "10861338504649280383859950140772947007703646408372831934324660566888732797778932142488253565145603672591944602210571423767689240032829444439469242521864171"
18#define BASE_B "1"
19#define BASE_t "-147189550172528104900422131912266898599387555512924231762107728432541952979290"
20
21#define NB_PRIMES 24
22#define MAX_EXTENSION_DEGREE 9
23
24/*********************************************
25 l-primes structure
26*********************************************/
27typedef struct lprime_t{
28
29 fmpz_t l;
30
31 uint type; // Unused (0), Radical (1) or Velu (2)
32 uint lbound, hbound; // Bounds for the walk
33 uint r; // Working extension degree
34 uint bkw; // 1 if backward walking possible
35} lprime_t ;
36
37/*********************************************
38 Global configuration structure
39*********************************************/
40typedef struct cfg_t{
41
43 MG_curve_t *E; //base curve
44
46 uint nb_primes; // number of l-primes used
47 lprime_t *lprimes; // the l-primes ordered in an lprime_t array
48
50 fq_ctx_t *fields;
51
53 uint seed;
54} cfg_t;
55
56
57void lprime_init(lprime_t *);
58lprime_t *lprime_init_();
59void lprime_set(lprime_t *, fmpz_t, uint, uint, uint, uint, uint);
60void lprime_clear(lprime_t *);
61
62cfg_t *cfg_init_set();
63void cfg_print(cfg_t *);
64void cfg_clear(cfg_t *);
65
66#endif
67
Definition: models.h:34
Definition: setup.h:40
Definition: setup.h:27