Algoa The Nasty Details

I have finally figured out what I want Algoa to be. First things first. The code is available at: https://github.com/vaethis/algoa As I have said in previous posts, I expect people to understand some technology. If you are new to programming, or none of the below makes sense, I really do not care. I am using, Django, Python, PIP, GIT as utilities/languages and Redis. Blockchain, Quantum cryptography as concepts.

My vision:

Algoa will utilize quantum key exchange (albeit simulated) as a way to generate a secure key exchange. Until I become smart enough to figure that out, I am utilizing the quantumrandom python library (https://pypi.python.org/pypi/quantumrandom/) as a means of generating true random data. I want to develop a completely secure way of communicating and file transfer/storage while developing it in such a way it can expand into different areas. Those different areas have yet to be determined since I am just starting the project.

A couple of other things

  • The system shall be resilient
  • The system shall automatically adjust to a variety of situations:
    • Over use
    • Decrypted keys
    • Extendable, ability to add other communication methods other than chat and files
    • Have 99.9999999% uptime
    • Extremely cheap, I want the entire system to be under 50 bucks a month for 10,000 users
  • The system shall be packed in a docker container so that it can be extended in the cloud
  • The system shall be packed in such a way that it can utilize AWS cloudformation or code deploy
  • I want it so that I do a git push and everything is pushed, tested, deployed, expanded without any interaction. Ive done this in the past so it is doable.
  • Testing! Unit tests or shit will fail
  • All features should be Django apps. This will allow for extensions and when quantum encryption is truly available (aside from the half ass 5 qubit system we have now, you cant do anything with 5 qubits. Come on), we can easily switch apps and utilize the true quantum systems.

The below is a list of interactions:

  • User > Website > Generate Key > Keys are generated randomly.
  • User > Website > Delete Key > Keys can be deleted
  • User > Generate X number of keys
  • User > If a user runs out of keys, new ones are generated automatically. Most likely a mute thing
  • User > Keys > Can delete keys (if needed) Would not impact decryption. If a key is deleted then a new one would be assigned
  • User > Website > File Manager
  • Keys > Redis > UUID > UUID part of file metadata
  • Keys > Redis > UUID > UUID part of chat metadata
  • Keys > Used in file and chat data, discarded after decrypted. New keys are generated for every new encryption request. Each user will have a default number of 100 randomly generated keys for messages and files. Once the 100 keys are exhausted, another set of 100 is generated.
  • Keys > Keys are associated with UUIDs. File/chat decryption happens on the client and never on the server.
  • Blockchain > Miner > Tries to decrypt a Key. If a key is decrypted, the keys length will be increased for files and chat.
  • Blockchain > Miner > If a key is decrypted, a reward/coin is given
  • File Manager > Lists encrypted files based on keys that were not figured out by blockchain. I am not quite sure if I want to use IPFS or S3 yet. I would prefer IPFS.
  • File Manager > If a key was figured out, a new key is used to encrypt the file and the old key is automatically discarded.
  • Chat > Uses keys that were not figured out by blockchain and discarded after every message sent/received.
  • System> Only accept bitcoin
  • System > Manages interactions between block chain/file manager/chat

 

Right now everything is coded in Django/Python. I have had half a mind to switch to NodeJS/Angular, but damn I am lazy. With this system, the possibility of a key being decrypted is extremely low. If a key is figured out, it is discarded everywhere.

 

What have I finished so far?

  • Basic web UI
  • Ability to create/delete keys

What am I working on now?

  • The blockchain
  • The chat (I had it working but somehow deleted it)
  • The file manager (Again, I had it working but somehow deleted it)

What do I want to finish?

  • I want to polish the turd

Leave a Reply

Your email address will not be published. Required fields are marked *