date: 2020-09-10 tags: python cryptography type: post
Symmetric cryptographic means of encryption based on Unicode Emoji standard implemented with Python programming language using secure standard library modules employing user-first design practices and clean architecture standards. 🤡
For example, this text:
The real reason you can’t invade Australia is because it doesn’t exist. Australia is not real. It’s a hoax, made for us to believe that Britain moved over their criminals to someplace. In reality, all these criminals were loaded off the ships into the waters, drowning before they could see land ever again. It’s a coverup for one of the greatest mass murders in history, made by one of the most prominent empires.
I built this piece of code to express myself as a true zoomer. Sadly, I could not add any Fortnite features or the inability to install printer drivers to this code. But I did succeed to: - Make an encryption algorithm that uses emojis! - Make an encryption algorithm that increases data size, because more is better, even more, when it comes to the web! If your application is fast, it ain’t modern. - It is written in Python. - It uses async for everything. Does it improve performance? Maybe. But it looks way cooler if I tell you that my Python code uses async, generators, decorators, and walrus operators.
How does it work? If you are still reading this… no, you probably aren’t. It works by installing a botnet on your device which tunnels traffic from my free VPN project I am working on /s. I drank a liter of Cherry Pepsi today, I think I like it. Tastes pretty good with a glass full of ice. Okay, back to the project.
Emojipher works by creating a dictionary of byte values mapped to emoji lists. There are 256 different bytes, so each byte gets one to four emojis assigned to it. This should make it resistant to frequency analysis. (I came up with this when we got an introduction to Vigenère Cipher). Emoji is way more than a byte, so it also works as a bloat algorithm.
Do you want to slow down the internet? You want to fill up NSA and Google servers with useless data? I am here to help you. Encrypting data takes the input file, reads it byte by byte, and replaces it with a random emoji from the key dictionary.
The output file is just a massive text file of emojis. Decrypting is the reverse operation: read emojis, get byte it represents. Make a new file with decrypted content. I have tested it on two whole files. I have not done any more testing.
Is it crypto safe? Unlikely. Is it good crypto? Unlikely, you will still have to send your friend the key you generated. Is it funny? It is for me. I jokingly added this to my resume. And I got no job :(
Yeah, I’ve inlined the whole source file in this post. You can take a look at hardcoded list of >1000 emoji: