# SCAAML: Side Channel Attacks Assisted with Machine Learning
![SCAAML banner](https://storage.googleapis.com/scaaml-public/visuals/scaaml-banner.png)
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](https://coveralls.io/repos/github/google/scaaml/badge.svg?branch=main)](https://coveralls.io/github/google/scaaml?branch=main)
## Latest Updates
- Sep 2024: [GPAM](https://github.com/google/scaaml/tree/main/papers/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](https://github.com/google/scaaml/tree/main/papers/datasets/ECC/GPAM)
our large-scale ECC datasets are available for download.
## Available components
- [`scaaml/`](https://github.com/google/scaaml/tree/master/scaaml/): The
SCAAML framework code. Its used by the various tools.
- [`scaaml_intro/`](https://github.com/google/scaaml/tree/master/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`](https://github.com/google/scaaml/tree/main/papers/2024/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`](https://github.com/google/scaaml/tree/main/papers/datasets/ECC/GPAM)
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](https://www.tensorflow.org/install) 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.
Raw data
{
"_id": null,
"home_page": null,
"name": "scaaml",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "machine learning, dataset, side channel attack",
"author": "Elie Bursztein, Luca Invernizzi, Karel Kr\u00e1l, Jean-Michel Picod",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/3c/31/f6fbdfbc857de573fae89d1bd9f9ab353ec6124d4433445d5627d6edb8e9/scaaml-3.0.2.tar.gz",
"platform": null,
"description": "# SCAAML: Side Channel Attacks Assisted with Machine Learning\n\n![SCAAML banner](https://storage.googleapis.com/scaaml-public/visuals/scaaml-banner.png)\n\nSCAAML (Side Channel Attacks Assisted with Machine Learning) is a deep learning\nframework dedicated to side-channel attacks. It is written in python and run on\ntop of TensorFlow 2.x.\n\n[![Coverage Status](https://coveralls.io/repos/github/google/scaaml/badge.svg?branch=main)](https://coveralls.io/github/google/scaaml?branch=main)\n\n## Latest Updates\n\n- Sep 2024: [GPAM](https://github.com/google/scaaml/tree/main/papers/2024/GPAM)\n the first power side-channel general model capable of attacking multiple\n algorithms using full traces, were presented at CHES and are now available for\n download.\n\n- Sep 2024: [ECC datasets](https://github.com/google/scaaml/tree/main/papers/datasets/ECC/GPAM)\n our large-scale ECC datasets are available for download.\n\n## Available components\n\n- [`scaaml/`](https://github.com/google/scaaml/tree/master/scaaml/): The\n SCAAML framework code. Its used by the various tools.\n\n- [`scaaml_intro/`](https://github.com/google/scaaml/tree/master/scaaml_intro):\n *A Hacker Guide To Deep Learning Based Side Channel Attacks*. Code, dataset\n and models used in our step by step tutorial on how to use deep-learning to\n perform AES side-channel attacks in practice.\n\n- [`GPAM`](https://github.com/google/scaaml/tree/main/papers/2024/GPAM)\n *Generalized Power Attacks against Crypto Hardware using Long-Range Deep\n Learning* model and datasets needed to reproduce our results are available\n for download.\n\n- [`ECC datasets`](https://github.com/google/scaaml/tree/main/papers/datasets/ECC/GPAM)\n A collection of large-scale hardware protected ECC datasets.\n\n## Install\n\n### Dependencies\n\nTo use SCAAML you need to have a working version of [TensorFlow\n2.x](https://www.tensorflow.org/install) and a version of Python >=3.9\n\n### SCAAML framework install\n\n1. Clone the repository: `git clone github.com/google/scaaml/`\n2. Create and activate Python virtual environment:\n `python3 -m venv my_env`\n `source my_env/bin/activate`\n3. Install dependencies: `python3 -m pip install --require-hashes -r\n requirements.txt`\n4. Install the SCAAML package: `python setup.py develop`\n\n## Publications & Citation\n\nHere is the list of publications and talks related to SCAAML. If you use any of\nits codebase, models or datasets please cite the repo and the relevant papers:\n\n```bibtex\n@software{scaaml_2019,\n title = {{SCAAML: Side Channel Attacks Assisted with Machine Learning}},\n author={Bursztein, Elie and Invernizzi, Luca and Kr{\\'a}l, Karel and Picod, Jean-Michel},\n url = {https://github.com/google/scaaml},\n version = {1.0.0},\n year = {2019}\n}\n```\n\n## Generalized Power Attacks against Crypto Hardware using Long-Range Deep Learning\n\n```bibtex\n@article{bursztein2023generic,\n title={Generalized Power Attacks against Crypto Hardware using Long-Range Deep Learning},\n author={Bursztein, Elie and Invernizzi, Luca and Kr{\\'a}l, Karel and Moghimi, Daniel and Picod, Jean-Michel and Zhang, Marina},\n journal={CHES},\n year={2024}\n}\n```\n\n## SCAAML AES tutorial\n\nDEF CON talk that provides a practical introduction to AES deep-learning based\nside-channel attacks\n\n```bibtex\n@inproceedings{burszteindc27,\ntitle={A Hacker Guide To Deep Learning Based Side Channel Attacks},\nauthor={Elie Bursztein and Jean-Michel Picod},\nbooktitle ={DEF CON 27},\nhowpublished = {\\url{https://elie.net/talk/a-hackerguide-to-deep-learning-based-side-channel-attacks/}}\nyear={2019},\neditor={DEF CON}\n}\n```\n\n## Disclaimer\n\nThis is not an official Google product.\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "Side Channel Attack Assisted with Machine Learning",
"version": "3.0.2",
"project_urls": {
"Bug Tracker": "https://github.com/google/scaaml",
"Homepage": "https://github.com/google/scaaml"
},
"split_keywords": [
"machine learning",
" dataset",
" side channel attack"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e38f04441638239b3e92a3afb8b1acacc06b5e0726a7662291cec382a3c7728f",
"md5": "9362b5da8864b175947d6c89a6507bc3",
"sha256": "0a4401c6971573f0db938946780f5d1d8e6358e886accf1670d5db096c3fe3ee"
},
"downloads": -1,
"filename": "scaaml-3.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9362b5da8864b175947d6c89a6507bc3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 311226,
"upload_time": "2024-12-10T15:35:19",
"upload_time_iso_8601": "2024-12-10T15:35:19.943005Z",
"url": "https://files.pythonhosted.org/packages/e3/8f/04441638239b3e92a3afb8b1acacc06b5e0726a7662291cec382a3c7728f/scaaml-3.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3c31f6fbdfbc857de573fae89d1bd9f9ab353ec6124d4433445d5627d6edb8e9",
"md5": "afd931b2605d4472a9d5dcfbb71234ba",
"sha256": "c65d81922aec0f6d361f70fa6b432e07e0be73bc3aa338ddb1c7f86d051aaa3c"
},
"downloads": -1,
"filename": "scaaml-3.0.2.tar.gz",
"has_sig": false,
"md5_digest": "afd931b2605d4472a9d5dcfbb71234ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 319043,
"upload_time": "2024-12-10T15:35:21",
"upload_time_iso_8601": "2024-12-10T15:35:21.483045Z",
"url": "https://files.pythonhosted.org/packages/3c/31/f6fbdfbc857de573fae89d1bd9f9ab353ec6124d4433445d5627d6edb8e9/scaaml-3.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-10 15:35:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "google",
"github_project": "scaaml",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [],
"test_requirements": [
{
"name": "mypy",
"specs": []
},
{
"name": "pydantic",
"specs": []
},
{
"name": "pytest",
"specs": []
},
{
"name": "pytest-cov",
"specs": []
},
{
"name": "flake8",
"specs": []
},
{
"name": "twine",
"specs": []
},
{
"name": "perfCounters",
"specs": []
},
{
"name": "psutil",
"specs": []
},
{
"name": "types-cryptography",
"specs": []
},
{
"name": "types-tensorflow",
"specs": []
}
],
"lcname": "scaaml"
}