Skip to content

gcjordi/quantum_cracking_encryption

Repository files navigation

forthebadge made-with-python

Python 3.6 made-with-jupyter LinkedIn-profile

Shor-s-Algorithm_Quantum

A few months we had implemented RSA encryption from scratch with tweakable security parameters. This is a practical implementation of Shor's Algorithm to break our RSA encryption layer.

Shor’s algorithm was invented for integer factorization in 1994. This algorithm is based on quantum computing and hence referred to as a quantum algorithm. The algorithm finds the prime factors of an integer P. Shor’s algorithm executes in polynomial time which is of the order polynomial in log N. On a classical computer, it takes the execution time of the order O((log N)3).

We made use of IBM's Quantum Experience Qiskit module in jupyternotebook for designing the quantum circuit that works on qubits instead of the traditional bits.

Qiskit is an open-source quantum computing software development framework for leveraging today's quantum processors in research, education, and business.

If a quantum computer with a sufficient number of qubits could operate without succumbing to quantum noise and other quantum-decoherence phenomena, then Shor's algorithm could be used to break public-key cryptography schemes, such as the widely-used RSA scheme. RSA is based on the assumption that factoring large integers is computationally intractable.

Cloning

$ git clone https://github.com/gcjordi/quantum_cracking_encryption.git

Dependencies

$ pip3 install -r requirements.txt

How to Run

$ jupyter notebook Breaking_RSA.ipynb

Output

Screenshot from 2019-12-26 02-05-00

Screenshot from 2019-12-26 02-05-22

Screenshot from 2019-12-26 02-03-53