This is an implementation of the asymmetric encryption algorithm RSA.
If you plan on using this implementation then you need to know how asymmetric encryption works. Here is a video that explains it.
Before we start, make sure you have Python installed (version 3.6 and above).
If you don't already have it installed, download it from here.
- Download the files either by Git or by downloading the ZIP file.
- If you don't know how to install the ZIP file (and I know some of you don't :^) ), just click here
- Open "program.py".
- Run the file.
The main purpose of this implementation was to learn RSA and how it works, and to make sure that I fully understand RSA. As there is no better way to make sure that you understand something than to actually implement it. As a result, I didn't put any thought into writing clean/readable code (specially the extended euclidean algorithm file, since I implemented it from scratch and had a very difficult time finding proper names for the variables :') ) so please, take it easy on me.
Open to contributions. Would appreciate contributions related to best practices and potential vulnerabilities in the code. And I wouldn't mind any help with the readablity and cleanliness of the code either :3
- The Mathematics of Cryptography - Zach Star
- Cryptography | The Mathematics of RSA and the Diffie-Hellman Protocol - Zach Star
- Cryptocurrency Wallets - Public and Private Keys (Asymmetric Encryption Animated) - Whiteboard Crypto
- Public Key Cryptography - Computerphile
- Computerphile in general, one of the best in the business. Just search for RSA, Asymmetric encryption, or anything else that catches your interest
- Extended Euclidean Algorithm and Inverse Modulo Tutorial - Best Friends Farm