Вы упомянули в комментарии :
Во-первых - пользователи подписываются с помощью своего закрытого ключа, а не шифруют. Да, но подпись не означает шифрование подписис вашим закрытым ключом (чтобы любой мог проверить его с вашим открытым ключом), как в моем примере?
Хотя ответ на этот комментарий, как правило, таков: нет .
Криптографические подписи могут быть построены различными способами.В RSA операция подписания напоминает некоторые элементы шифрования, но это совпадение.
Например, возьмем некоторую схему подписи Шнорра для эллиптических кривых:
(In this example, G is a base point for some secure elliptic curve E.
All variables between brackets are scalars modulo the order of E.)
Setup:
Alice has a private key x (random).
Bob has Alice's public key P_A = [x]G.
Alice signs a message m:
k := random()
Q := [k]G
c := H(Q||P_A||m)
r := k + c*x
Alice outputs s := (Q, r)
Bob verifies s over m:
c := H(Q||P_A||m)
Check if [r]G == Q + [c]P_A
Как вы можетевидите, здесь нет реального понятия «шифрование».Это просто протокол.