Skip to main content

Side Channel Attack Assisted with Machine Learning

Project description

SCAAML: Side Channel Attacks Assisted with Machine Learning

SCAAML banner

Documentation

SCAAML (Side Channel Attacks Assisted with Machine Learning) is a deep learning framework dedicated to side-channel attacks. It is written in python and run on top of TensorFlow 2.x.

Coverage Status

Latest Updates

  • Sep 2024: GPAM the first power side-channel general model capable of attacking multiple algorithms using full traces, were presented at CHES and are now available for download.

  • Sep 2024: ECC datasets our large-scale ECC datasets are available for download.

Available components

  • scaaml/: The SCAAML framework code. Its used by the various tools.

  • scaaml_intro/: A Hacker Guide To Deep Learning Based Side Channel Attacks. Code, dataset and models used in our step by step tutorial on how to use deep-learning to perform AES side-channel attacks in practice.

  • GPAM Generalized Power Attacks against Crypto Hardware using Long-Range Deep Learning model and datasets needed to reproduce our results are available for download.

  • ECC datasets A collection of large-scale hardware protected ECC datasets.

Install

Dependencies

To use SCAAML you need to have a working version of TensorFlow 2.x and a version of Python >=3.9

SCAAML framework install

  1. Clone the repository: git clone github.com/google/scaaml/
  2. Create and activate Python virtual environment: python3 -m venv my_env source my_env/bin/activate
  3. Install dependencies: python3 -m pip install --require-hashes -r requirements.txt
  4. Install the SCAAML package: python setup.py develop

Publications & Citation

Here is the list of publications and talks related to SCAAML. If you use any of its codebase, models or datasets please cite the repo and the relevant papers:

@software{scaaml_2019,
    title = {{SCAAML: Side Channel Attacks Assisted with Machine Learning}},
    author={Bursztein, Elie and Invernizzi, Luca and Kr{\'a}l, Karel and Picod, Jean-Michel},
    url = {https://github.com/google/scaaml},
    version = {1.0.0},
    year = {2019}
}

Generalized Power Attacks against Crypto Hardware using Long-Range Deep Learning

@article{bursztein2023generic,
  title={Generalized Power Attacks against Crypto Hardware using Long-Range Deep Learning},
  author={Bursztein, Elie and Invernizzi, Luca and Kr{\'a}l, Karel and Moghimi, Daniel and Picod, Jean-Michel and Zhang, Marina},
  journal={CHES},
  year={2024}
}

SCAAML AES tutorial

DEF CON talk that provides a practical introduction to AES deep-learning based side-channel attacks

@inproceedings{burszteindc27,
title={A Hacker Guide To Deep Learning Based Side Channel Attacks},
author={Elie Bursztein and Jean-Michel Picod},
booktitle ={DEF CON 27},
howpublished = {\url{https://elie.net/talk/a-hackerguide-to-deep-learning-based-side-channel-attacks/}}
year={2019},
editor={DEF CON}
}

Disclaimer

This is not an official Google product.

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

scaaml-3.0.5.tar.gz (706.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scaaml-3.0.5-py3-none-any.whl (712.7 kB view details)

Uploaded Python 3

File details

Details for the file scaaml-3.0.5.tar.gz.

File metadata

  • Download URL: scaaml-3.0.5.tar.gz
  • Upload date:
  • Size: 706.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for scaaml-3.0.5.tar.gz
Algorithm Hash digest
SHA256 f488aee804d80a5e32c40733dc75767b8561c4252494b2f5d7c9a3b7c3322692
MD5 d496eb02d6b2aba1f8ec747af09e3093
BLAKE2b-256 47ccc6ac3ff9efa3008d93e8c554d6696da0e7a4b8ccd272a4f34d625b669857

See more details on using hashes here.

Provenance

The following attestation bundles were made for scaaml-3.0.5.tar.gz:

Publisher: publish-to-pypi.yml on google/scaaml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scaaml-3.0.5-py3-none-any.whl.

File metadata

  • Download URL: scaaml-3.0.5-py3-none-any.whl
  • Upload date:
  • Size: 712.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for scaaml-3.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 76e88eabdf3fbeec910d167b7a5c120a5fccbc21a68adec44c0a3ae5fb782e12
MD5 bd54a928cd8ea1f569246c3add5182a1
BLAKE2b-256 68885dd4cffa891cfab2cda2891aeb09ba163b517f0215504e4139a4950920d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for scaaml-3.0.5-py3-none-any.whl:

Publisher: publish-to-pypi.yml on google/scaaml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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