How is working End2End Encryption – Article by Róbert Čapla

Hello guys, in this article I am going to show you how End2End encryption works and how it’s possible for companies like Facebook to have mobile apps like WhatsApp and they can’t read our messages.

Firstly we have to understand hashing and how this is working. So at this moment there are 2 types of hashing, symmetric and asymmetric. Asymmetric is awesome for something we don’t need to get back content like passwords. Every good and legit service doesn’t know your passwords because they store in the database only hashes. And if they are asymmetric it’s impossible to get back content. But you maybe saw articles like Hackers get 100000 emails and passwords from Facebook or any big company. So for what reason do they have it? They search for the same hashes because when you create a password for example “password123” and use hashing, probably MD5, the hash will be the same when you write this password and hash that password. So when they find the same hashes they try to bruteforce passwords and try to find the same hash. If they find a password which has the same hash as what is in the database they get passwords. You maybe heard about MD5 method for hashing is not good anymore and it’s true because it’s very old technology and in this moment exists thousands or millions of documents where are stored many hashes with passwords. But wordpress is still using this technology so people have to know it’s not anymore safe. So this was asymmetric hashing, now continues to symmetric hashing.

Symmetric hashing is similar to asymmetric but there is 1 big difference, you can decode hash again into string when you have a key to hash. This is very good for End2End chat apps, because all messages are hashed but the key can easily convert hashed messages into nice looking messages. But there can be one problem, if companies are not loyal they can keep keys and can decrypt messages, from my situation I trust only “Signal” because they are open source and they don’t do it for profit. Usually keys in chat apps are words and 1 conversation has the same key combinations and all connected devices share these keys. But in background they are not words, that words are encoded into bytes so now that key is hash, and all messages are hashed too. Messages have different hashes but this 1 key can convert these hashed strings into messages. 

This symmetric hashing is also used in crypto app wallets so owners of crypto app wallets don’t know your content for example how much cryptocurrencies you have, which cryptocurrencies you are using and stuff like that. 

Thanks for reading this article and now you know how hashing and End2End encryption is working.