I have explored 3 different encryption algorithms as part of my experiential learning for Discrete Mathematics Course. After understanding the application of discrete mathematicas concepts such as number theory and group theory in the different symmeric and asymmetric encryption algorithms, I chose to implement RSA, AES and Diffie Hellman Encryption Algorithms. I have implemented RSA using Matlab and AES, Diffie Hellman algorithms using C++. RSA works based on Euler's theorem and Fermat Little's theorem. RSA protocol provides direct encryption and security of messages. Diffie Hellman involves creation of a function using the concepts of group theory and modular arithmetic such that f(f(x, a), b) = f(f(x, b), a). This gives a shared key which can then be used by AES algorithm to encrypt and decrypt messages.
The Encryption algorithms directory structure looks as follows::
E-commerce-Website-Django/
|---AES_DH.cpp
|--DMS EL_reprt.pdf
|---DMS EL.pptx
|----readme.md
The repository also contains power presentation and report detailing the concepts of discrete mathematics involved, the algorithms used and application of these Encryption algorithms in our daily lives.