About
If you need to send a secure message to a group of pals in a groupchat, but don't want some people to be privy of it? Emojicipher is for you.
What it does
Emojicipher is a telegram bot that helps secure your messages with AES encryption which is pretty darn tough.
Emojicipher adds another layer of security by obfuscating and randomly embedding your encrypted AES message into nice, unseeming Emojiart. Your message is not only encrypted, but hidden in style.
Emojicipher also enables you to choose your own Emojikey. An Emojikey is a string of emojis the public key used to decrypt your message. The best part? You can choose your key! Customise your key to any set of emojis you'd like and share your memorable key with trusted friends.
3,633 emojis exist as the time of this writing. This means that there are 3633^n possible emojikey combinations, where n is the length of your emojikey (which can be as large as you want!)
How to use it
Encrypt by giving Emojicipher your message plus any combination of emojis that will become your
public key. Much easier to remember than a long hexstring, huh?
Send Emojicipher bot/encrypt <yourmessage>
Reply with<your_emoji_key>Share your public key with trusted pals and send messages in plain sight with the quirky emojiart generated by emojicipher.
Decrypt by giving Emojicipher your Emojiart and your public key for decryption. Send Emojicipher bot
/decrypt <your_emojiart>Reply with<your_emoji_key>
Inspiration
Stickers, memes and copypasta are reposted and used often in chat groups. What if they could be used for something greater?
How we built it
Encryption/Decryption algorithms, art encoding, and telegram bot were implemented in Python. 2 Obfuscation strategies were developed for the hackathon.
Challenges we ran into
Unicode Nonsense
Telegram Conversions Telegram kept converting most of the zero width characters to \u200C which broke our magic bits logic. Luckily, we found replacement zero-width characters after a lot of trial and error.
Emojiart expanding Unicode is weird. Backspacing and insering emojis into a string of emojis may cause spooky behaviour where the emojis get expanded to 2 or 3 more emojis. This had massive implications for one of our emojiart obfuscation strategies, (random sprinking of emojis throughout the art). It made super long messages virtually unusable!
Non-monospaced Unicode Emojis have different widths. No monospace. This means that Emojiart renders very weirdly even though on the platforms or messengers the Emojiart was created on is rendered perfectly fine.
Telegram State Handling
- Associating key with target object for encryption/decryption.
Accomplishments that we're proud of
Magic Bits
We used invisible zero-width unicode characters to create a 'header' section for the emojiart that contains metadata about the message embedded in the emojiart
Emojiart Rendering
Smaller scale emojiarts were successfully rendered and looks rather natural to be used in chat groups.
Stateless Telegram
What we learned
- The mysteries and voodoo magic behind certain Unicode characters.
- Telegram API
- Encryption methods, hashing and some cryptography concepts
What's next for Emojicipher
πΈβ¦β¦. , . β . β , _ , β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦.π
π±β¦β¦. ) ` β . .> β `( β¦β¦.. BACKEND ENCRYPTION SERVICE APIβ¦.β¦β¦β¨
πΈβ¦β¦ / . . . .`\ . . \ β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦..π
π±β¦β¦ |. . . . . |. . .| β¦.. WEB INTERFACE ; β¦β¨
πΈβ¦β¦. \ . . . ./ . ./ β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦π
π±β¦β¦β¦ `=(\ /.=` β¦. SUPPORT FOR LONG MESSAGES ,β¨
πΈβ¦β¦β¦.. `-;`.-β β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦π
π±β¦β¦β¦β¦. `)| β¦ , BIGGER EMOJI MOSAICS ;β¨
πΈβ¦β¦β¦β¦β¦ || _.-β| β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦.π
π±β¦β¦β¦β¦ ,_|| \_,/ .MORE CHARACTER SUPPORT β¨
πΈβ¦β¦ , β¦.. \|| .β β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦π
π±β¦.. |\ |\ ,. ||/ β¦β¦β¦.. NOT ONLY IN SHADE β¨
πΈ. ,..\` | /|.,|Y\, β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦π
π±β¦ β-β¦β-._..\||/ β¦.BUT IN THE SUNSHINE OF LIFE β¨
πΈβ¦β¦. >_.-`Y| β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦π
π±β¦β¦β¦β¦ ,_|| β¦THANKS FOR BEING MY FRIENDSβ¨
πΈβ¦β¦β¦β¦.. \|| β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦π
π±β¦β¦β¦β¦β¦ || β¦β¦β¦β¦. MAY OUR FRIENDSHIP β¦.β¨
πΈβ¦β¦β¦β¦β¦ || β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦β¦π
π±β¦β¦β¦β¦β¦ |/ β¦β¦ WILL EVERLASTING β¦..β¨
Built With
- encryption
- python
Log in or sign up for Devpost to join the conversation.