Все просто, нужен ключ.
SSL / TLS решает эту проблему, создавая симметричный сеансовый ключ во время установки соединения. Криптография с открытым ключом используется для установления этого сеансового ключа, который затем используется для двунаправленной передачи данных. Подробнее о TLS
Алиса будет использовать комбинацию открытого и закрытого ключей для его расшифровки.
Алиса просто расшифрует его своим закрытым ключом.
Однако как Алиса может зашифровать что-то для отправки Бобу? Как Боб расшифрует его?
Алисе понадобится открытый ключ Боба, чтобы что-то ему послать. Обычно шифрование с открытым ключом используется для аутентификации, предотвращения отказа (например, подписи) и распределения симметричных ключей (которые быстрее используются для шифрования / дешифрования длинных сообщений).
В основном процедура следующая:
В этой ситуации Алиса будет использовать открытый ключ Боба для шифрования данных, а Боб затем расшифрует их своим закрытым ключом.
По сути, открытый ключ шифрует данные, а закрытый ключ дешифрует эти данные. Поскольку у каждого пользователя есть как открытый, так и закрытый ключ, вы можете безопасно отправлять данные любому другому пользователю.
Однако как Алиса может зашифровать что-то для отправки Бобу? Как бы Боб его расшифровал? Я спрашиваю, потому что мне любопытно, как, когда я вхожу на свой банковский сайт, мой банк отправляет мне данные, такие как мои онлайн-выписки. Как мой браузер расшифровывает эту информацию? У меня нет закрытого ключа.
Здесь вы ошибаетесь; у вас есть закрытый ключ. В процессе установления связи каждая сторона генерирует два ключа: открытый ключ и закрытый ключ. Клиент отправляет свой открытый ключ на сервер, который будет использовать его для шифрования всех данных, отправленных клиенту. Аналогичным образом сервер генерирует оба ключа и отправляет свой открытый ключ клиенту, который будет использовать его для шифрования всех данных, отправляемых на сервер.
Во многих сценариях алгоритм асимметричного ключа используется только для обмена другим ключом, который предназначен для симметричного алгоритма.
Если вы подключаетесь к сайту вашего банка, он выполняет множество криптографических операций. Самым важным является то, что вы используете открытый ключ банка для отправки части информации в банк, потому что в каждом сервере соединения SSL (https), который отправляет клиенту его открытый ключ, упакованный в виде сертификата.
Важно использовать сертификат и всемирную PKI. Вы должны быть уверены, что если вы дадите банку свой банковский пин, то на другой стороне действительно будет ваш банк, а не другое лицо. Это будет решено, потому что на каждом компьютере есть небольшое количество открытых ключей известных организаций (например, VeriSign) и банк отправит вам не только свой открытый ключ сервера, но и сертификат. сертификат - это сообщение, подписанное, например, VeriSign, в котором говорится, что «этот открытый ключ действительно получен из банка XYZ». Итак, поскольку у вас есть открытый ключ VeriSign, вы можете сначала проверить, правильный ли сертификат сервера банка. Так что можете быть уверены, что вы действительно общаетесь со своим банком .