Application Security Project
Cryptography Tool
Introduction
In this individual project, I used Tkinter and Python to design and develop a tool that would provide encryption and decryption, as well as teach users about the different types of attacks.
​
Features:
-
Learn​​
-
Types of attacks​
-
Quiz
-
-
Cryptography​
-
Shift cipher​
-
Rail fence technique
-
Mono-alphabet cipher
-
Simple columnar transposition technique
-
Vernam cipher
-
Diffie-Hellman key exchange
-
-
AES​
-
Electronic Code Block (ECB)​
-
Cipher Block Chaining (CBC)
-
Cipher Feedback (CFB)
-
Output Feedback (OFB)
-
-
Tutorials​
Learn
Types of attacks
Users can learn about the 2 types of attacks: active attacks and passive attacks.
To provide additional learning, there are short descriptions of the general classification of attacks and the practical side of attacks.
Quiz
For users to test their knowledge on cyber attacks, a short quiz has been provided.
Cryptography
The tool uses the following methods to provide encryption and decryption:
-
Shift cipher
-
Rail fence technique
-
Mono-alphabet cipher
-
Simple columnar transposition technique
-
Vernam cipher
-
Diffie-Hellman key exchange
​​
The images below show how users can use my tool to perform encryption and decryption.
Example of an encryption
AES
Advanced Encryption Standard (AES) can be used for 4 main methods:
-
Electronic Code Block (ECB)​
-
Cipher Block Chaining (CBC)
-
Cipher Feedback (CFB)
-
Output Feedback (OFB)
​​
The images below show an example of how AES can be used in my tool.
Example of using AES in the ECB method
Tutorials
To facilitate learning and use of the available algorithms under cryptography and AES, there are at least 2 individual tutorials available for each algorithm.
​
The images below show how tutorials can be accessed and an example of how a tutorial looks like.
Key Takeaways from this Project
This individual project pushed me to think out of the box and build something I was not taught before.
​
I was given the option of developing the tool as a web application using Flask or as a standalone tool. To push myself to do something different, I decided to do a standalone tool. To do so, I had to do some research about the Python modules I could use. After giving much thought, I decided to use TKinter to build my cryptography tool, CryptApp.
​
I experienced 2 main difficulties throughout the development of this project:
-
Learning how to use TKinter to provide a UI/UX design to my tool
-
Learning how to code encryption and decryption techniques, as well as AES methods using Python, then integrating into my codes for TKinter.
​
Although this project took me weeks to complete, I am happy with the outcome because it was what I had hoped to achieve.