Я пытаюсь реализовать (упрощенный) процесс проверки, подобный RSA, в моем (Java) приложении. Клиент отправляет запрос (данные + подпись закрытого ключа), а сервер либо отклоняет его запрос, либо обрабатывает его - в зависимости от действительности подписи.
Но я не понимаю, как сервер проверки знает, какой открытый ключ использовать для расшифровки подписи. Действительно, ни открытый ключ, ни идентификатор открытого ключа, похоже, не отправляются на сервер проверки.
Действительно ли он проверяет все разрешенные открытые ключи? Или открытый ключ хранится от предыдущего обмена данными?