Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
isogeny_walks.h
Go to the documentation of this file.
1//
2// Isogeny walks via radical computations
3//
4
5#ifndef SSEC_ISOGENY_WALKS_H
6#define SSEC_ISOGENY_WALKS_H
7
8#include "fp2.h"
9
10// 2-isogenies
11
12// Multiplications by specific "small" constants
13void fp2_mul_by_1488(fp2_t *output, fp2_t input);
14void fp2_mul_by_2976(fp2_t *output, fp2_t input);
15void fp2_mul_by_162000(fp2_t *output, fp2_t input);
16void fp2_mul_by_324000(fp2_t *output, fp2_t input);
17void fp2_mul_by_2532192(fp2_t *output, fp2_t input);
18void fp2_mul_by_645205500(fp2_t *output, fp2_t input);
19void fp2_mul_by_8748000000(fp2_t *output, fp2_t input);
20
21void isogeny_walks_2(fp2_t *output, fp2_t input_prev, fp2_t input, const uint8_t *input_path, size_t input_length);
23void isogeny_walks_get_previous_step_2(fp2_t *output_j, fp2_t input_A);
24
25void isogeny_walks_sample_bit_string(uint8_t *output);
26void isogeny_walks_2_slow(fp2_t *j0, fp2_t *j1, fp2_t input_prev, fp2_t input, const uint8_t *input_path, size_t input_length);
27
28// 3-isogenies
29
30void isogeny_walks_3(fp2_t *output_a1, fp2_t *output_a3, fp2_t input_a1, fp2_t input_a3, const uint8_t *input_path, size_t input_length);
31void isogeny_walks_get_points_3(fp2_t *output, fp2_t input_A);
32void isogeny_walks_from_montgomery_model_3(fp2_t *output_a1, fp2_t *output_a3, fp2_t input_A, fp2_t input_xP);
33void isogeny_walks_switch_from_model_3(fp2_t *output_j, fp2_t input_a1, fp2_t input_a3);
34
35void isogeny_walks_sample_trit_string(uint8_t *output);
36
37void isogeny_walks_get_points_3_fp(fp_t *output, const fp_t *input_A);
38void isogeny_walks_to_montgomery_model_3_fp(fp_t *output_A, const fp_t *input_t);
39void isogeny_walks_3_fp(fp_t output_A, const fp_t input_A, int input_length);
40
41#endif // SSEC_ISOGENY_WALKS_H
void isogeny_walks_from_montgomery_model_3(fp2_t *output_a1, fp2_t *output_a3, fp2_t input_A, fp2_t input_xP)
void isogeny_walks_3(fp2_t *output_a1, fp2_t *output_a3, fp2_t input_a1, fp2_t input_a3, const uint8_t *input_path, size_t input_length)
void isogeny_walks_get_points_3_fp(fp_t *output, const fp_t *input_A)
void isogeny_walks_get_points_3(fp2_t *output, fp2_t input_A)
void fp2_mul_by_2532192(fp2_t *output, fp2_t input)
void isogeny_walks_sample_bit_string(uint8_t *output)
void isogeny_walks_2_slow(fp2_t *j0, fp2_t *j1, fp2_t input_prev, fp2_t input, const uint8_t *input_path, size_t input_length)
void fp2_mul_by_1488(fp2_t *output, fp2_t input)
void isogeny_walks_switch_from_model_3(fp2_t *output_j, fp2_t input_a1, fp2_t input_a3)
void isogeny_walks_2(fp2_t *output, fp2_t input_prev, fp2_t input, const uint8_t *input_path, size_t input_length)
void isogeny_walks_sample_trit_string(uint8_t *output)
void isogeny_walks_get_previous_step_2(fp2_t *output_j, fp2_t input_A)
void isogeny_walks_from_montgomery_model_2(fp2_t *output_j, fp2_t input_A)
void fp2_mul_by_645205500(fp2_t *output, fp2_t input)
void isogeny_walks_3_fp(fp_t output_A, const fp_t input_A, int input_length)
void fp2_mul_by_8748000000(fp2_t *output, fp2_t input)
void fp2_mul_by_324000(fp2_t *output, fp2_t input)
void fp2_mul_by_2976(fp2_t *output, fp2_t input)
void isogeny_walks_to_montgomery_model_3_fp(fp_t *output_A, const fp_t *input_t)
void fp2_mul_by_162000(fp2_t *output, fp2_t input)
uint64_t fp_t[FIELD_64BITS_WORDS]
Definition fp.h:12
Definition fp2.h:10