Вот несколько практических примеров. Предположим, что ключ A держался в секрете и поэтому является закрытым ключом, а ключ B был опубликован в общедоступном месте, и поэтому является открытым ключом.
Поэтому, если вы хотите отправить сообщение всем, и вы хотите, чтобы они убедились, что оно пришло от вас и не было изменено во время его доставки, вы отправите свое сообщение и включите хеш сообщения, зашифрованный с помощью ключа A. Затем любой, кто имеет ключ B, может дешифровать хеш, сравнить его с полученным сообщением и убедиться, что сообщение пришло от вас (из-за того, что только человек с ключом A мог сгенерировать зашифрованную полезную нагрузку, которая успешно расшифровала хеш, а также потому, что вы являются единственным человеком с ключом A, который может прийти только от вас). Это называется Подписание .
Теперь допустим, что кто-то хочет отправить вам секретное сообщение, но не хочет раскрывать, кто он. Они могут зашифровать свое сообщение симметричным ключом (как упомянул Zoredache, симметричный гораздо дешевле сделать), затем взять этот ключ и зашифровать его ключом B и отправить его вам. Поскольку только ключ A может расшифровать то, что было зашифровано ключом B, никто другой не сможет увидеть, что находится в сообщении, которое было отправлено вам. Вот как работает нормальное шифрование и как SSH обменивается данными.