Metadata-Version: 2.1
Name: scaaml
Version: 2.0.3
Summary: Side Channel Attack Assisted with Machine Learning
Author: Elie Bursztein, Luca Invernizzi, Karel Král, Jean-Michel Picod
License: Apache License 2.0
Project-URL: Homepage, https://github.com/google/scaaml
Project-URL: Bug Tracker, https://github.com/google/scaaml
Keywords: machine learning,dataset,side channel attack
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Framework :: Jupyter
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: chipwhisperer
Requires-Dist: colorama
Requires-Dist: cryptography
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: Pillow
Requires-Dist: pip
Requires-Dist: pygments
Requires-Dist: pytest
Requires-Dist: pyvisa
Requires-Dist: pyvisa-py
Requires-Dist: scipy
Requires-Dist: semver
Requires-Dist: setuptools
Requires-Dist: tabulate
Requires-Dist: tensorflow
Requires-Dist: termcolor
Requires-Dist: tqdm
Requires-Dist: wheel

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