KGE Progress 1

A project log for KGE (Kinda Good Encryption)

My Attempt At Creating Post Quantum Cryptography

TKTSTKTS 01/23/2022 at 00:430 Comments

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.