The goal of this project is to design and implement a benchmark evaluation system for analyzing the performance of cryptographic algorithms and widely-used security protocols in embedded systems. This project will specifically focus on measuring system performance metrics such as Worst-Case Execution Time (WCET) to identify optimization opportunities. By developing new benchmarks that focus on modern cryptographic techniques, this project will address the problems found in older or expensive benchmark tools like Embench, Mibench, and EEMBC.
- STMCubeMX
- STMCubeIDE
- KeiluVision
- PuTTy
- Tera Term
- STMCubeProgrammer
- STMCubeIDE
- KeiluVision
- PuTTy
- Tera Term
- STM32F103C8T6 - Blue Pill
First, we conducted a comprehensive survey of existing benchmarks and algorithms. To our knowledge, we were the first to conduct a survey specifically on cryptographic algorithms within embedded system benchmarks. We reviewed 70 papers, summarized their abstracts, and analyzed their weaknesses and insights. Based on this analysis, we developed our own benchmark, which offers significant advantages over prior benchmarks and serves as a key contribution of our work. The survey we developed can be extremely valuable to the research community as a focused effort in this domain.
Additionally, we calculated the standard deviation and determined that the probability of execution time exceeding the mean plus three standard deviations is less than 1%, based on probability and statistics principles. This statistical rigor makes our benchmark stand out, ensuring a 99% probability of reliable performance.
Here is how it looks like:
Using this great information and amazing benchmark that covers the most important and practical algorithms,
The STM32 use and implication is like below as well:
Enable USART to exchange data from the board to the PC
Auto-generated codes based on initial project settings
There are no dependencies. The instructions for the STM32 are provided above. The code is fully implemented in our benchmark design within the code folder, and all files are in C. You just need to build and compile them. The GUI also includes a leaderboard and can be run multiple times.
This table presents the execution time statistics for different cryptographic algorithms.
Algorithm | Average Execution Time (seconds) | Worst Execution Time (seconds) | Standard Deviation | Average + 3σ (seconds) |
---|---|---|---|---|
🥇PRESENT | 0.000012 | 0.000036 | 0.000025 | 0.000087 |
🥈DES | 0.000038 | 0.000066 | 0.000058 | 0.000212 |
🥉RSA | 0.000084 | 0.000213 | 0.000169 | 0.000590 |
AES | 0.000168 | 0.000275 | 0.000345 | 0.001202 |
- PRESENT has the fastest average execution time.
- AES has the highest variation in execution time, as indicated by its standard deviation.
- The "Average + 3σ" column provides an estimate of the worst-case scenario for each algorithm.
Automatic GUI for our Benchmark!
Some links related to your project come here.
Authors and their github link come here.