Se dovessi riformulare la tua domanda da come la capisco, mi stai chiedendo quanto segue:
Se la crittografia a chiave pubblica garantisce che una chiave pubblica può essere derivata da una chiave privata, ma una chiave privata non può essere derivata da una chiave pubblica, allora potresti chiederti, come può una chiave pubblica decodificare un messaggio firmato con una chiave privata senza il mittente esporre al destinatario la chiave privata all'interno del messaggio firmato? (rileggilo alcune volte finché non ha senso)
Altre risposte hanno già spiegato come asimmetrici mezzi di crittografia che è possibile sia :
- Crittografia con chiave pubblica, decrittografia con chiave privata corrispondente (pseudocodice di seguito)
var msg = 'secret message';
var encryptedMessage = encrypt(pub_key, msg);
var decryptedMessage = decrypt(priv_key, encryptedMessage);
print(msg == decryptedMessage == 'secret message'); // True
- Crittografa con chiave privata, decodifica con chiave pubblica corrispondente (pseudocodice di seguito)
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
Noi sappiamo che entrambe esempio # 1 e # 2 di lavoro. L'esempio n. 1 ha un senso intuitivo, mentre l'esempio n. 2 pone la domanda originale .
Si scopre che la crittografia della curva ellittica (chiamata anche "moltiplicazione della curva ellittica") è la risposta alla domanda originale. La crittografia con curva ellittica è la relazione matematica che rende possibili le seguenti condizioni:
- Una chiave pubblica può essere generata matematicamente da una chiave privata
- Una chiave privata non può essere generata matematicamente da una chiave pubblica (ovvero "funzione trapdoor")
- Una chiave privata può essere verificata da una chiave pubblica
Per la maggior parte, le condizioni n. 1 e n. 2 hanno senso, ma che dire del n. 3?
Hai due scelte qui:
- Puoi scendere in una tana di coniglio e passare ore e ore a imparare come funziona la crittografia a curva ellittica ( ecco un ottimo punto di partenza ) ... OPPURE ...
- Puoi accettare le proprietà sopra - proprio come accetti le 3 leggi del moto di Newton senza bisogno di derivarle tu stesso.
In conclusione, una coppia di chiavi pubblica / privata viene creata utilizzando la crittografia a curva ellittica, che per sua natura crea una chiave pubblica e privata che sono matematicamente collegate in entrambe le direzioni, ma non matematicamente derivate in entrambe le direzioni . Questo è ciò che ti consente di utilizzare la chiave pubblica di qualcuno per verificare che abbiano firmato un messaggio specifico, senza che ti espongano la chiave privata.