Для ответа на этот вопрос необходимо понять, что такое
ассиметричное шифрование.
Краткое объяснение. Ассиметричное шифрование используется для безопасной передачи данных в заведомо небезопасной среде. Используя именно алгоритмы симметричного шифрования, оба участника должны договориться заранее о том, какой ключ использовать, что является потенциально небезопасным, потому что этот ключ можно перехватить и осуществлять атаку типа MITM либо прослушивая, либо подделывая пакеты.
Чаще всего используется алгоритм Диффи-Хэлмана, как наиболее простой. Важно! В чистом виде реализация этого алгоритма уязвима к нескольким видам атак, поэтому часто применяют модифицированные его версии.
Работает он примерно так.Алиса и Боб хотят обменяться сообщениями.
1 шаг. Они публично договариваются об использовании определенной формулы, по которой будет вычисляться корректность их ключей. Для данного примера - a^x (mod b), где A публичный ключ применяющего формулу и b - публичные ключ оппонента, а x - секретный ключ.
2 шаг. Каждый из них придумывает секретное число. Для Алисы, например, 3, а для Боба - 6. Это число не передается никуда, но вычисляется результат выполнения изначальной формулы. A^3(mod B), а результат (для Алисы - Z, для Боба - U).
3 шаг. Они обмениваются получившимися результатами и вычисляют значение формулы, подставляя вместо своего числа получившееся значение оппонента. Для Алисы это будет Z^3(mod B). И получившийся в результате этого действия ключ (он будет одинаковым для обоих) будет являться ключом подписи для обмена дальнейшими сообщениями.