Inspiration

Side-channel analysis is a loop of small decisions. How many traces should I keep? Which sample window matters? Which leakage model should I test? Is the top candidate actually ahead of the noise, or is it just the best-looking wrong answer?

The tools around that loop are often scattered across notebooks, scripts, plots, and notes. I wanted to build an agent that makes the loop itself visible: one place where a capture is surveyed, every key hypothesis is tested, the ranking is verified, and the evidence is written down.

Trace Reaper is that agent. It is a browser-native side-channel analyst that turns noisy AES power traces into a ranked key, a confidence view, and a reproducible field report.

What it does

Trace Reaper runs a four-step loop:

  1. Survey the trace envelope and capture shape.
  2. Scan all 256 key hypotheses for each of the 16 AES bytes.
  3. Verify candidates by peak correlation and runner-up margin.
  4. Report the recovered key, candidate table, confidence, and runtime.

The demo starts with a synthetic 180 × 420 AES-128 capture and a locked ground-truth key. The key grid fills progressively as each byte resolves. The leakage map highlights the samples that produced the strongest candidates. The exported Markdown report preserves the evidence trail for later review.

A user can also upload a CSV with a plaintext_hex column followed by numeric sample columns.

How I built it

The app is static HTML, CSS, and JavaScript. There is no backend and no build step. The CPA engine runs in a Web Worker so the interface stays responsive while the CPU-heavy analysis runs.

For each byte, the worker builds a Hamming-weight leakage model from the AES S-box output:

hypothesis(byte, guess, plaintext) = HammingWeight(SBOX[plaintext ^ guess])
Share this project:

Updates

Submission history