Si je devais reformuler votre question à partir de la façon dont je la comprends, vous posez la question suivante:
Si la cryptographie à clé publique garantit qu'une clé publique peut être dérivée d'une clé privée, mais qu'une clé privée ne peut pas être dérivée d'une clé publique, alors vous pourriez vous demander comment une clé publique peut décrypter un message signé avec une clé privée sans l'expéditeur. exposer la clé privée dans le message signé au destinataire? (relisez cela plusieurs fois jusqu'à ce que cela ait du sens)
D'autres réponses ont déjà expliqué comment la cryptographie asymétrique signifie que vous pouvez soit :
- Crypter avec la clé publique, décrypter avec la clé privée correspondante (pseudocode ci-dessous)
var msg = 'secret message';
var encryptedMessage = encrypt(pub_key, msg);
var decryptedMessage = decrypt(priv_key, encryptedMessage);
print(msg == decryptedMessage == 'secret message'); // True
- Crypter avec la clé privée, décrypter avec la clé publique correspondante (pseudocode ci-dessous)
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
Nous savons que les exemples n ° 1 et n ° 2 fonctionnent. L'exemple n ° 1 a un sens intuitif, tandis que l'exemple n ° 2 pose la question initiale .
Il s'avère que la cryptographie à courbe elliptique (également appelée «multiplication de courbe elliptique») est la réponse à la question initiale. La cryptographie à courbe elliptique est la relation mathématique qui rend les conditions suivantes possibles:
- Une clé publique peut être générée mathématiquement à partir d'une clé privée
- Une clé privée ne peut pas être générée mathématiquement à partir d'une clé publique (c'est-à-dire "fonction de trappe")
- Une clé privée peut être vérifiée par une clé publique
Pour la plupart, les conditions n ° 1 et n ° 2 ont du sens, mais qu'en est-il du n ° 3?
Vous avez deux choix ici:
- Vous pouvez descendre un terrier de lapin et passer des heures et des heures à apprendre comment fonctionne la cryptographie à courbe elliptique ( voici un excellent point de départ ) ... OU ...
- Vous pouvez accepter les propriétés ci-dessus - tout comme vous acceptez les 3 lois du mouvement de Newton sans avoir besoin de les dériver vous-même.
En conclusion, une paire de clés publique / privée est créée à l'aide de la cryptographie à courbe elliptique, qui, par nature, crée une clé publique et privée qui sont mathématiquement liées dans les deux sens, mais pas mathématiquement dérivées dans les deux sens . C'est ce qui vous permet d'utiliser la clé publique d'une personne pour vérifier qu'elle a signé un message spécifique, sans qu'elle vous expose sa clé privée.