/TimingAttacks-ML

Primary LanguageJupyter Notebook

Determining Encryption Algorithms from Timing Data

Independent study at DePauw University

Inspiration

It has been found in previous research that there is significant difference between popular encryption algorithms in various aspects of performance. One of these factors is processing time, which not only depends on the algorithm, but also the size of the data to be encrypt and decrypt.

In this work, we implement a systematic approach to analyze the differences in processing time between these algorithms, using various statistical tools. We will also leverage modern machine learning models to automate the process of identifying these systematic differences between the algorithms, to see whether trained machine learning models can recognize particular algorithms from just timing data.

If this type of timing attacks can be achieved, we will further look to adjust these encryption algorithms so sensitive timing data can be hidden from malicious users.

Tools

  • Python 3 will be our main programming language for the project.
  • We will use the pycrypto module to simulate different encryption algorithms.
  • List of machine learning models used to this work:

Analysis

Conclusion

References