Если бы мне пришлось перефразировать ваш вопрос из того, как я его понимаю, вы спрашиваете следующее:
Если криптография с открытым ключом гарантирует, что открытый ключ может быть получен из закрытого ключа, но закрытый ключ не может быть получен из открытого ключа, тогда вы можете задаться вопросом, как открытый ключ может расшифровать сообщение, подписанное закрытым ключом, без отправителя раскрыть закрытый ключ в подписанном сообщении получателю? (перечитайте это несколько раз, пока это не имеет смысла)
Другие ответы уже объясняли, как асимметричная криптография означает, что вы можете либо :
- Шифрование с открытым ключом, дешифрование с использованием соответствующего закрытого ключа (псевдокод ниже)
var msg = 'secret message';
var encryptedMessage = encrypt(pub_key, msg);
var decryptedMessage = decrypt(priv_key, encryptedMessage);
print(msg == decryptedMessage == 'secret message'); // True
- Шифрование с закрытым ключом, дешифрование с использованием соответствующего открытого ключа (псевдокод ниже)
var msg = 'secret message';
var encryptedMessage = encrypt(priv_key, msg);
var decryptedMessage = decrypt(pub_key, encryptedMessage); // HOW DOES THIS WORK???
print(msg == decryptedMessage == 'secret message'); // True
Мы знаем, что оба примера # 1 и # 2 работают. Пример № 1 имеет интуитивный смысл, тогда как пример № 2 напрашивается на оригинальный вопрос .
Оказывается, криптография на эллиптических кривых (также называемая «умножением на эллиптических кривых») является ответом на исходный вопрос. Криптография с эллиптической кривой - это математическая зависимость, которая делает возможными следующие условия:
- Открытый ключ может быть математически сгенерирован из личного ключа
- Закрытый ключ не может быть сгенерирован математически из открытого ключа (то есть, «функция люка»)
- Закрытый ключ может быть проверен открытым ключом
Для большинства условий № 1 и № 2 имеют смысл, но как насчет № 3?
У вас есть два варианта здесь:
- Вы можете спуститься по кроличьей норе и часами часами изучать, как работает криптография с эллиптической кривой ( вот отличная отправная точка ) ... ИЛИ ...
- Вы можете принять вышеуказанные свойства - так же, как вы принимаете 3 закона движения Ньютона, не требуя их получения самостоятельно.
В заключение, пара открытых / закрытых ключей создается с использованием криптографии с эллиптической кривой, которая по своей природе создает открытый и закрытый ключи, которые математически связаны в обоих направлениях, но не выводятся математически в обоих направлениях . Это то, что позволяет вам использовать чей-то открытый ключ, чтобы убедиться, что он подписал конкретное сообщение, без предоставления вам вашего личного ключа.