Skip to main content

Side-Channel Analysis Library

Project description

PyPI Documentation Status Matrix room JOSS paper

The Side-Channel Analysis Library (SCALib) is a Python library that contains state-of-the-art tools for side-channel security evaluation.

SCALib focuses on

  • simple interface,

  • state-of-the art algorithms,

  • excellent performance (see benchmarks).

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.

Install

SCALib is on PyPi! Simple install:

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

Local build

To get best performance, you want to build locally (this will optimize SCALib for your CPU).

Depdendencies:

  • python >= 3.8,

  • the python build module (available on PyPI),

  • a C/C++ compiler for your platform,

  • clang (version 5.0 or later),

  • the latest stable release of the rust toolchain.

To install from source:

git clone https://github.com/simple-crypto/SCALib
cd SCALib
pip install .

See CONTRIBUTING.rst for advanced build configuration.

Usage

See API documentation, example and real-world usages.

Alternatives

If your needs are not covered by SCALib, you might be more lucky with lascar or scared.

Please also let us know your needs by opening a feature request.

Versioning policy

SCALib uses semantic versioning, see the CHANGELOG for breaking changes and novelties.

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 (@cassiersg).

Contributions and Issues

Contributions welcome !

Please file a bug report for any issue you encounter (even bad documentation is a bug !), and let us know your suggestions (open a github issue, chat and email work too). We also welcome code contributions, see CONTRIBUTING.rst.

You can also come discuss on matrix (announcements, questions, community support, open discussion, etc.).

All code contributions are subject to the Contributor License Agreement (CLA) of SIMPLE-Crypto, which ensures a thriving future for open-source hardware security.

Citation

If you use SCALib in your research, please cite our software paper:

Cassiers et al., (2023). SCALib: A Side-Channel Analysis Library. Journal of Open Source Software, 8(86), 5196, https://doi.org/10.21105/joss.05196

Bibtex:

@article{scalib,
    doi = {10.21105/joss.05196},
    url = {https://doi.org/10.21105/joss.05196},
    year = {2023},
    publisher = {The Open Journal},
    volume = {8},
    number = {86},
    pages = {5196},
    author = {Gaëtan Cassiers and Olivier Bronchain},
    title = {SCALib: A Side-Channel Analysis Library}, journal = {Journal of Open Source Software}
}

License

This project is licensed under GNU AFFERO GENERAL PUBLIC LICENSE, Version 3. See COPYRIGHT and COPYING for more information.

For licensing-related matters, please contact info@simple-crypto.dev.

Acknowledgements

This work has been funded in part by the Belgian Fund for Scientific Research (F.R.S.-FNRS) through the Equipment Project SCALAB and individual researchers’ grants, by the European Union (EU) and the Walloon Region through the FEDER project USERMedia (convention number 501907-379156), and by the European Union (EU) through the ERC project 724725 (acronym SWORD) and the ERC project 101096871 (acronym BRIDGE).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scalib-0.6.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

scalib-0.6.0-cp39-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.9+ Windows x86-64

scalib-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ x86-64

scalib-0.6.0-cp39-abi3-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.9+ macOS 11.0+ ARM64

scalib-0.6.0-cp39-abi3-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9+ macOS 10.9+ x86-64

File details

Details for the file scalib-0.6.0.tar.gz.

File metadata

  • Download URL: scalib-0.6.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for scalib-0.6.0.tar.gz
Algorithm Hash digest
SHA256 ee2d038d6676ee07687b84d89018170b5aa63bcf6995532156e36ce942345df2
MD5 0cde04164c44b487e68e4b651ea95690
BLAKE2b-256 3c358594acf13c4b90e851664cdb15513c7327385dd8f4266c7041409c2c91bb

See more details on using hashes here.

File details

Details for the file scalib-0.6.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: scalib-0.6.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for scalib-0.6.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 980b58b6bca7463912c9930fc0186916f41dabc1144a0ec34ccd8fd3283a4c0b
MD5 f4135d6938c59d64333ddc92d70067d7
BLAKE2b-256 2497bf0c8e14b9b26460d4fc8290be94fb3d2ce7affb64cd3e43efd67d083f1d

See more details on using hashes here.

File details

Details for the file scalib-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scalib-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ede5a3d9a5cca6db79c410ba2d3bc1f0cd87b67d89451665bb790a1b83288fa
MD5 7ce5371b0f4814d396cd1807785f9963
BLAKE2b-256 e4f51aeaabb9ab42117936d89ebf780beaa394c3ec27d0e2a20222b797bdc786

See more details on using hashes here.

File details

Details for the file scalib-0.6.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scalib-0.6.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c7223492dba95109daf0648f23d94ffd5c0321d792b62cfd53e557f9a318e29
MD5 83d021d7223807a6373eb5863e0bb971
BLAKE2b-256 35007ebce1d7ba9fe349334c667aa0c3b78be617a050d2029afecebb6a6fe5a9

See more details on using hashes here.

File details

Details for the file scalib-0.6.0-cp39-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for scalib-0.6.0-cp39-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a9297dee758b86d9a6aa8d8a09e901948eb1ea3845b0e7ace04db3cd769f71c3
MD5 71797a6f00d340a1cd5b614cd2345fd7
BLAKE2b-256 4da480625b6eeff374172d77a74918d704edd6998d07d3c4e85b5a25c1e7c857

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page