GPG, единственная система, с которой я знаком, позволяет найти открытый ключ пользователя, импортировать его и пометить как доверенный (подписав его). Вам не нужно делиться подписью, если вы не хотите.
Шифрование с одним из ключей открытый / закрытый ключ пары всегда расшифровывается с помощью ДРУГОГО ключа.
Так что в вашем примере, если почтовый сервер имеет открытые ключи всех пользователей, любой может отправить сообщение любому, зашифрованному с моим открытым ключом. Только я (пользователь с секретным ключом и паролем) может расшифровать это сообщение.
Теперь, если я что-то зашифрую своим личным ключом и паролем, любой сможет расшифровать это сообщение с помощью моего открытого ключа. Идея состоит в том, что только я мог зашифровать сообщение этим ключом, так что это называется «подпись». (Обычно вы отправляете копию сообщения в виде открытого текста, но это не обязательно.)
ПРИМЕР:
Поэтому, если я хочу отправить вам сообщение, которое только вы можете прочитать, и хотите, чтобы вы были уверены, что только я мог его отправить, я зашифрую свое сообщение своим личным ключом / паролем, а затем зашифрую его вашим открытым ключом.
Вы расшифровываете его с помощью своего закрытого ключа и пароля, чтобы только вы могли прочитать его, а затем расшифровываете его с помощью моего открытого ключа, чтобы вы были достаточно уверены, что это от меня.
Мы также должны были бы сделать один последний шаг - чтобы мы с вами говорили раньше, чтобы вы были уверены, что мой ключ - мой, а ваш - ваш. Обычно для этого тоже подходит телефонный звонок, в зависимости от ваших стандартов.
(Я говорю «достаточно разумно», конечно, потому что кто-то может украсть мой ключ и угрожать мне тюрьмой / избить меня резиновым шлангом за то, что я не сообщу мой пароль, но это еще одна проблема для другого вопроса.)
Мой открытый ключ очень легко найти по моему адресу электронной почты (и вы увидите «Бенанов» в поле комментария / имени пользователя, я забыл, какой). Не стесняйтесь отправить мне сообщение, если вы хотите проверить это.