My Attempt At Creating Post Quantum Cryptography
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
Have been working on finishing this sooner than later, organized and got in coroutine for faster speed. Whereas there was a noticeable lag before, the entire process happens within less than a second on a computer with a
- 12 Core 2.30GHz Intel Core i5-10500T and
- 16GB RAM
Overall, KGE has been created using Unity Bolt Visual scripting. I am going to change it to Python but i'll be using Bolt for now as it really helps with organizing things and even acts kind of like psuedocode.
For now, the UI consists of 6 main elements:
IV I (The first randomly generated string of ASCII characters)
IV II (The second randomly generated string of ASCII characters)
Password I (The password a user sets)
Password II (The password a user, server or the hardware itself sets)
Text to be encrypted (The string a user sets, can be set in html-like format to support documents)
In this example, I set Password I, II and the Text to be Encrypted
Upon pressing Encrypt, the first thing that comes to note is the fact that both IVs are generated.
Unreadable, right? This is the point of these IVs in particular and the reason they look like this will be explained later in this update. For now, lets try to understand what happens behind the scene.
Now you may be thinking "Woah, that's a lot to unravel (or for some of you a little)!" However upon further inspection the system is both simple yet effective.
For starters, the text placed into the textboxes are turned into the variable. However, the way this text is taken can easily be changed as you see fit. Also ignore the string box, that is for me to use by the next update.
Next up, IV I and II is generated. IV I and II are very similar in generation so there is no need to post IV II. Essentially the program takes a file I created with each newline having a character from ASCII I want to use. Then, that is turned into a list in Unity. A random character is taken 40 times and upon completion the resulting string is turned into a variable.
A file with each newline having an ASCII character is used to create a list and turned into a list, which is saved as a variable.
Now this system is saved within a "Super Unit" (think of it like a container for code which allows you to put a chunk of it into one box instead of being strung out on the main dashboard). Let's investigate this further.
For starters, the User String length is divided by four. If not enough characters exist for four, the null sign is added to a pairing until there is enough for four. All characters are then put into a list.
Next, the entire thing goes through a loop. The loop increases by four (and for those unaware, lists start at 0 in programming) like 0,3,7,11 and during each jump the number, +1, +2 and +3 of the list number is used as what number item to check in the character list. That is taken and added to a list.
*Simply showing as explained above*
Another Super Unit is used now. However, each character is turned into the ASCII value representation of itself and turned into a new list.
Now that we have left both of those Super Units, we are looking at the toggle value option. Essentially we are trying to reorder and organize the list of ASCII characters in a way that can be undone later.
Within these two, the variables switch between organizing the ASCII character values to groups of four and to 3,1,2,4 and 4,3,12. This will be expanded on later for more organizing patterns. However, this system will next add the values of IV and Password together before adding, subtracting, multiplying and dividing to each value in the list to obfuscate it.
Now, this has to be done 20 times with being able to undo it with the proper variables. I also want to make the system more advanced later by obfuscating the system further at this stage. I do not feel it is enough yet.
Encryption
For reference, v1.2 is when most of this really is done! V 1.0 and 1.1 are viability tests!
Decryption
Equations Used
To be listed later
There are many things that KGE does which makes it hard for even quantum computers to decrypt the password without the proper information. Computers are able to decrypt data because what they commonly do is run over every possible combination. Quantum computers can go over more combinations at an extremely fast pace compared to standard computers. However, KGE creates so many variables (IV, IVII, Password, Password II, Math Module, Dummy Points, Etc.) the amount of possibilities possible not only make it super hard for a computer to churn out all of the pieces to make sense together but there are multiple possibilities with one possibility, making the Quantum computer less capable of telling if a certain password out of a range is correct.
Biggest Problem:
This is an overview of the layout in which KGE works.
Example (Not Made To Fit Math IRL, Visual Example):
IV I and IV II
Password I and II
93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | |
93 | xx | xx | xx | xx | xx | xx | xx | xx |
94 | xx | xx | xx | xx | xx | xx | xx | xx |
95 | xx | xx | xx | xx | xx | xx | xx | 4m |
96 | xx | xx | xx | xx | xx | xx | xx | xx |
97 | xx | xx | xx | xx | xx | xx | xx | xx |
98 | xx | xx | xx | xx | xx | xx | xx | xx |
99 | xx | xx | xx | xx | xx | xx | xx | xx |
100 | xx | xx | xx | xx | xx | xx | xx | xx |
w=x^n+(y*n^2)/Y, n=(round*y/x)^2
X = 100
Y = 95
Round = 100
N = (100*95/100)^2
= 9025/220
=41
N=41
W=100^41+(95*41^2)/95
=15
(Create Better Equation, Do by 256 for special equation?)
4. xL6X3Rc2xWO1BNd3sYmR
xL6XsY3Rc2xWO1BNd3mR
xL6XsYc2xW3RO1BNd3mR
Rm3dNB1OR3Wx2cYsX6Lx
5.
IV Pair (ID) | Add | Subtract | Divide | Multiply | Multiply |
mR | xL | 6X | c2 | 3R | Password Piece |
xL | 6X | 3R | xW | c2 | Password Piece |
6X | 3R | c2 | O1 | xW | Password Piece |
3R | c2 | xW | BN | O1 | Password Piece |
c2 | xW | O1 | d3 | BN | Password Piece |
1pv7eeuc926
6. 1pv 7ee uc9 26-
7. mRxL6X3Rc2xWO1BNd3sY
xL6X3Rc2xWO1BNd3sYmR
xL6XsY3Rc2xWO1BNd3mR
xL6XsYc2xW3RO1BNd3mR
Rm3dNB1OR3Wx2cYsX6Lx (End Result)
8.
IV Pair (ID) | Add | Subtract | Divide | Multiply | Multiply |
mR | xL | 6X | c2 | 3R | Password Piece |
xL | 6X | 3R | xW | c2 | Password Piece |
6X | 3R | c2 | O1 | xW | Password Piece |
3R | c2 | xW | BN | O1 | Password Piece |
c2 | xW | O1 | d3 | BN | Password Piece |
9.
bwt1dj1WB6oXAUfAKOxL guL4bkjGw7IyONSgeTOX ...Read more »
KGE (Or Kinda Good Encryption) is an experimental encryption system designed to help with encrypting against Quantum Computer and Computer Farms. To understand how this all works, let's say you're sending a message to your friends Dave and John.
You, Dave and John are absolutely cracked at Apex Legends but they continuously get 1k less damage to you so you decide to tell them to switch to a new legend before a tournament begins.
If you use a Cipher such as AES, the data is properly obfuscated using a Password and IV and is sent to Dave and John, who can use a password and IV to decipher the message you sent, which explains that a Revenant, Pathfinder and Ash team (or The Metal Men) is superior due to Dave's ability to take good sniper shots but needing to change position every minute or so to reach higher ground and John's ability to hunt then push teams really hard for short periods of time.
However, your nemesis Matthew wants to find out your secret plan so that he may sabotage you in a long Twitter rant saying that those three legends are broken and should be banned on competitions. He somehow intercepts the message you sent and gets the ciphertext as well as the IV (which is usually not bothered with being too protected). He plugs it into his quantum computer and starts churning numbers, needing the password to decrypt the message.
Does the quantum computer send a qubit to the server, representing every possible password?
No, the internet can't send qubits (yet) and even then, developers should be smarter than to allow qubits for a login system.
Does the quantum computer compile a huge list of possible passwords and allow you to press a collapse to correct option?
Not that simple my friend.
Instead, what the password does is allow for more answers to be tested at a faster pace. It uses algorithms such as Shor's or Grover's Equation to basically increase the possibility of an answer at either an exponential or quadratic rise. if a standard computer took 10 milliseconds to try a password and there were 16 characters with One Trillion Possibilities, it would take at least 3,168,876 years to try every possible password, which is longer than Matthew's lifespan. However, a Quantum Computer allows this to be done in much less time, taking what may be a few days compared to the alternative. This gives Matthew the power to try every single possible password in just a matter of days.
What KGE attempts to do is increase in the number of possible answers and combinations to the point that attempting to use any sort of decryption system seems pointless.
In extremely bare terms (which are expanded on the Encryption Steps Post), an IV and IV II is randomly generated, while two passwords are made from the user. The result is turned into a group of points, with details from the IV being used to create several points and ranges on a 3D graph. These points then are added into a third IV, which requires the first and second IV and the first and second password to use. This is used to tell the decryption process which points to look at and in which order. What makes this better is the fact that this does snot use conventional math. As an example, while 1+1 may be 2, the system may decide that 1+1=@, which is better explained within the next log.
This adds in many more variables not present before and even if you were to use a Quantum Computer to attempt to find the password, there are many more things that you must account for now such as how the basic math system works and what points on the graph is real/fake. Also due to the high placement of numbers and special characters there are many more combinations compared to a regular system.
Now, when Matthew decides to attempt a decryption using the Quantum Computer, not only does he have to go through what is a much higher number of possible combinations, he also has to get all possible math modules following the basic laws of mathematics and go through...
Read more »
Create an account to leave a comment. Already have an account? Log In.
Become a member to follow this project and never miss any updates