Skip to content

Sharif-University-ESRLab/fall2024-cryptographic-embedded-benchmark

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

image

Evaluation of cryptographic algorithms and security protocols in embedded systems

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.

Tools

  • STMCubeMX
  • STMCubeIDE
  • KeiluVision
  • PuTTy
  • Tera Term
  • STMCubeProgrammer
  • STMCubeIDE
  • KeiluVision
  • PuTTy
  • Tera Term
  • STM32F103C8T6 - Blue Pill

Implementation Details

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.

image

image

image

Here is how it looks like:

image

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:

image

image Specifying pin settings

image Clock and frequency settings

image Enable USART to exchange data from the board to the PC

image Project Setting

image Auto-generated codes based on initial project settings

image A successful build

image A successful load

How to Run

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.

Results

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

Notes

  • 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.

image

Automatic GUI for our Benchmark!

image

Related Links

Some links related to your project come here.

Authors

Authors and their github link come here.

About

hardware-lab-sharif-university-of-technology-fall2024-hwlab_template created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.9%
  • CMake 0.1%