The ChipWhisperer project is fascinating. Being open-source, it is possible to look, learn, and modify at all levels.
In the past months, I made a lot of small changes to the code. But I have no write permission to the main repository. To share my contributions with the team and with the users, I have set up a fork at Github.
The main additions are:
-
Support for the Keeloq cipher: Use bit model and (soon) Hamming distance model. With partition modes, attack scripts, tutorials, and example traces.
-
Resync Slice-to-Slot filter: Fix RC oscillator clock drift, extract point ranges from each round, compress rounds to peaks.
-
Tiny improvements: Accessible color palette, bug fixes, performance improvements, etc.
Find the fork at github.com/marc-invalid/chipwhisperer-marc
Code wise, it is mostly complete. Only the Hamming distance model hasn’t been pushed yet, as well as some of the external goodies such as the Keeloq demodulator/decoder.
The documentation is only half way done
You should be able to walk through the bit model attack, using the tutorial and the example traces. There is also an up-to-date install tutorial for Linux Mint 18 (works in VMware and maybe even just a livecd boot).
Please post feedback, whether you like it or hate it, and if there are any questions or problems etc.
I hope the ChipWhisperer team merges everything useful into the main repo soon. And please in a way so that I can keep all my changes and still rebase to the current git I tried to do everything in the least invasive way possible, and provide generic interfaces (like separating out partition modes as plugins).
Thanks to Colin for making ChipWhisperer open-source!!! I learned a lot with it.
Best regards,
Marc