Skip to content

A collection of different cryptographic algorithms and ciphers, including the maths behind each algorithm. This is an ongoing project that will be added to over time, with the aim of providing a comprehensive resource for learning about cryptography. The project includes both the code for the algorithms and explanations of how they work.

Notifications You must be signed in to change notification settings

breezy-codes/cryptography-guide

Repository files navigation

Welcome to the World of Cryptography!

Welcome to my Cryptography Projects project! This is where I will be sharing all the cool stuff I've been working on in the world of cryptography. It's an ongoing project that I will keep updating as I learn more and find the time to dive deeper. There’s no strict timeline here—it's built around my learning journey and time availability as a full-time student.

My passion for cryptography started in my first semester of university in Discrete Mathematics, where I wrote a HD report on the RSA algorith, DHKE algorithm and ECC. This continued into my second semester in my Cryptography subject, where I wrote a HD report on Quantum Cryptography and the Shor's algorithm. Both of these reports were featured in the Deakin Maths Yearbook 2023. I have since been exploring different cryptographic algorithms and concepts, and I'm excited to share my findings with you.

Access the handy maths symbol cheat sheet to help with covering these topics here: Cheat Sheet

About This Project

This project is a collection of my work in cryptography, presented in the form of Jupyter notebooks. Each notebook explores different aspects of cryptography, from theoretical mathematical foundations to practical implementations in Python. You’ll find detailed explanations of the mathematics behind cryptographic algorithms, along with code snippets to illustrate how these concepts are applied.

What you will find here

Here are some of the topics I have covered or intend to cover in this project:

  • The concepts of number theory that underpin many cryptographic algorithms
  • Different Ciphers such as Caesar Cipher, Vigenère Cipher, and Hill Cipher
  • Symmetric Key Cryptographic Algorithms such as DES, AES, and others
  • Asymmetric Key Cryptographic Algorithms such as RSA, ElGamal, ECC and others
  • Hash functions such as MD5, SHA-1, and SHA-256
  • Quantum Cryptography and its applications
  • Digital Signatures and Public Key Infrastructure (PKI)

How to Use This Project

Each page on the website is it's own notebook file, you can explore each on the website or download and run the notebooks on your local machine. Feel free to explore the topics that interest you the most, and don't hesitate to reach out if you have any questions or feedback.

To Download the github repository:

  1. Clone the repository to your local machine using the following command:
git clone https://github.com/breezy-codes/cryptography-guide.git
  1. Navigate to the directory with the following command:
cd cryptography-guide
  1. Create a venv and install the required packages using the following command:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Contributions

I welcome contributions to this project! If you have any suggestions, corrections, or new topics you would like to see covered, feel free to open an issue or submit a pull request. I am always looking to improve the content and make it more accessible to a wider audience.

Helpful Resources

  • A Security Site - A great resource for learning about many different cryptographic algorithms and security.
  • Learn Cryptography - A great resource for learning about cryptography on Khan Academy.
  • Cryptography and its types - A great resource for learning about cryptography and its types on GeeksforGeeks.
  • The Code Book - A book on the history of cryptography dating back to Ancient Egypt by Simon Singh.

Contact:

If you have any questions or feedback, feel free to reach out to me on LinkedIn.

About

A collection of different cryptographic algorithms and ciphers, including the maths behind each algorithm. This is an ongoing project that will be added to over time, with the aim of providing a comprehensive resource for learning about cryptography. The project includes both the code for the algorithms and explanations of how they work.

Topics

Resources

Stars

Watchers

Forks