├── .gitignore ├── LICENSE ├── README.md ├── Theta-Rust ├── .gitignore ├── Cargo.toml ├── README.md ├── benches │ ├── festa_chain.rs │ ├── isogeny_chain.rs │ ├── isogeny_chain_naive_strat.rs │ ├── msi.rs │ ├── no_strat.rs │ ├── sqi_chain.rs │ └── util.rs ├── gen_fp.sage ├── src │ ├── eccore.rs │ ├── fields.rs │ ├── finitefield │ │ ├── fp2_gen.rs │ │ ├── fp_gen.rs │ │ ├── mod.rs │ │ └── utils64.rs │ ├── lib.rs │ ├── main.rs │ ├── theta.rs │ └── theta_affine.rs └── strategy.py └── Theta-SageMath ├── .gitignore ├── README.md ├── benchmarks ├── benchmark_paper.py └── benchmark_theta.py ├── isogeny_diamond.py ├── montgomery_isogenies ├── __init__.py ├── isogenies_x_only.py ├── kummer_isogeny.py └── kummer_line.py ├── richelot_isogenies ├── __init__.py ├── divisor_arithmetic.py └── richelot_isogenies.py ├── tests ├── arithmetic.py ├── test_SIDH_attack.py ├── test_isogeny.py └── test_utils.py ├── theta_isogenies ├── __init__.py ├── gluing_isogeny.py ├── isogeny.py ├── isogeny_sqrt.py ├── isomorphism.py ├── morphism.py ├── product_isogeny.py └── product_isogeny_sqrt.py ├── theta_structures ├── __init__.py ├── couple_point.py ├── dimension_one.py ├── dimension_two.py ├── product_structure.py └── split_structure.py └── utilities ├── __init__.py ├── batched_inversion.py ├── discrete_log.py ├── fast_sqrt.py ├── order.py ├── polynomial_inversion.py ├── strategy.py ├── supersingular.py └── utils.py /.gitignore: -------------------------------------------------------------------------------- 1 | **/.DS_Store 2 | *.sage.py 3 | .idea/* 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/README.md -------------------------------------------------------------------------------- /Theta-Rust/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/.gitignore -------------------------------------------------------------------------------- /Theta-Rust/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/Cargo.toml -------------------------------------------------------------------------------- /Theta-Rust/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/README.md -------------------------------------------------------------------------------- /Theta-Rust/benches/festa_chain.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/benches/festa_chain.rs -------------------------------------------------------------------------------- /Theta-Rust/benches/isogeny_chain.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/benches/isogeny_chain.rs -------------------------------------------------------------------------------- /Theta-Rust/benches/isogeny_chain_naive_strat.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/benches/isogeny_chain_naive_strat.rs -------------------------------------------------------------------------------- /Theta-Rust/benches/msi.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/benches/msi.rs -------------------------------------------------------------------------------- /Theta-Rust/benches/no_strat.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/benches/no_strat.rs -------------------------------------------------------------------------------- /Theta-Rust/benches/sqi_chain.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/benches/sqi_chain.rs -------------------------------------------------------------------------------- /Theta-Rust/benches/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/benches/util.rs -------------------------------------------------------------------------------- /Theta-Rust/gen_fp.sage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/gen_fp.sage -------------------------------------------------------------------------------- /Theta-Rust/src/eccore.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/eccore.rs -------------------------------------------------------------------------------- /Theta-Rust/src/fields.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/fields.rs -------------------------------------------------------------------------------- /Theta-Rust/src/finitefield/fp2_gen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/finitefield/fp2_gen.rs -------------------------------------------------------------------------------- /Theta-Rust/src/finitefield/fp_gen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/finitefield/fp_gen.rs -------------------------------------------------------------------------------- /Theta-Rust/src/finitefield/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/finitefield/mod.rs -------------------------------------------------------------------------------- /Theta-Rust/src/finitefield/utils64.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/finitefield/utils64.rs -------------------------------------------------------------------------------- /Theta-Rust/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/lib.rs -------------------------------------------------------------------------------- /Theta-Rust/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/main.rs -------------------------------------------------------------------------------- /Theta-Rust/src/theta.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/theta.rs -------------------------------------------------------------------------------- /Theta-Rust/src/theta_affine.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/src/theta_affine.rs -------------------------------------------------------------------------------- /Theta-Rust/strategy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-Rust/strategy.py -------------------------------------------------------------------------------- /Theta-SageMath/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/.gitignore -------------------------------------------------------------------------------- /Theta-SageMath/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/README.md -------------------------------------------------------------------------------- /Theta-SageMath/benchmarks/benchmark_paper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/benchmarks/benchmark_paper.py -------------------------------------------------------------------------------- /Theta-SageMath/benchmarks/benchmark_theta.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/benchmarks/benchmark_theta.py -------------------------------------------------------------------------------- /Theta-SageMath/isogeny_diamond.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/isogeny_diamond.py -------------------------------------------------------------------------------- /Theta-SageMath/montgomery_isogenies/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Theta-SageMath/montgomery_isogenies/isogenies_x_only.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/montgomery_isogenies/isogenies_x_only.py -------------------------------------------------------------------------------- /Theta-SageMath/montgomery_isogenies/kummer_isogeny.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/montgomery_isogenies/kummer_isogeny.py -------------------------------------------------------------------------------- /Theta-SageMath/montgomery_isogenies/kummer_line.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/montgomery_isogenies/kummer_line.py -------------------------------------------------------------------------------- /Theta-SageMath/richelot_isogenies/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Theta-SageMath/richelot_isogenies/divisor_arithmetic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/richelot_isogenies/divisor_arithmetic.py -------------------------------------------------------------------------------- /Theta-SageMath/richelot_isogenies/richelot_isogenies.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/richelot_isogenies/richelot_isogenies.py -------------------------------------------------------------------------------- /Theta-SageMath/tests/arithmetic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/tests/arithmetic.py -------------------------------------------------------------------------------- /Theta-SageMath/tests/test_SIDH_attack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/tests/test_SIDH_attack.py -------------------------------------------------------------------------------- /Theta-SageMath/tests/test_isogeny.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/tests/test_isogeny.py -------------------------------------------------------------------------------- /Theta-SageMath/tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/tests/test_utils.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_isogenies/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Theta-SageMath/theta_isogenies/gluing_isogeny.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_isogenies/gluing_isogeny.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_isogenies/isogeny.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_isogenies/isogeny.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_isogenies/isogeny_sqrt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_isogenies/isogeny_sqrt.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_isogenies/isomorphism.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_isogenies/isomorphism.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_isogenies/morphism.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_isogenies/morphism.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_isogenies/product_isogeny.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_isogenies/product_isogeny.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_isogenies/product_isogeny_sqrt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_isogenies/product_isogeny_sqrt.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_structures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Theta-SageMath/theta_structures/couple_point.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_structures/couple_point.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_structures/dimension_one.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_structures/dimension_one.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_structures/dimension_two.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_structures/dimension_two.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_structures/product_structure.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_structures/product_structure.py -------------------------------------------------------------------------------- /Theta-SageMath/theta_structures/split_structure.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/theta_structures/split_structure.py -------------------------------------------------------------------------------- /Theta-SageMath/utilities/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Theta-SageMath/utilities/batched_inversion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/utilities/batched_inversion.py -------------------------------------------------------------------------------- /Theta-SageMath/utilities/discrete_log.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/utilities/discrete_log.py -------------------------------------------------------------------------------- /Theta-SageMath/utilities/fast_sqrt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/utilities/fast_sqrt.py -------------------------------------------------------------------------------- /Theta-SageMath/utilities/order.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/utilities/order.py -------------------------------------------------------------------------------- /Theta-SageMath/utilities/polynomial_inversion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/utilities/polynomial_inversion.py -------------------------------------------------------------------------------- /Theta-SageMath/utilities/strategy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/utilities/strategy.py -------------------------------------------------------------------------------- /Theta-SageMath/utilities/supersingular.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/utilities/supersingular.py -------------------------------------------------------------------------------- /Theta-SageMath/utilities/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ThetaIsogenies/two-isogenies/HEAD/Theta-SageMath/utilities/utils.py --------------------------------------------------------------------------------