How keyuraghao/chipwhisperer works
ChipWhisperer is a hardware-security research toolchain: researchers configure capture hardware and a target, collect power traces, then process those traces with the Analyzer API. The README describes capture and target boards, firmware, and trace analysis; the sampled CW305 target shows one concrete acquisition path, while TraceManager shows trace-segment management. Firmware examples span multiple MCU families, and the AVR crypto library supplies a broad set of cryptographic primitives. Source excerpts are partial, so links between unsampled subsystems are limited to the README’s documented roles.
Main entry points: CW305_AES_PIPELINED.py CW305 AES driver · mcu Target firmware examples · analyzer Analyzer API · TraceManager.py Trace manager
Components 16
Capture
- Capture API
software/chipwhisperer/capture - CW305 AES driver
software/chipwhisperer/capture/targets/CW305_AES_PIPELINED.py - Capture board
- Scope
Targets
- Target board
Firmware
- Target firmware examples
firmware/mcu - SimpleSerial MCU apps
firmware/mcu/87c51/87c51 - Quark AES demo
firmware/mcu/intel_quark/simpleserial_example/main.c - AVR crypto library
firmware/mcu/crypto/avrcryptolib - Quark bootloader
firmware/mcu/intel_quark/boot_rom
Trace Analysis
- Captured trace
- Trace manager
software/chipwhisperer/common/api/TraceManager.py - Trace files
- Analyzer API
software/chipwhisperer/analyzer - Analysis results
Other components
- Researcher
Connections 16
- Researcher → Capture API: configures
- Capture API → CW305 AES driver: selects target
- CW305 AES driver → Capture board: writes registers
- CW305 AES driver → Scope: captures waveform
- CW305 AES driver → Target board: runs encryption
- Target board → Target firmware examples: executes
- Target firmware examples → SimpleSerial MCU apps: includes examples
- Target firmware examples → Quark AES demo: includes example
- Target firmware examples → AVR crypto library: includes primitives
- Target firmware examples → Quark bootloader: includes firmware
- CW305 AES driver → Captured trace: returns trace
- Trace manager → Trace files: saves and loads
- Trace manager → Captured trace: manages segments
- Analyzer API → Captured trace: processes traces
- Analyzer API → Analysis results: produces analysis
- Researcher → Analyzer API: analyzes