https://github.com/coastalwhite/intro-power-analysis
An introductory walkthrough into the concepts and workings of Power Analysis using the ChipWhisperer framework
https://github.com/coastalwhite/intro-power-analysis
chipwhisperer exercises mdbook power-analysis simpleserial walkthrough
Last synced: 11 months ago
JSON representation
An introductory walkthrough into the concepts and workings of Power Analysis using the ChipWhisperer framework
- Host: GitHub
- URL: https://github.com/coastalwhite/intro-power-analysis
- Owner: coastalwhite
- License: mit
- Created: 2021-03-11T13:42:20.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-05-17T10:02:12.000Z (about 5 years ago)
- Last Synced: 2025-08-02T12:02:42.891Z (11 months ago)
- Topics: chipwhisperer, exercises, mdbook, power-analysis, simpleserial, walkthrough
- Language: Python
- Homepage: https://coastalwhite.github.io/intro-power-analysis/
- Size: 4.35 MB
- Stars: 4
- Watchers: 1
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Introduction into Power Analysis
An introductory walkthrough into the concepts and workings of Power Analysis
using the [ChipWhisperer](https://github.com/newaetech/chipwhisperer) framework.
Will take one through breaking the
[RSA](https://en.wikipedia.org/wiki/RSA_\(cryptosystem\)) and
[AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) algorithms
with Power Analysis, and provide exercises to practice.
[Link](https://coastalwhite.github.io/intro-power-analysis/) to the walkthrough.
Made to be part a Master's Course of the [Leiden
University](https://www.universiteitleiden.nl/en).
## Preliminaries
This course expects the reader to be reasonably familiar and comfortable with
programming C / Rust and Python. Furthermore, it is highly recommended to have a
rough understanding of Computer Architecture and encryption methodologies,
although this is not strictly necessary. The walkthrough should take one through
the core material and provide references to further reading if unfamiliar topics
pop up.
This course makes use of the
[ChipWhisperer](https://github.com/newaetech/chipwhisperer) framework to do the
power measurements. The course provides example datasets for all exercises for
when the reader does not have a
[ChipWhisperer](https://github.com/newaetech/chipwhisperer) available, although
it is recommended to follow along for the measurements as well. One should be
able to do their measurements with an oscilloscope or other devices as well. The
theory behind the data analysis should remain the same.
## Content of the walkthrough
The walkthrough contains [how to setup your
environment](https://coastalwhite.github.io/intro-power-analysis/preparing.html)
to be able to run measurements on the
[ChipWhisperer](https://github.com/newaetech/chipwhisperer), install all the
necessary libraries and even how to create your own binaries to run on the
target board. This is followed by an explanation of breaking
[RSA](https://coastalwhite.github.io/intro-power-analysis/rsa) and
[AES](https://coastalwhite.github.io/intro-power-analysis/aes). Each of which
containing their own practice exercises for the reader. Ending with a [final
assignment](https://coastalwhite.github.io/intro-power-analysis/assignment.html),
which is mostly handy for universities using this walkthrough to assess the
knowledge gained by the student.
## Building from source
The source code here uses the [mdBook](https://github.com/rust-lang/mdBook)
project to generate a webpage from markdown files. In order to build from
source, install the `mdbook` binary and run the `mdbook build` command in the
root directory of this repository. This will create a `/book` directory
containing the webpages.
Alternatively, one could also (with the help of mdBook) compile into other
formats such as [epub](https://github.com/Michael-F-Bryan/mdbook-epub) and PDF
(using the print function on the webpage).
## License
Licensed under a MIT license.
## Contributing
If any mistake or out-of-date content is found, please either submit a
[issue](https://github.com/coastalwhite/intro-power-analysis/issues) or [pull
request](https://github.com/coastalwhite/intro-power-analysis/pulls) in this
repository.