.. image:: https://badge.fury.io/py/scalib.svg :target: https://pypi.org/project/scalib/ :alt: PyPI .. image:: https://readthedocs.org/projects/scalib/badge/?version=stable :target: https://scalib.readthedocs.io/en/stable/ :alt: Documentation Status .. image:: https://img.shields.io/matrix/scalib:matrix.org :target: https://matrix.to/#/#scalib:matrix.org :alt: Matrix room .. image:: https://joss.theoj.org/papers/10.21105/joss.05196/status.svg :target: https://doi.org/10.21105/joss.05196 :alt: JOSS paper
The Side-Channel Analysis Library (SCALib) is a Python library that contains state-of-the-art tools for side-channel security evaluation.
examples/ <examples/>
_https://matrix.to/#/#scalib:matrix.org <https://matrix.to/#/#scalib:matrix.org>
SCALib focuses on
benchmarks <https://github.com/cassiersg/SCABench>
_).SCALib should be useful for any side-channel practitioner who wants to evaluate, but not necessarily attack, protected or non-protected implementations. See the documentation_ for the list of implemented tools.
.. _documentation: https://scalib.readthedocs.io/en/stable
SCALib is on PyPi! Simple install:
.. code-block::
pip install scalib
We provide pre-built wheels for any recent python on Linux and Windows (x86). Be sure to use a recent pip. For other plateforms, this will build SCALib (see below for dependencies).
To get best performance, you want to build locally (this will optimize SCALib for your CPU).
Depdendencies:
python >= 3.8
,build
module (available on PyPI <https://pypi.org/project/build>
__),clang
(version 5.0 or later),rust toolchain <https://rustup.rs/>
_.To install from source:
.. code-block::
git clone https://github.com/simple-crypto/SCALib
cd SCALib
pip install .
See CONTRIBUTING.rst <CONTRIBUTING.rst>
__ for advanced build configuration.
See API documentation <https://scalib.readthedocs.io/en/stable/#available-features>
,
example <https://github.com/simple-crypto/scalib/tree/main/examples>
and
real-world usages <https://scalib.readthedocs.io/en/stable/#concrete-evaluations>
_.
If your needs are not covered by SCALib, you might be more lucky with
lascar <https://github.com/Ledger-Donjon/lascar>
or scared <https://gitlab.com/eshard/scared>
.
Please also let us know your needs by opening a
feature request <https://github.com/simple-crypto/SCALib/issues/new?assignees=&labels=&template=feature_request.md&title=>
_.
SCALib uses semantic versioning <https://semver.org/>
_, see the `CHANGELOG