Let us walk on the 3-isogeny graph
|
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <immintrin.h>
#include <assert.h>
#include <inttypes.h>
#include <stddef.h>
#include "../../rng.h"
#include "../../namespace.h"
#include "../fp-counters.h"
#include "../../primes.h"
Go to the source code of this file.
Data Structures | |
struct | uintbig |
Macros | |
#define | uintbig_1 COMMON(uintbig_1) |
#define | r_squared_mod_p COMMON(r_squared_mod_p) |
#define | p_minus_2 COMMON(p_minus_2) |
#define | inv_min_p_mod_r COMMON(inv_min_p_mod_r) |
#define | uintbig_bit COMMON(uintbig_bit) |
#define | uintbig_add COMMON(uintbig_add) |
#define | uintbig_sub COMMON(uintbig_sub) |
#define | p COMMON(p) |
#define | fp_1 COMMON(fp_1) |
#define | fp_0 COMMON(fp_0) |
#define | fp_enc COMMON(fp_enc) |
#define | fp_dec COMMON(fp_dec) |
#define | fp_pow COMMON(fp_pow) |
#define | fp_add COMMON(fp_add) |
#define | fp_sub COMMON(fp_sub) |
#define | fp_mul COMMON(fp_mul) |
#define | fp_sqr COMMON(fp_sqr) |
#define | fp_issquare COMMON(fp_issquare) |
#define | fp_copy COMMON(fp_copy) |
#define | fp_cswap COMMON(fp_cswap) |
#define | fp_random COMMON(fp_random) |
#define | fp_inv COMMON(fp_inv) |
#define | UBITS 2048 |
#define | UINTBIG_LIMBS ((UBITS+63)/64) |
#define | uintbig_p COMMON(uintbig_p) |
#define | uintbig_four_sqrt_p COMMON(uintbig_four_sqrt_p) |
#define | uintbig_set COMMON(uintbig_set) |
#define | uintbig_mul3_64 COMMON(uintbig_mul3_64) |
#define | fp_2 COMMON(fp_2) |
#define | uintbig_1_ctidh COMMON(uintbig_1_ctidh) |
#define | fp_cmov COMMON(fp_cmov) |
Typedefs | |
typedef uint64_t | fp[NUMBER_OF_WORDS] |
typedef struct uintbig | uintbig |
Functions | |
bool | uintbig_add (fp x, fp const y, fp const z) |
bool | uintbig_sub (fp x, fp const y, fp const z) |
void | fp_enc (fp a, fp const b) |
void | fp_dec (fp a, fp const b) |
void | fp_pow (fp b, const fp e, const fp a) |
void | fp_add (fp c, const fp a, const fp b) |
void | fp_sub (fp c, const fp a, const fp b) |
void | fp_mul (fp c, const fp a, const fp b) |
void | fp_sqr (fp b, const fp a) |
bool | fp_issquare (fp const a) |
void | fp_copy (fp b, const fp a) |
void | fp_cswap (fp x, fp y, uint8_t c) |
void | fp_random (fp a) |
void | fp_inv (fp a) |
long long | uintbig_bit (uintbig const *x, uint64_t k) |
void | uintbig_set (uintbig *x, uint64_t y) |
void | uintbig_mul3_64 (fp *x, fp const *y, uint64_t z) |
void | fp_cmov (fp *a, const fp *b, uint8_t c) |
Variables | |
const fp | uintbig_1 |
const fp | r_squared_mod_p |
const fp | p_minus_2 |
const fp | inv_min_p_mod_r |
const fp | p |
const fp | fp_1 |
const fp | fp_0 |
const uintbig | uintbig_p |
const fp | uintbig_four_sqrt_p |
const fp | fp_2 |
const uintbig | uintbig_1_ctidh |
#define fp_0 COMMON(fp_0) |
Definition at line 50 of file fp-gmp.h.
Referenced by elligator_seeded(), poly_mul_low(), poly_mul_mid(), poly_mul_selfreciprocal(), poly_multieval_postcompute(), and xMUL().
Definition at line 48 of file fp-gmp.h.
Referenced by action(), elligator(), elligator_seeded(), fulltorsion_points(), validate(), xISOG_matryoshka(), and xMUL().
#define fp_add COMMON(fp_add) |
Definition at line 64 of file fp-gmp.h.
Referenced by elligator_seeded(), fp2_add(), fp2_inv(), fp2_is_square(), fp2_mul(), fp2_sqr(), fp2_sqrt_fast(), fulltorsion_points(), isogeny_to_montgomery(), isogeny_to_montgomery(), isogeny_walks_get_points_3(), isogeny_walks_get_points_3_fp(), isogeny_walks_get_points_3_fp(), isogeny_walks_to_montgomery_model_3_fp(), and isogeny_walks_to_montgomery_model_3_fp().
#define fp_cmov COMMON(fp_cmov) |
Definition at line 323 of file fp-gmp.h.
Referenced by action(), isogeny_walks_3_fp(), and isogeny_walks_get_points_3_fp().
#define fp_copy COMMON(fp_copy) |
Definition at line 79 of file fp-gmp.h.
Referenced by action(), cofactor_multiples(), elligator(), elligator_seeded(), fp2_conj(), fp2_copy(), fp2_copy(), fp2_sqrt_fast(), fp_curt(), fp_dec(), fp_enc(), fp_inv(), fp_inv(), fp_is_square(), fp_issquare(), fp_mul(), fp_pow(), fp_set_to_one(), fp_sqrt(), fulltorsion_points(), internal_derive(), isogeny_walks_3_fp(), isogeny_walks_3_fp(), isogeny_walks_get_points_3_fp(), poly_mul(), poly_mul_high(), poly_mul_low(), poly_mul_mid(), poly_mul_selfreciprocal(), poly_multieval_postcompute(), poly_multiprod2(), poly_multiprod2_selfreciprocal(), validate(), xISOG_matryoshka(), and xMUL().
#define fp_cswap COMMON(fp_cswap) |
Definition at line 82 of file fp-gmp.h.
Referenced by elligator(), elligator_seeded(), isogeny_walks_get_points_3_fp(), and isogeny_walks_get_points_3_fp().
#define fp_dec COMMON(fp_dec) |
Definition at line 58 of file fp-gmp.h.
Referenced by fp_inv(), fp_pow(), and fulltorsion_points().
#define fp_enc COMMON(fp_enc) |
#define fp_inv COMMON(fp_inv) |
Definition at line 88 of file fp-gmp.h.
Referenced by action(), fp2_inv(), fp2_inv(), isogeny_to_montgomery(), and isogeny_to_montgomery().
#define fp_issquare COMMON(fp_issquare) |
Definition at line 76 of file fp-gmp.h.
Referenced by elligator_seeded(), and isogeny_walks_get_points_3_fp().
#define fp_mul COMMON(fp_mul) |
Definition at line 70 of file fp-gmp.h.
Referenced by elligator_seeded(), fp2_inv(), fp2_mul(), fp2_sqr(), fp2_sqrt_fast(), fp_curt(), fp_dec(), fp_enc(), fp_from_mont(), fp_inv(), fp_inv(), fp_is_square(), fp_issquare(), fp_sqr(), fp_sqrt(), fp_to_mont(), isogeny_to_montgomery(), isogeny_to_montgomery(), isogeny_walks_get_points_3(), isogeny_walks_get_points_3_fp(), isogeny_walks_get_points_3_fp(), isogeny_walks_to_montgomery_model_3_fp(), and isogeny_walks_to_montgomery_model_3_fp().
#define fp_random COMMON(fp_random) |
Definition at line 85 of file fp-gmp.h.
Referenced by csidh(), elligator(), and fp2_test().
#define fp_sqr COMMON(fp_sqr) |
Definition at line 73 of file fp-gmp.h.
Referenced by elligator_seeded(), fp2_inv(), fp2_inv(), fp2_is_square(), fp2_sqrt_fast(), fp_curt(), fp_inv(), fp_inv(), fp_is_square(), fp_issquare(), fp_sqrt(), isogeny_to_montgomery(), isogeny_to_montgomery(), isogeny_walks_get_points_3_fp(), isogeny_walks_get_points_3_fp(), isogeny_walks_to_montgomery_model_3_fp(), and isogeny_walks_to_montgomery_model_3_fp().
#define fp_sub COMMON(fp_sub) |
Definition at line 67 of file fp-gmp.h.
Referenced by elligator_seeded(), fp2_inv(), fp2_mul(), fp2_sqr(), fp2_sqrt_slow(), fp2_sub(), fp_neg(), isogeny_to_montgomery(), isogeny_to_montgomery(), isogeny_walks_get_points_3(), isogeny_walks_get_points_3_fp(), isogeny_walks_get_points_3_fp(), isogeny_walks_to_montgomery_model_3_fp(), and isogeny_walks_to_montgomery_model_3_fp().
Definition at line 44 of file fp-gmp.h.
Referenced by fp_add(), fp_inv(), fp_issquare(), fp_mont_redc(), fp_mul(), fp_pow(), fp_random(), fp_sqr(), fp_sub(), and IsPrime().
#define r_squared_mod_p COMMON(r_squared_mod_p) |
#define UBITS 2048 |
Definition at line 247 of file fp-gmp.h.
Referenced by xMUL_vartime().
#define uintbig_bit COMMON(uintbig_bit) |
Definition at line 36 of file fp-gmp.h.
Referenced by xMUL(), and xMUL_vartime().
typedef struct uintbig uintbig |
Definition at line 864 of file fp-gmp.c.
Definition at line 840 of file fp-gmp.c.
Definition at line 800 of file fp-gmp.c.
Definition at line 789 of file fp-gmp.c.
void fp_inv | ( | fp | a | ) |
Definition at line 12 of file fp_inv2047m1l226.c.
bool fp_issquare | ( | fp const | a | ) |
Definition at line 12 of file fp_sqrt2047m1l226.c.
Definition at line 891 of file fp-gmp.c.
Definition at line 812 of file fp-gmp.c.
void fp_random | ( | fp | a | ) |
Definition at line 942 of file fp-gmp.c.
Definition at line 874 of file fp-gmp.c.
long long uintbig_bit | ( | uintbig const * | x, |
uint64_t | k ) |
void uintbig_set | ( | uintbig * | x, |
uint64_t | y ) |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |