Skip to content

This project gathers and standardize command line scripts to estimate the difficulty of solving hard mathematical problems related to cryptography.

License

Notifications You must be signed in to change notification settings

Crypto-TII/CryptographicEstimators

Repository files navigation

estimators-logo

CryptographicEstimators

Quality Gate Status Maintainability Rating Bugs Code Smells Security Rating Coverage

Introduction 🎉

This library provides bit complexity estimators for cryptographic problems, as well as some cryptographic schemes. Currently, the implemented estimators are:

  • Problem Estimators

    • Multivariate Quadratic
    • Binary Syndrome Decoding
    • Syndrome Decoding over Fq
    • Permuted Kernel
    • Permutation Equivalence
    • Linear Equivalence
    • MinRank
    • Regular Syndrome Decoding
    • Rank Syndrome Decoding
  • Scheme Estimators

Getting Started 🚀

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.

Prerequisites ✔️

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

Installation 🛠

  • Clone and cd into the project directory.

  • Run make install to install the cryptographic_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.

Running the project ✈️

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()

Documentation 📝

  • 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 or make docker-doc (see at docs/build/html/index.html after successful generation).

Contributing 🤝

Thank you for considering contributing to our project. We thrive on community involvement and warmly welcome your contributions.

Where to begin 🌱

  1. 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!

  2. 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.

  3. Ask for Help: Stuck on something? Don't hesitate to reach out! You can:

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!

Contact 🖊️

If you need any help about contributing to this project feel free to contact us at cryptographic_estimators at tii.ae

About

This project gathers and standardize command line scripts to estimate the difficulty of solving hard mathematical problems related to cryptography.

Resources

License

Stars

Watchers

Forks

Languages