из того, что я знаю, это обычно делается, предоставляя системе одноразовый номер (число, которое когда-то использовалось ... случайное число) и прося его принять это число в качестве входных данных для криптографической функции, которой нужен закрытый ключ, который принадлежитсертификат challanged:
для шифрования вы обычно берете свой одноразовый номер, шифруете его и передаете зашифрованный текст в систему challanged ... если система может расшифровать ваш одноразовый номер (и вернуть его вам), онимеет доступ к закрытому ключу ...
в сценарии подписи вы передаете одноразовый текст в одноразовом формате, и система должна подписать его ... если подпись действительна, система имеет доступ к закрытому ключу
конечно, для реального приложения вы захотите расширить эту схему, чтобы избежать атак воспроизведения, человек посередине и т. Д.