The fuckshitfuck toolkit is a repository of code used for side channel acquisition, preprocessing and analysis, similar to the ChipWhisperer, but written ground-up as an (extremely successful) learning exercise.
Check the acquisition settings, including coupling type and ranges, before you begin capture.
This toolkit comprises:
- Normal Side Channels:
- Acquisition:
- ./capturebuddy/capturebuddy.py, a capture front-end
- ./capturebuddy/triggerbuddy.py, an fpga triggering assistant
- Preprocessing:
- ./preprocessor.py, for temporal alignment of traces
- Analysis:
- ./cpa.py, a multi-model tool for correlation analysis
- ./dpa.py, a multi-model tool for differential analysis
- ./plot.py, a simple matplotlib-based tool to view sets of traces
- ./tlva.py, an implementation of non-specific welch's t-test leak detector
- Acquisition:
- Keyboards:
- ./keyboards-em/a.py, an EM leakage capture tool
- ./classifier-train.py, which forms a training npy out of captured samples
- ./classifier-read.py, which matches training data against an input sample
- ./plotlite.py, a tool for plotting a single trace
- ./plot_overlay.py, a tool for plotting multiple overlaid traces
Note the correlation and differential analysis front-ends are now decoupled from the leakage modelling back-ends - models can be found in support/attack.py. cpa.py and dpa.py typically do not need to be changed to analyze traces using different leakage hypotheses.
Some test targets are provided in target/ and pictarget-3.X/
The code is provided as-is, pull requests and feature requests are welcome.