Это не так; злоумышленник может зашифровать любое сообщение. Вы должны добавить целостность и подлинность сообщения к открытому тексту или зашифрованному тексту. Для этого отправитель должна иметь возможность аутентифицировать отправляемые сообщения. Очевидно, что это невозможно, используя только общедоступный ключ шифрования.
Когда мы говорим об отдельных сообщениях (например, о защите документов), то это обычно выполняется с помощью подписания и шифрования. Здесь отправитель подписывает сообщения до того, как они будут зашифрованы с помощью собственного закрытого ключа. Затем получатель проверяет сообщения после расшифровки, используя открытый ключ отправителя. Этому открытому ключу отправителя, конечно, нужно доверять, чтобы эта схема работала.
Поскольку шифрование с открытым ключом не очень эффективно для больших сообщений, а подпись (и метаинформация) обычно расширяет сообщения, обычно требуется использовать гибридное шифрование, чтобы работала функция «подписать, а затем зашифровать».В этом случае схема шифрования также может использовать метод инкапсуляции ключей, например RSA-KEM или (EC)IES.
В принципе, также можно использовать MAC (код аутентификации сообщения), но для этого потребуется предварительно общий секретный ключ, что, в первую очередь, уничтожит преимущества использования шифрования с открытым ключом.
В безопасности транспортного режима (например, TLS, SSH) криптография с открытым ключом обычно используется для установления секрета между сторонами перед отправкой сообщений по транспортному каналу. В этом случае сообщения шифруются сеансовым ключом и защищаются с помощью тега аутентификации. Этот тег может быть рассчитан с использованием MAC (например, HMAC) или с использованием режима шифрования с проверкой подлинности (например, ChaCha20/Poly1305).
Чтобы это работало, обе стороны также должны быть аутентифицированы, иначе отправитель не знает, кто получает данные, а получатель не знает, кто их отправляет. Таким образом, хотя сами сообщения защищены по-разному, управление ключами аналогично защите отдельных сообщений.