Non "decifri la chiave privata", "usi la chiave privata per la decrittazione".
ECDH non è un algoritmo di crittografia asimmetrico ma un algoritmo di scambio di chiavi. Gli algoritmi di scambio di chiavi sono come algoritmi di crittografia asimmetrica in cui non si arriva a scegliere il messaggio crittografato, ma è altrettanto giusto quando si desidera stabilire un valore segreto condiviso, da utilizzare per la crittografia simmetrica, come è il caso in SSL / TLS .
In ECDH, ciascuna parte coinvolta calcolerà due operazioni equivalenti, che, sulle curve ellittiche è la moltiplicazione di un punto di curva per un intero. Un PC semplice, che utilizza un core singolo, ha una potenza di calcolo sufficiente a farlo più di diecimila volte al secondo con la curva P-256 standard (che è robusta come si può sperare). Questo impone a malapena l'uso di un acceleratore hardware: in HTTPS, tale operazione verrà eseguita solo una volta per client, quando il client apre la prima connessione. Ogni connessione verrà utilizzata per diverse richieste HTTP e la connessione aggiuntiva utilizzerà la "stretta di mano abbreviata" che utilizza solo la crittografia simmetrica.
Tu potresti voler fare l'ECDH e operazioni simili su hardware specifico, non per prestazioni, ma per sicurezza: le chiavi private sono oggetti sensibili, sono meglio conservati in dispositivi anti-manomissione che proteggeranno dal furto, anche contro gli aggressori locali. Tali dispositivi sono noti come Moduli di sicurezza hardware . Quando si utilizza un HSM, la chiave privata non lascia mai l'HSM e HSM esegue l'operazione di crittografia. Alcuni HSM supportano curve ellittiche, ad es. recente nshield HSM di Thales .