Links to project details (GIT, Wiki, Docs) are on the left. You might want to check out the quick 2-min video about this project:
And here is basically what the system entails. It's a fusion of closely operating FPGA blocks and a Python interface communicating over a high-speed USB 2.0 interface. It even uses partial reconfiguration to reprogram the Spartan 6 FPGA during operation to fine-tune certain parameters that would otherwise be fixed when implementing the FPGA.
The capture software controls the ChipWhisperer FPGA board or another oscilloscope along with the target device. The GUI is a pretty full-featured piece of software which looks something like this:
You should also look over the full documentation - there is a whole bunch of tutorials, so you can even get started without building the hardware! If anything kills open source projects it's not having simple getting started documentation, so I'm trying to ensure that doesn't happen to me. Here's a quick shot of some of the documentation:
License & Lega
This project is fully open source, and uses two main licenses: the GPL and the BSD license. The majority of it is released under the GPL license, although a few useful tidbits (such as the ADC interface code in both FPGA and library) are released under the BSD license. The idea is to keep things which might be useful in other projects but aren't too commercially valuable (such as the ADC interface code) freely usable inside of commercial projects. The side-channel analysis & glitching code however IS quite commercially valuable, so I don't want someone integrating it inside their own project without being forced to release changes/improvements they make.
ChipWhisperer is a trademark of NewAE Technology Inc., registered in the U.S.
Libraries & Referenced Projects
This project uses a number of other open-source projects. See the CW Docs for full details of this, but these are the main projects deeply integrated with this (apologies if any are missing!):
- LUFA USB Library
- ZTEX EZ-USB SDK
There is a huge number of options when you want to build this - I've listed some basic components below, but check the Wiki for full details.