Как работает E2EE?

почитал про E2EE и задумался, вот есть пользователи A и B, Условные Alex и John, каждый сгенерировал свою пару приватный/публичный ключ и отправил друг другу публичные ключи, и вдруг сторона A(Alex) решила зашифровать сообщение и отправить его стороне B(John), они зашифровала их со своей парой ключей и отправила, но как его расшифрует сторона B(John) без приватного ключа стороны A(Alex)? Я серьезно не могу понять как оно работает, просьба обьяснить. Я считаю что E2EE если и реален, то устроен не так, как его описывают.Иначе RSA же должен был сломаться давно...


Ответы (1 шт):

Автор решения: Zergatul

В асимметричном шифровании есть две функции:

encrypt(message, public_key)
decrypt(message, private_key)

Как уже сказали в комментах, когда Alex отправляет сообщение John, он шифрует его публичным ключом John:

ciphertext = encrypt(alex_message, john_public_key)

John когда получает сообщение, расшифровывает своим приватным ключом:

text = decrypt(ciphertext, john_private_key)

Но на практике такую простую схему не используют, потому что человек-по-средине (Man-In-The-Middle) может перехватить публичные ключи обеих сторон, и отправить им свои, фейковые публичные ключи. Это дает ему возможность читать и подменять все сообщения.

→ Ссылка