eXtended eXternal Benchmarking eXtension (XXBX)
The eXtended eXternal Benchmarking eXtension (XXBX) is a tool for
benchmarking the performance, memory usage, and power / energy consumption
of cryptographic software on microcontrollers. It is an extension to the
System for Unified
Performance Evaluation Related to Cryptographic Operations and Primitives
(SUPERCOP) which benchmarks a large variety of cryptographic primitives
on general purpose computers. XXBX extends it in the sense that it allows
for benchmarking on embedded platforms and adds metrics for RAM and ROM
usage as well as power / energy consumption.
XXBX at HOST 2018
We presented a live hardware demonstration of the XXBX at the
IEEE International Symposium on Hardware Oriented Security and Trust (HOST) 2018 held in McLean, VA, on April 30-May 4, 2018.
The demonstration showed a MSP432P401R benchmarking the CAESAR finalist
ASCON over a wide variety of input sizes. It was very well attended and
Matthew Carter and Raghurama Velegala were very busy running the demonstration
and explaining how XXBX works to the audience. The poster accompanying the
demonstration is shown on the right and can be downloaded.
XXBX is comprised of the following components:
- The XBX benchmarking System (XBS) is software running on a Linux PC
which cross-compiles cryptographic algorithms from SUPERCOP algopacks
for the selected target microcontrollers, and orchestrates the benchmarking.
- The XBX Harness (XBH) is a microcontroller board which is connected
to the PC running the XBS via Ethernet and to the target microcontroller (XBD)
via I2C. It passes compiled programs, instructions and test data
to the XBD and measures the execution time of the algorithm and the power
consumption of the XBD.
- The XBX Power Shim (XBP) is a board that sits between the XBH and
the XBD, captures and amplyfies the current drawn by XBD so that the ADC on
the XBH can measure it.
- The XBX Device under test (XBD) is the board with the microcontroller
that is being benchmarked. It runs the algorithms, tells the XBH when an
algorithm starts and when it completes as well as how much space the algorithm
consumes on the stack.
The picture below shows the XBH on the bottom. Attached to its top is the small
XBP and the XBD is the top most board.
Related Publications
J.-P. Kaps,
EXtended eXternal Benchmarking eXtension (XXBX),
Oct.,
2016,
SPEED-B - Software performance enhancement for encryption and decryption, and benchmarking [
pdf] [
Bibtex]
SPEED-B - Software performance enhancement for encryption and decryption, and benchmarking, Utrecht, Netherlands, invited talk
J. Pham and J.-P. Kaps,
EXtended eXternal Benchmarking eXtension (XXBX),
Sep.,
2015 [
pdf] [
Bibtex]
DIAC 2015: Directions in Authenticated Ciphers, Singapore
J. Pham,
Development and benchmarking of cryptographic implementations on embedded platforms,
ECE Department, George Mason University,
Fairfax, Virginia, USA,
Aug,
2015,
Masters Thesis [
pdf] [
Bibtex]