CRS
Isogeny-based post-quantum Diffie-Hellman protocol.
src
Exchange
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
*********************************************/
27
typedef
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
*********************************************/
40
typedef
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
57
void
lprime_init(
lprime_t
*);
58
lprime_t
*lprime_init_();
59
void
lprime_set(
lprime_t
*, fmpz_t, uint, uint, uint, uint, uint);
60
void
lprime_clear(
lprime_t
*);
61
62
cfg_t
*cfg_init_set();
63
void
cfg_print(
cfg_t
*);
64
void
cfg_clear(
cfg_t
*);
65
66
#endif
67
MG_curve_t
Definition:
models.h:34
cfg_t
Definition:
setup.h:40
lprime_t
Definition:
setup.h:27
Generated by
1.9.2