Skip to content

Kss-degree18-clean #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Kss-degree18-clean #1

wants to merge 6 commits into from

Conversation

eNipu
Copy link
Owner

@eNipu eNipu commented May 2, 2025

  • Added ec.h, ec.c for elliptic curve operations over Fp and its extensions (Fp3, Fp6, Fp18).
  • Introduced fp.h, fp.c for base field Fp arithmetic, including initialization, addition, subtraction, multiplication, inversion, and exponentiation.
  • Implemented cubic extension field Fp3 arithmetic in fp3.h and fp3.c, including multiplication and inversion.
  • Developed sextic extension field Fp6 arithmetic in fp6.h and fp6.c, with support for multiplication and inversion.
  • Created degree-18 extension field Fp18 arithmetic in fp18.h and fp18.c, including addition, multiplication, and inversion.
  • Added pairing computations in pairing.h and pairing.c, implementing the Optimal Ate pairing for KSS18.
  • Generated parameters for KSS18 in generate_params.py, including primality checks and header file generation for curve parameters.

eNipu added 6 commits May 2, 2025 13:38
- Added .devcontainer configuration for development environment.
- Created GitHub issue template for bug reporting.
- Set up CI workflow for building the project using GitHub Actions.
- Added .gitignore to exclude build artifacts and IDE settings.
- Implemented CMakeLists.txt for project build configuration.
- Added MIT License for project distribution.
- Defined header file fp18_arith.h for finite field and elliptic curve structures and functions.
- Implemented parameters.c and parameters.h for managing global parameters and curve generation.
…egree 18 Library

- Refactored global parameter declarations in parameters.h to use EXTERN macro for better modularity.
- Added comprehensive documentation for the project in .github/copilot.md and Doxyfile.
- Created a Makefile for building the project with targets for main program, tests, benchmarks, and documentation.
- Developed a detailed Project Requirement Document outlining functional and non-functional requirements.
- Implemented benchmarking suite in bench/benchmark.c to evaluate performance of arithmetic operations.
- Added build script (build.sh) for simplified build and test execution.
- Created unit tests for Fp arithmetic operations in tests/test_fp.c and integrated them into the main test suite in tests/test_main.c.
- Established a modular file structure for source and header files, ensuring clear organization of code.
- Included error handling and memory management practices throughout the codebase.
- Removed the f18.h header file as it was no longer needed.
- Updated main.c to streamline the initialization process and remove unnecessary variables.
- Enhanced parameters.c with new functions to initialize and generate parameters for the KSS degree 18 curve.
- Modified parameters.h to declare global variables and functions related to the KSS curve.
- Cleaned up test_main.c by removing unused includes.
- Improved overall code organization and readability.
- Added `ec.h`, `ec.c` for elliptic curve operations over Fp and its extensions (Fp3, Fp6, Fp18).
- Introduced `fp.h`, `fp.c` for base field Fp arithmetic, including initialization, addition, subtraction, multiplication, inversion, and exponentiation.
- Implemented cubic extension field Fp3 arithmetic in `fp3.h` and `fp3.c`, including multiplication and inversion.
- Developed sextic extension field Fp6 arithmetic in `fp6.h` and `fp6.c`, with support for multiplication and inversion.
- Created degree-18 extension field Fp18 arithmetic in `fp18.h` and `fp18.c`, including addition, multiplication, and inversion.
- Added pairing computations in `pairing.h` and `pairing.c`, implementing the Optimal Ate pairing for KSS18.
- Generated parameters for KSS18 in `generate_params.py`, including primality checks and header file generation for curve parameters.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant