In today's world, our lives are majorly driven by the internet and the data we consume and produce.
Hence, data protection and privacy is a critical thing that needs to be ensured.
None of us would like if those people hiding behind a mask in a dark room get to accesss our pictures,messages or any other form of data that we share. Not only is it displeasing but also harmful for our private and professional lives.
So what is to be done? We put our trust in various companies and service providers that have a bench smarty geeks using complex mathematical algorithms to encrypt our data while being tranferred over the internet
A branch lying at the intersection of computer science and mathematics called cryptography is responsible for this. Mostly, we employ public cryptography methods.
RSA algorithm is a popular public key encryption technique devised back in 1978 by Rivest, Shamir and Adleman and is still used for a number of applications.
However, an algorithm called Shor's algorithm was already existant from 1994 that could crack this. But it depended on the use of a quantam computer for execution. This was very unlikely until recent times when IBM released its open source quantum computing development environment called Qiskit and access to their actual quantum computers using IBMQ
Python 🐍 has our back on this with a simple walkthrough given in this repository!
- Click on the Quantum Buglary Jupyter notebook
- Click on
Open in Colab
-
Make sure you have the lastest version of Anaconda installed on your system and its set to path
-
Clone this repository ⏬
-
Move inside 👉 the repo
- Open the Terminal 👩💻
- and type
cd quantum_burglary
-
Now make sure you have all the dependencies🧱
- type in the terminal
pip install -r requirements.txt
- type in the terminal
-
Now load open the
quantum_burglary.ipynb
- Open the Terminal 👩💻
- and type
jupyter notebook quantum_burglary.ipynb
-
Give it a few seconds to load (Depends on your system specifications)
-
[Optional] If you are familiar with Number Theory, try going through both the algorithms's implementations
-
Else just enter your message, encrypt it using RSA and watch Shor's algorithm carrying out the mystic arts
- Addition of scripts to modularize this and run from the terminal
- Creating a GUI for this
- Explanation of Cryptography in general and Public Key Cryptography
- Explanation of RSA algorithm with number theory basics
- Explanation of Shor's algorithm with qiskit basics