Что такое шифрование данных
Это способ превратить информацию в секретный шифр, который можно декодировать только с помощью специального ключа. Без него получить из набора символов изначальную информацию практически невозможно. Для расшифровки данных принимающей стороне потребуются ключ и дешифратор.
Какие задачи выполняет шифрование
Конфиденциальность. Технология препятствует получению данных пользователя третьими лицами. Даже если злоумышленники смогут перехватить отправленную информацию, прочитать ее без специального ключа не выйдет. Таким ключом обладают отправляющая и принимающая стороны.
Целостность. Шифрование подтверждает, что полученная информация соответствует отправленной и не была изменена.
Идентификация. Технология позволяет идентифицировать отправителя и получателя.

Какие виды шифрования данных бывают
Симметричное. Используется один публичный ключ для кодирования и декодирования информации. Это самый простой способ, широко распространенный в криптографии. Симметричное шифрование обеспечивает высокий уровень безопасности, но ключ может быть перехвачен по незащищенным каналам связи.
Асимметричное (сквозное). Используется два ключа: публичный и приватный. Разными приватными ключами обладают только отправитель и получатель. Они нужны для расшифровки информации, хранятся на физических носителях и никуда не отправляются. Шифруются данные с помощью открытого ключа, который может передаваться по незащищенным каналам. Его невозможно использовать для декодирования.

Хеширование. Отличается от симметричного и асимметричного шифрования невозможностью расшифровать данные. Хеш — это набор букв и чисел, из которого нельзя получить начальную информацию. Используется для проверки целостности данных.
Электронная цифровая подпись. Смесь асимметричного шифрования и хеширования. Сначала информация превращается в хеш, а затем шифруется приватным ключом. С помощью открытого ключа получатель расшифровывает его и сравнивает с результатом отправителя. Если хеши совпадают, сообщение никак не изменялось после отправки.
Какое шифрование используется в мессенджерах
Мессенджеры используют алгоритмы кодирования и декодирования информации, чтобы обеспечить конфиденциальность переписки пользователей. Но у каждой компании — свой подход.

Telegram
Российский мессенджер Telegram использует протокол шифрования собственной разработки MTProto. Есть два варианта хранения сообщений: на сервере и на устройстве клиента. В первом случае используется симметричное шифрование. Во втором — асимметричное, доступ к отправленным сообщениям имеют только отправитель и получатель. Шифруется вся отправляемая информация: текст, картинки, видео и голосовые сообщения.
В обычных переписках
MTProto работает по принципам симметричного шифрования AES и протокола Диффи-Хеллмана с применением хеш-функций. В начале переписки пользователи обмениваются открытым секретным RSA-ключом размером 2048 бит. Он превращается в хеш для дальнейшей проверки на подлинность получателем. Все сообщения шифруются с помощью метода AES, принятого в качестве мирового стандарта. Кодируется информация о содержании сообщения, времени его отправки и текущей сессии пользователя.
Данные, которые нужно зашифровать, разбиваются на блоки по 16 байт. Каждый блок проходит через серию математических операций вместе с ключом. Эти операции включают замену, перестановку и смешивание данных. Процесс повторяется несколько раз для усиления безопасности. Чтобы усложнить расшифровку, в полученный код добавляется ничего не значащая информация.
Зашифрованные блоки данных объединяются вместе, чтобы сформировать конечное сообщение. В таком виде информация хранится на серверах и отправляется получателю. Для расшифровки данных процесс выполняется в обратном порядке с использованием того же ключа.

В секретных чатах используется асимметричное шифрование с формированием двух закрытых и одного публичного ключей. Информация хранится на устройствах пользователей в обход серверов Telegram. Сотрудники компании не имеют к ней доступа. Сервер используется только для отправки зашифрованных данных. Сообщения в секретных чатах удаляются при выходе из приложения. Также пользователи могут включить автоматическое удаление через секунду после прочтения получателем.
Процесс шифрования аналогичен кодированию и декодированию в обычных чатах, только все происходит на устройствах пользователей и с двумя дополнительными ключами.
Signal и WhatsApp
Оба мессенджера используют для кодирования и декодирования данных протокол Signal. Он был разработан в 2013 году и использует сквозное шифрование. К отправленным сообщениям, картинкам, видео и аудиозаписям имеют доступ только пользователи в переписке. Сервер используется только для отправки данных, как в случае с секретными чатами Telegram. У компаний нет доступа к именам и фотографиям профилей, эта информация тоже зашифрована.

В основе работы Signal лежит алгоритм двойного храповика и тройной обмен ключами по протоколу Диффи-Хеллмана. В шифровании данных участвуют алгоритмы AES и SHA-256.
В начале переписки формируется несколько приватных и публичных ключей: долгосрочный, среднесрочный и эфемерные. Они хранятся локально. После каждого отправленного сообщения формируется новый публичный ключ для усиления безопасности. Шифрование происходит схожим с MTProto образом, с разделением информации на блоки. Для расшифровки зашифрованного публичным ключом сообщения используется приватный ключ пользователя.
Мессенджер Signal — открытый проект. Это означает, что каждый пользователь может проверить код приложения и сервера, которые участвуют в передаче данных.
