Вы можете использовать подписи RSA (например, PKCS # 1 ).
Ваш сервер может принимать ответы только в том случае, если они подписаны определенным ключом RSA, частную часть которого вы раздали ранее.Сервер использует открытую часть.
RSA обладает свойством того, что проверка выполняется намного быстрее, чем подписывание, когда вы выбираете небольшую общедоступную экспоненту (обычно называемую e, например e=3
) с коэффициентом или x10 или x100,в зависимости от длины ключа и от того, достаточно ли умны ваши клиенты, чтобы использовать CRT.
Генерация ключа RSA чрезвычайно медленная, но, вероятно, достаточно использовать один ключ для всех клиентов, если вы включаете запросв вашем протоколе для предотвращения атак воспроизведения.
Наконец, подпись RSA не дает вам конфиденциальности.