Welcome to SCALib#

The Side-Channel Analysis Library (SCALib) is a Python package that contains state-of-the-art tools for side-channel evaluation. It focuses on providing efficient implementations of analysis methods widely used by the side-channel community and maintaining a flexible and simple interface.

SCALib is on GitHub!

Usability & Efficiency#

SCALib main characteristics are:

  1. High Performances: Under its Python interface, most of SCALib functionality is implemented in optimized and highly parallel Rust code.

  2. Flexible & Simple Interface: SCALib is a simple library. It provides a simple numpy-based interface, therefore it is simple to use (see examples) while giving you freedom: you can simply call it in any Python workflow.

  3. Streaming APIs: Most SCALib APIs allow for incremenal processing of chunks of data. This enables streaming implementations: with large datasets, no neeed to load everything at once of load multiple times. You don’t even need to store datasets: you can compute on-the-fly.

Available features#

SCALib contains various features for side-channel analysis:

Getting started#

Install#

See the README. TL;DR:

pip install scalib

Examples#

See our examples and a more complete attack on ASCADv1.

Where is SCALib used ?#

See the papers that use SCAlib.

Complete security evaluations:

  1. CHES 2020 CTF published in TCHES2021.

  2. Attack against ASCAD eprint 2021/817.

  3. TVLA On Selected NIST LWC Finalists.

About us#

SCALib was initiated by Olivier Bronchain and Gaëtan Cassiers during their PhD at UCLouvain. It is now developed as a project of SIMPLE-Crypto and maintained by Gaëtan Cassiers.