Aadit R's Senior Project Blog
|
|
Project Title: Comparative Analysis of Encryption Algorithms BASIS Advisor: Mr. Kwit Internship Location: Remote Onsite Mentor: N/A |
Project Abstract
Encryption algorithms play a vital role in securing data. By converting normal data into something incomprehensible, encryption algorithms aim to protect information from unwanted viewers. Whether it be for browsing the internet, banking online, or even communicating via email, encryption is important in preventing unwelcome third parties from accessing secured information. However, with rapidly growing technologies, how can such algorithms ensure that the data being encrypted actually remains private and secure from prying eyes? This paper aims to answer that question by understanding the processes behind various encryption algorithms and looking into both the advantages and disadvantages of their implementation. By comparing different algorithms based on their encryption type, time efficiency, and memory usage, and reviewing prior comparative analyses done on encryption algorithms, this paper seeks to better understand encryption algorithms as well as their benefits and limitations.
Conclusion
So, this is the end. No longer do I have to listen for hours to the whirring of fans as my computer overheats from running extremely inefficient Python scripts for a measly handful of graphs, and no longer does my computer have to suffer parsing through my spaghetti code to generate the necessary data. All... Read More
Week 11 – Presentation Preparation
The presentation is right around the corner, and I’ve started finalizing my slides and formalizing my talk. Regarding the topics for the presentation, I’ve decided to omit elliptic curves (maybe I’ll mention them briefly, but nothing in depth) and not go into post-quantum algorithms (since implementation using PyCryptodome is not possible), and focus solely on... Read More
Week 10 – Data Visualization (AES-256 and ChaCha20)
Final visualizations are done, and this time I compared AES and ChaCha20. AES is a symmetric block cipher that encrypts a given input in fixed-sized blocks, by grouping the input data into fixed 128-bit-sized blocks and performing operations on that block given an input key. Alternatively, ChaCha20 is a symmetric stream cipher that encrypts the... Read More
Week 9 – Data Visualization (ElGamal and RSA)
It’s nearing the end, and frankly, the time seems to have flown by rather quickly. Anyways, it’s week nine, and everything is starting to wrap up. This week, I wrote a few functions to organize and graph the data gathered from trials, and tested them on the asymmetric algorithms I wrote last week and the... Read More
Week 8 – Data Collection (With a Pinch of Torment)
Alright, week eight. So, I have quite a few things to cover. First, I changed my generate files function to store a string that is 128 bytes long instead of 100 bytes, so that the calculation results in 1024 bytes per input size, so now the resulting files should be in kilobytes (128*8 = 1024... Read More
Week 7 – Testing Preparations
So this week, I created a few Python programs to help with next week when I plan to compare the different algorithms. The first program was a function to generate a .txt file of a given size in kilobytes. The function is extremely simple, but it makes the process of generating the files for testing... Read More
Week 6 – RSA Implementation
So this week I wrote an implementation of RSA to encrypt a string. Now, the code is probably not the best (optimizations most certainly can be made), but it works, so here it is anyway: Quick note, the GCD (greatest common divisor) function was not my own, but rather taken from an algorithm written... Read More
Week 5 – Encrypting Teapots!!!
Alright week five. So… I may have forgotten to post a blog last week since I was a bit occupied over the weekend and kind of forgot to post an update, but I’ll just post one now and pretend like nothing happened (better late than never, right?). Anyways, aside from more reading, I created a... Read More
Week 4 – Parameters!
Another week, another post! So, I skimmed through some of the papers that have conducted similar experiments and found that most of them relied on memory usage and time efficiency (while also taking into account the size of the initial, unencrypted file) as parameters in comparing the algorithms. There were also a couple of papers... Read More
Week 3 – Reading!
Alright, another week down. To be honest, this week has been relatively uneventful regarding the project. I’ve just been reading Springer’s “An Introduction to Mathematical Cryptography” and made it up to Diffie-Hellman. The next chapter should be on RSA, which may be more directly applicable to my research, and the following chapters should result in... Read More
Week 2 – Sources
So, I started gathering different literature on the topic — research papers, textbooks, NIST publications — and came across a few sources to learn from. As I mentioned in my last blog post, similar research has been done before, so I can use the collected sources to guide my project. However, before I start looking... Read More
Introduction
Hello! I’m Aadit, and I’ll be doing a comparative analysis of various encryption algorithms to learn more about cryptography and understand the benefits and limitations of different cryptographic algorithms. I honestly don’t know how far I’ll get with this topic. I want to be able to discuss some post-quantum algorithms—possibly get into the math behind... Read More
