Ваше предложение причудливо .Вы Алиса.Вы хотите отправить секретное сообщение в систему «Боб», которое может расшифровать только Боб.Ваше предложение состоит в том, что Алиса генерирует пару ключей для Боба, затем каким-то волшебным образом получает личный ключ Боба от Алисы к Бобу, а затем Алиса, предположительно, хранит открытый ключ в секрете.Если у вас есть механизм, с помощью которого Алиса может передать секретный ключ Бобу, тогда зачем вам вообще нужна криптография? У вас уже есть защищенный канал!
Возможно, слишком дорого использовать безопасный канал для больших документов.Даже если это так, ваша схема является полной противоположностью того, как шифрование с открытым ключом должно работать. То, что вам нужно, это Боб для генерации пары ключей и передачи открытый ключ в открытом виде для Алиса .
Теперь проблема, которую должен решить Боб, это как Алиса узнает, что открытый ключ на самом деле пришел от Боба ?Злоумышленник может отправить свой открытый ключ Алисе и сказать Алисе, что он получен от Боба. Это важная проблема, которую вы должны решить. Сила всей схемы заключается в том, что Боб сможет успешно передать свой открытый ключ Алисе.
Что вам действительно нужно для этой работы, так это доверенная третья сторона, скажем, Verisign или какой-либо другой сертифицирующий орган, открытый ключ которого хорошо известен.Алиса и Боб могут генерировать свои собственные пары ключей, а затем Verisign может подтвердить, что открытый ключ Алисы и открытый ключ Боба получены от Алисы и Боба соответственно.Это основа безопасности системы.
Более того: криптография с открытым ключом медленная для больших сообщений.Обычно вы хотите использовать криптографию с открытым ключом как часть согласования ключа.Это означает генерацию секретного ключа в симметричной криптосистеме для конкретного «сеанса», использование криптографии с открытым ключом в качестве безопасного канала для передачи ключа сеанса от Алисы к Бобу, а затем шифрование всего остального с использованием быстрого симметричного алгоритма.