- AES MixColumns Attack and Variable Vector KTP (requires scared/estraces)
- Update FW for USB devices - auto configure as WinUSB
- Update FW to increase serial buffer
- Support both libusb0 and libusb1
- Add automated plotting functions for analyzer plots
- Add TraceWhisperer
- Improve CW305 AES implementation
- Add cw.plot()
- Add scope.sn
- Major CWNano speedup
- Analyzer autoplots
- Add SimpleSerialV2 (not used by default) binary serial protocol
- Use 230400bps for SSV2 baud
- Major capture speedup when using SSV2
- New experiment/target class: CW305 HW ECC
- Add CW305 register name autodetect
- Add glitch arm timing of "no_glitch" (moderate speedup for SSV2)
- target.baud not being reset correctly after programming STM32
- Turn off STM32 HW floating point
- VM: Fix firmware programming
- Auto driver configuration on Windows: Once updated firmware is installed, device will automatically configure as a WinUSB device if no other drivers present. See https://docs.microsoft.com/en-us/windows-hardware/drivers/install/using-device-manager-to-uninstall-devices-and-driver-packages for uninstalling drivers.
- Serial buffer size increase from 128 bytes to 200 bytes. Allows 99 bytes of data to be sent with SimpleSerial v1 and 192 bytes to be sent with SimpleSerial V2
New serial communication protocol. Improved communication speed + data integrity, more flexibility with commands, longer data length supported. Normal capture speed with SSV2 is roughly 110 captures/second, but can be increased to ~150 captures/second by not reading response + setting
scope.glitch.arm_timing="no_glitch" (disables glitch)
Use in sca101/fault101 by setting
SS_VER='SS_VER_2_0'. Build SSV2 firmware by
make PLATFORM=X CRYPTO_TARGET=Y SS_VER=SS_VER_2_0. See readthedocs for documentation.
Firmware update tool
In some cases, users may be unable to reprogram the ChipWhisperer scope (not target) firmware from inside the VM. As such, there is a firmware updater Windows executable that will allow reprogramming of the ChipWhisperer from a native Windows install without requiring a full ChipWhisperer install. It can be used with the syntax
cw_firmware_updater_5_4_0.exe <COM_PORT> <HARDWARE_TYPE> where
<COM_PORT> is the AT91 serial bootloader serial port name (i.e.
<HARDWARE_TYPE> is one of
NOTE: This tool can only reprogram the ChipWhisperer. It cannot put the ChipWhisperer into bootloader mode, which is a prerequisite to reprogramming the ChipWhisperer.
New CWPro firmware and small fixes. For VM/Windows installer/Windows drivers, see release 5.3.0 and update from there.
- New CWPro firmware
- SAMFWLoader programming support for CWPro
- Add CWPro USB binary
- TIO state read on CWPro
- TX buffer overrun on CWPro
- New CW305 USB firmware
- New CWLite/CWNano USB firmware
- Major tutorial overhaul
- Tutorials now built for https://learn.chipwhisperer.io
- Includes both remastered and all new tutorials
- Add prerecorded traces to power analysis labs
- New tutorials (SCA101):
- Lab 3_1 - Recovering Data from a Single Bit
- Lab 6_4 - Jittery Triggering on UART
- New tutorials (Fault101):
- Voltage glitch versions of clock glitch tutorials
- New tutorials (SCA201):
- Dynamic Time Warp resync
- Hardware AES lab
- New tutorials (Fault201):
- Introduction to AES Fault Attacks
- AES Loop Skip Fault attack
- 1.5 Round AES Attack
- DFA Attack Against Final MixColumns
- New hardware documentation at https://rtfm.newae.com
- Add documented way to read state of TIO1-4 on Lite/Pro
- Add glitch controller for improved glitch recording
- Add API reprogramming supports for Nano and CW305
- Add T-Table enc/dec leakage models
- Add __array__() function to IndividualIterable (allows conversion to numpy array)
- Add tqdm to preprocessing
- Add batch run for CW305 for fast capture
- Add SPI Programming for CW305
- Add default FPGA programming for CW305
- Make Nano serial and capture more reliable
- Improve Nano reliablity in VM
- Build fixes for STM32F3 and STM32L5
- Greatly improved reliablity OpenADC long offset captures
- Make target.SimpleSerial more robust
- Fix tx buffer overrun
- The "ChipWhisperer Virtual Machine" is recommended to get started with, as it includes all compilers required. It will need to be added to a VirtualBox Install.
- The "Windows Installer" provides you with a Jupyter instance setup with ChipWhisperer, but requires you to install arm or avr compilers, as well as make.
- The VM now does not force a password change on the user account (SSH is off by default so should not be exposed). You will now be automatically prompted for a Jupyter password if one was not set - this step is required for Jupyter to start.
- CW-Lite/Pro: Increase maximum glitch repeat to 8192
- CW-Lite/Pro: Add nRESET as trigger input
- Targets: Add RT1062 HAL (NXP Cross-over MCU)
- Targets: Add EFR32MG21 HAL (SiLabs with 'secure element')
- Targets: Add FE310 HAL (RISC-V)
- Targets: Add STM32L5 HAL (NXP M33)
- Add option to allow more specific hardware AES engine triggers
- Add SAD section to SPA_1
- Small fixes to SPA_2
- SimpleSerial additions:
- Define return for simpleserial_wait_ack
- CW-Lite/Pro: Fix glitch logic which was not correctly gating output - start and end edge were slightly off
- Fix HW float being used on STM32F3 instead of software float
- This also fixes a crash related to the wrong C library being used on older (pre q2-2018) gcc versions
- Allow STM32F3 to use different input clock speeds (was previously fixed to 7.37MHz)
- Fix STM32F3 programming timeout
- Expand tests
- Add ack option to capture_trace()
- Fix project not saving correctly when multiple segments used
- Code cleanup
- Various other fixes
- Windows installer now available (requires Linux for Windows subsystem + installing make + compilers in Linux on Windows)
- Jupyter notebooks:
- Use real-time plotting during capture (like old scope view)
- New LPC1114 Jupyter tutorial based on existing wiki page
- Improvement to SPA password bypass example shows starting with unknown password
- Improve default plotting for static plots (matplotlib when small plots instead of bokeh)
- Add PSOC62 HAL, fix NRF52840 HAL and SAM4L HAL
- Add CW-Nano firmware source + schematics
NOTE: The source releases do NOT include the jupyter submodule.
The full ChipWhisperer v5 release.
Some exciting new features compared to v4 (you can also find a more detailed log of changes in CHANGES.txt):
- Uses Jupyter Notebooks
- Python 3
- Fully documented API (finally)
- 19 Jupyter notebook tutorials for side-channel analysis with ChipWhisperer
- 5x improved capture speed
- Tutorials all include output with three different targets (Nano, Lite (XMEGA), Lite (STM32F)), making it easier to compare your output to the tutorials output when you are following along.
- Fully usable as a standalone python package
- Analyzer and Project support through API
- Project API supports import and export to zip file to move projects around.
NOTE: The source releases do NOT include the jupyter submodule. If you want the tutorials via .zip or .tar.bz files, we've included chipwhisperer.zip and chipwhisperer.tar.gz which include the jupyter submodule
Edit: Changed name of the Virtual Machine zip file to a more intuitive name (one that includes VM), as well as some of the other included archives.
This release is an update to ChipWhisperer 5 Preview that is intended to provide some fixes to common 5.0.0 issues. Fixes and additions include:
- VirtualBox 6 Support
- Simplified network setup
- User is now forced to add a password to Jupyter before it will start
- User is now forced to change the Vagrant account password when logging in for the first time
- Projects should now be loadable again
- Added CW Nano to 99-newae.rules
- Initial CW305 support
Note that the VM setup has changed from previous releases. See CW5.0.1_README.pdf for more details.
The attached Virtual Box image contains the ChipWhisperer 5 preview. See http://wiki.newae.com/CW5 for more details of this release.
The Virtual Box image is automatically built - see https://github.com/newaetech/chipwhisperer-vagrant for build details. You may use this script to help installing CW5.
By default ChipWhisperer will be served at http://192.168.33.10:8888 . The VirtualBox Ethernet adapter needs to have the IP of 192.168.33.11 (not a typo!). See the "CW5_README.pdf" for more details - you WILL NEED to change this adapter address. You can also add a new adapter and specify that one is used by this VM.
On Linux hosts - you may need to do additional work to get the USB passthrough working. See https://unix.stackexchange.com/questions/129305/how-can-i-enable-access-to-usb-devices-within-virtualbox-guests for details.
Note that this release does not work with VirtualBox 6