This library provides bit complexity estimators for cryptographic problems, as well as some cryptographic schemes. Currently, the implemented estimators are:
-
- Multivariate Quadratic
- Binary Syndrome Decoding
- Syndrome Decoding over Fq
- Permuted Kernel
- Permutation Equivalence
- Linear Equivalence
- MinRank
- Regular Syndrome Decoding
- Rank Syndrome Decoding
This project is designed to be run through a terminal as a Python package. You can also access the estimators through this user friendly and installation-free web application.
You need to have python3
, make
and git
installed on your machine.
Optional: If you want to install the package in an isolated Python virtual environment, run the next commands before the installation process:
python3 -m venv .venv
source .venv/bin/activate
-
Clone and
cd
into the project directory. -
Run
make install
to install thecryptographic_estimators
library locally.Note: If you encounter some permission error, please try creating a virtual environment with the steps mentioned in the Prerequisites section in this document, so you don't need to use
sudo
to interact with python/pip related commands.
Open the Python interpreter in a terminal and import the library as shown in the following example:
>>> from cryptographic_estimators.SDEstimator import SDEstimator
>>> SD = SDEstimator(n=15, k=10, w=5)
>>> SD.table()
-
A user guide can be found here.
-
Reference documentation for the library estimators can be found online here, or be generated locally with the command
make doc
ormake docker-doc
(see atdocs/build/html/index.html
after successful generation).
Thank you for considering contributing to our project. We thrive on community involvement and warmly welcome your contributions.
-
Explore Open Issues: If you're looking for a place to start, check out our open issues. There might be something that catches your interest!
-
Read the Contribution Guide: Before submitting a pull request, please take a moment to review our Contribution Documentation. It contains important information about our development guidelines and process.
-
Ask for Help: Stuck on something? Don't hesitate to reach out! You can:
- Start a new discussion
- Open a new issue
- Contact us directly
Every contribution, big or small, is valued and appreciated. Whether you're fixing a typo, improving documentation, or adding a new feature, your efforts help make this library better for everyone. We look forward to collaborating with you!
If you need any help about contributing to this project feel free to contact us
at cryptographic_estimators at tii.ae