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

  1. 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>

  2. Share your public key with trusted pals and send messages in plain sight with the quirky emojiart generated by emojicipher.

  3. 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

  1. 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.

  2. 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!

  3. 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

  1. 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

  1. The mysteries and voodoo magic behind certain Unicode characters.
  2. Telegram API
  3. 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

Share this project:

Updates