Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary
Last synced: 9 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: suddenabnormalsecrets
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Size: 2.32 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 3
  • Releases: 0
Created about 1 year ago · Last pushed 12 months ago
Metadata Files
Readme Contributing License Citation

README.md

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:

bibtex @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

bibtex @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

bibtex @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.

Owner

  • Name: suddenabnormalsecrets
  • Login: suddenabnormalsecrets
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
preferred-citation:
  type: article
  authors:
  - family-names: "Bursztein"
    given-names: "Elie"
  - family-names: "Invernizzi"
    given-names: "Luca"
  - family-names: "Král"
    given-names: "Karel"
  - family-names: "Moghimi"
    given-names: "Daniel"
  - family-names: "Picod"
    given-names: "Jean-Michel"
  - family-names: "Zhang"
    given-names: "Marina"
  doi: "10.48550/arXiv.2306.07249"
  title: "Generic Attacks against Cryptographic Hardware through Long-Range Deep Learning"

GitHub Events

Total
  • Delete event: 5
  • Issue comment event: 16
  • Push event: 2
  • Pull request event: 9
  • Create event: 10
Last Year
  • Delete event: 5
  • Issue comment event: 16
  • Push event: 2
  • Pull request event: 9
  • Create event: 10

Dependencies

.github/workflows/deploy.yml actions
  • actions/checkout v4 composite
  • actions/deploy-pages v4 composite
  • withastro/action v4 composite
.github/workflows/mdlint.yml actions
  • DavidAnson/markdownlint-cli2-action v19 composite
  • actions/checkout v4 composite
.github/workflows/mypy.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/publish-to-pypi.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
  • sigstore/gh-action-sigstore-python v3.0.0 composite
.github/workflows/pylint.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/pytest.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • coverallsapp/github-action v2 composite
.github/workflows/spellcheck.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
.github/workflows/yapf.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
website/package-lock.json npm
  • 571 dependencies
website/package.json npm
  • @astrojs/check ^0.9.3
  • @astrojs/starlight ^0.34.0
  • astro ^5.7.4
  • rehype-mathjax ^7.1.0
  • remark-math ^6.0.0
  • sharp ^0.34.1
  • typescript ^5.8.2
base-tooling-requirements.txt pypi
  • build ==1.2.1
  • click ==8.2.0
  • importlib-metadata ==8.7.0
  • packaging ==25.0
  • pip ==25.1
  • pip-tools ==7.4.0
  • pyproject-hooks ==1.2.0
  • setuptools ==80.4.0
  • tomli ==2.2.1
  • typing-extensions ==4.13.1
  • wheel ==0.45.0
  • zipp ==3.21.0
pyproject.toml pypi
  • Pillow *
  • chipwhisperer *
  • colorama *
  • cryptography *
  • matplotlib *
  • networkx [default]
  • numpy *
  • pandas *
  • picosdk *
  • pip *
  • pygments *
  • pytest *
  • pyvisa *
  • pyvisa-py *
  • scipy *
  • semver *
  • setuptools *
  • tabulate *
  • tensorflow *
  • termcolor *
  • tqdm *
  • wheel *
requirements.txt pypi
  • absl-py ==2.2.0
  • astunparse ==1.6.3
  • certifi ==2025.4.26
  • cffi ==1.17.1
  • charset-normalizer ==3.4.1
  • chipwhisperer ==6.0.0
  • colorama ==0.4.6
  • configobj ==5.0.9
  • contourpy ==1.3.1
  • cryptography ==44.0.2
  • cycler ==0.12.1
  • cython ==3.0.12
  • ecpy ==1.2.5
  • fastdtw ==0.3.4
  • flatbuffers ==25.2.10
  • fonttools ==4.58.0
  • gast ==0.6.0
  • google-pasta ==0.2.0
  • grpcio ==1.71.0
  • h5py ==3.13.0
  • idna ==3.10
  • iniconfig ==2.1.0
  • keras ==3.9.0
  • kiwisolver ==1.4.8
  • libclang ==18.1.1
  • libusb1 ==3.3.0
  • markdown ==3.8
  • markdown-it-py ==3.0.0
  • markupsafe ==3.0.2
  • matplotlib ==3.10.1
  • mdurl ==0.1.2
  • ml-dtypes ==0.5.1
  • namex ==0.0.8
  • networkx ==3.4.2
  • numpy ==2.2.4
  • opt-einsum ==3.4.0
  • optree ==0.15.0
  • packaging ==25.0
  • pandas ==2.2.3
  • picosdk ==1.1
  • pillow ==11.2.1
  • pip ==25.1
  • pluggy ==1.5.0
  • protobuf ==6.30.1
  • pycparser ==2.22
  • pygments ==2.19.1
  • pyparsing ==3.2.1
  • pyserial ==3.5
  • pytest ==8.3.5
  • python-dateutil ==2.9.0.post0
  • pytz ==2025.2
  • pyvisa ==1.15.0
  • pyvisa-py ==0.8.0
  • requests ==2.32.3
  • rich ==14.0.0
  • scipy ==1.15.2
  • semver ==3.0.4
  • setuptools ==80.4.0
  • six ==1.17.0
  • tabulate ==0.9.0
  • tensorboard ==2.19.0
  • tensorboard-data-server ==0.7.2
  • tensorflow ==2.19.0
  • tensorflow-io-gcs-filesystem ==0.37.1
  • termcolor ==3.1.0
  • tqdm ==4.67.1
  • typing-extensions ==4.13.1
  • tzdata ==2025.2
  • urllib3 ==2.4.0
  • werkzeug ==3.1.3
  • wheel ==0.45.1
  • wrapt ==1.17.2
setup.py pypi
test_requirements.txt pypi
  • flake8 * test
  • mypy * test
  • perfCounters * test
  • psutil * test
  • pydantic * test
  • pytest * test
  • pytest-cov * test
  • twine * test
  • types-cryptography * test
  • types-tensorflow * test