I recently started a new project. The project is named Algoa after an asteroid from 1394.. The goal is to provide a classical means of an unbreakable cryptography algorithm using quantum cryptography methods while using classical methods. For example, quantum cryptography uses qubits. Representations of 1 and 0 simultaneously. IBM currently, at the time of this writing, has a 5 qubit system we can utilize, but in the near distant future, a couple weeks, will open up a 20 qubit system to the public. So, in an effort to gain traction in this developing field, I/a small team, are employing classical quantum cryptography algorithms with the hope that when a true quantum computer is made available, we can easily migrate to that without any loss of time.
So let’s begin, shall we?
As stated previously, a true quantum computer has not been made public aside from the 5 qubit IBM computer. From testing, I put in some algorithms, been in a queue for awhile and eventually ended up with a result. This is not that practical when trying to implement a quantum cryptography system. No one has time to wait in a queue for a random number, or a QKD (Quantum Key Distribution) based on the IBM computer. So our efforts have been implementing the concepts in a classical sense, then we can implement in a real sense when the technology makes sense. The code I have written so far takes advantage of ANU Quantum Random Numbers for what I feel is a replacement for a true randomness generator. Eventually, I will come up with a true randomness generator but the QRN is the best so far.
In order to get started, I require some per-requisites.
- Set up a Python virtual environment
- Install the dependencies
- Check out the code I put into Github
- Run the code locally
- Check it all out for bugs ( I mean really test all side cases)
- Create a pull request
- I shall merge if things are good
I do have some assumptions, as stated in a previous post. As a reference the main points are below:
- You can code
- You can compile
- You can Google
- You can read and comprehend
- You are interested in something new
- You are interested in things outside your comfort zone
With that out of the way, let’s do the basics.
Set up the virtual environment
- Open up a Linux shell
- I do not care if it is a CentOS, Ubuntu virtual machine or the Windows 10 Ubuntu shell. Ive been working in the Windows 10 shell, so if you are trying to run my code in something else, contact me and I’ll help
pip install virtualenv
- Run this https://github.com/vaethis/workspace/blob/master/utilities/setup_quantum_toolbox.sh
pip install django
- Open up a Linux shell
- This will set up all the dependencies
- Git clone this: [email protected]:vaethis/algoa.git
pip install -r requirements.txt
- If all goes well then run
- python mange.py runserver
- If things do not go well, try a manage.py makemigrations then ./manage.py migrate
- If things do not go well you are welcome to contact me ezluzvaerus @ gmail . com and tell me what errors you get. I think I spelled out the basics, but please troubleshoot yourself first. At work people e-mail me things that don’t work but its something stupid simple. I am fairly certain if things do not go well I will get some emails.
My disclaimer. I do not attempt or pretend I know anything. The above are the bare minimum things I have done to get my simple code to execute locally. I have not performed any optimization, there are security holes I am aware of, and I have not optimized for production. So far everything is a half ass attempt for a development environment.