Skip to content

Latest commit

 

History

History
117 lines (85 loc) · 4.94 KB

README.md

File metadata and controls

117 lines (85 loc) · 4.94 KB
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