Шифрование — это процесс, в котором информация шифруется таким образом, что лишь определенное количество людей может ее посмотреть. Существует два основных метода шифрования: симметричное шифрование и асимметричное. . Давайте для начала рассмотрим симметричное шифрование, чтобы понимать зачем было создано асимметричное шифрование.
У Алисы есть важный документ, который необходимо отправить Бобу. Она использует программу для шифрования, чтобы защитить этот документ с помощью пароля или специальной фразы, которую она выбрала. Далее, она отправляет зашифрованный документ Бобу, однако, Боб не может открыть этот документ, так как он не знает пароля, который использовала Алиса для шифрования. Простыми словами, у Боба нет ключа, чтобы открыть замок. Здесь появляется серьёзная проблема: безопасная передача пароля от документа. Отправка пароля через email достаточно рискованна, так как третьи лица могут перехватить пароль и в свою очередь использовать его для расшифровки любых сообщений между Алисой и Бобом. Это именно та проблема, которую решает асимметричное шифрование.
Пример с Алисой и Бобом можно легко сравнить с почтовым ящиком на улице. Почтовый ящик доступен всем, кто знает его адрес. Можно сказать, что местоположение почтового ящика полностью публично. Любой, кто знает адрес ящика, может положить туда письмо, однако только владелец почтового ящика имеет ключ, чтобы открыть его и прочитать содержимое. Теперь давайте вернемся к техническим деталям.
Используя асимметричное шифрование, и Боб, и Алиса должны сгенерировать пары ключей на своём компьютере. Наиболее популярным и безопасным методом для генерации ключей является RSA алгоритмом. Этот алгоритм генерирует публичный и приватный ключ, которые математически связаны между собой.
Публичный ключ может быть использован для шифрования информации, и только определённый приватный ключ может быть использован для её расшифровки. Учитывая то, что оба ключа математически связаны, приватный ключ не может быть получен из публичного. Другими словами, если вы знаете чей-то публичный ключ, это не означает, что вы сможете получить его приватный ключ.
Давайте заново на примере Алисы и Боба рассмотрим, как они будут использовать асимметричное шифрование для безопасной передачи информации. Они начинают с того, что обмениваются своими публичными ключами. Теперь Алиса может отправить важный документ с помощью шифрования, используя публичный ключ Боба. Затем она отправляет зашифрованный файл Бобу, который использует свой приватный ключ для дешифровки документа. Таким образом, используя асимметричное шифрование, только Боб может прочитать зашифрованный документ. И даже Алиса не имеет доступ к содержимому этого документа, так как для этого подходит только приватный ключ Боба.
Надёжность асимметричного шифрования теперь лежит на плечах Боба и Алисы. Они должны держать свои ключи в надёжном, защищённом месте, чтобы у каждого владельца был доступ исключительно к своему приватному ключу. Если злоумышленник завладеет приватным ключом отправителя, то он сможет расшифровать все сообщения, которые были зашифрованы с помощью его публичного ключа. Однако, злоумышленник не сможет расшифровать сообщение, исходящее от Алисы, так как для этого нужен приватный ключ Боба.
Асимметричное шифрование используется во многих случаях, где безопасность действительно имеет значение. А знали ли вы, что каждый раз, когда вы находитесь на сайте с HTTPS(HyperText Transfer Protocol Secure) протоколом, вы используете асимметричное шифрование? Оно также используется для защиты электронных сообщений с помощью PGP или GPG протоколов. Например, Bitcoin также использует асимметричное шифрование для того, чтобы убедиться в том, что только владелец средств может снимать или переводить биткоины со своего адреса.
Теперь вы знаете, как работает асимметричное шифрование и в чем его отличие с симметричным.