шифрование короткая ясная статья
Шифрование с двумя ключами (иногда также называемое «шифрованием с открытым ключом») основано на асимметричности некоторых математических операций. Так оказывается, что некоторые операции довольно быстро вычисляются в одну сторону, но довольно медленно в другую, что делает практически невозможным подбор нужных операндов методом перебора за разумное время.
Грубо говоря, зная некое число икс, вы быстро можете вычислить значение некоторой функции f от этого икс. Но вот знание значения f(икс) не позволяет вам быстро найти сам икс, поскольку для функции f не существует простой обратной функции.
На этом свойстве и основаны крайне распространённые сейчас методы шифрования, которые используются практически вообще везде.
А именно:
Желающий получать зашифрованные сообщения генерирует себе пару ключей.
Один ключ, называемый «закрытым», он оставляет себе и никому никогда не показывает, если не хочет проблем.
Второй ключ, называемый «открытым» он отсылает своему собеседнику.
Собеседник шифрует свои сообщения при помощи открытого ключа и отправляет владельцу закрытого.
Владелец закрытого расшифровывает это сообщение закрытым ключом.
Фишка тут в том, что открытого ключа недостаточно, чтобы расшифровать сообщение за разумное время. Это возможно, лишь если сами по себе ключи довольно короткие, а потому поиск закрытого ключа перебором будет всё-таки меньше времени жизни вселенной.
Именно поэтому открытый ключ адресат может разослать хоть всему человечеству: это никак и никому не поможет расшифровывать направляемые ему сообщения.
Да, всё человечество получит возможность что-то там зашифровать и послать этому адресату зашифрованное сообщение, но не расшифровать то, что ему послал кто-то ещё.
Даже если у всех имеется один и тот же открытый ключ.
На всякий случай, повторю ещё раз:
Открытым ключом нельзя расшифровать за разумное время то сообщение, которое было зашифровано этим же открытым ключом. Для этого нужен закрытый ключ.
Закрытый ключ ни на каком этапе никому не передаётся: ни тайно, ни явно. Его знает только сам адресат.
При переписке двух собеседников, каждый из них просто выполняет вышеописанные пункты: генерирует свой закрытый ключ и парный ему открытый, после чего передаёт открытый ключ своему собеседнику.
Оба собеседника и далее тоже делают совершенно симметричное: шифруют свои сообщения открытым ключом другого собеседника и пересылают ему. При этом расшифровать сообщения сможет только тот, кому оно адресовано, поскольку только у него есть закрытый ключ, требуемый для расшифровки сообщения.
https://22century.ru/popular-science-publications/public-key-cryptography