Welcome to Learning Encryption with Python

Intention

The intention of this repository is to document my journey through a self-guided project to learn the mathematics of encryption and to provide a learning resource for anyone with a similar goal or interest.

General concepts

There is some mathematics involved in each section, but I will attempt to start of with very general descriptions of concepts using words and diagrams that I have created so that you do not have to delve into the mathematics if you do not feel comfortable with it.

Technical descriptions

I will follow up with more technical sections containing the underlying mathematics and some accompanying python code that demonstrates the concepts at a lower level.

Python examples

I will provide working examples and instructions on how to run the python code examples so that others can use, understand or change what I have done to help them learn at a depth they are comfortable with.

Degree of difficulty

I will attempt to apply a difficulty icon to indicate the level of technical understanding required so people can skip over parts that they may not want to delve into. I will try to make it accessible for non-technical readers, but also informative for more technical learners.

Why?

I don’t feel I can speak confidently about something unless I know the underlying reasons of how it works and why it exists. I hope this project is as helpful for you as it is for me writing it.

Open and free

I will use open-source/free products only to create the content so that anyone can contribute if they wish to. So, please feel free to comment/contribute to the project. I have provided a list of references below which will grow as I progress.

Naming

I may change the name near the end of the project to something more snappy.

References

See reference sections at the bottom of each page also.

Cryptography and Python book: Implementing+Cryptography+Using+Python

Addition, Subtraction, Multiplication, Division, Roots, Exponentiation, Logarithm: Arithmetic_operations

Integer Factorisation: Integer_factorization

Prime Factorisation: make-your-own-prime-factorization

Factors and Prime Factors:
factors-of-26
factors-all-tool

Prime Numbers: Prime Numbers

Euler’s Totient Function: Video: Euler’s Totient Function introduction and https://www.youtube.com/watch?v=2JY3P3aHUJk - recommended viewing, Michael Penn’s series are excellent.