Questa è la solita confusione di "firmare è come crittografare con la tua chiave privata".
Basta dimenticarlo. È una spiegazione terribile che non funziona. Sembrava sembrato funzionare in passato, quando il primo algoritmo di firma digitale (basato sulla crittografia asimmetrica) è stato descritto per la prima volta (sto parlando di RSA ed era nell'era della Disco); ma anche per RSA non è corretto poiché non tiene conto del riempimento, che è fondamentale per la sicurezza.
Dai un'occhiata a PKCS # 1 per vedere come viene utilizzato RSA. In particolare, quando crittografa dati con RSA e una chiave a 1024 bit, il massimo che puoi cifrare in una volta è 117 byte, ma il risultato della crittografia è sempre 128 byte, ed è quello che si aspetta un motore di decrittografia . Indipendentemente da quanto provi, 128 byte non si adattano a meno di 117 byte ...
Ciò che deve essere ricordato è che una chiave privata è ciò che viene usato per fare qualcosa che non dovrebbe essere fattibile da tutti. Ciò significa decodifica dei dati (chiunque può crittografare un messaggio a Bob, ma solo Bob dovrebbe essere in grado di leggerlo) e generazione di firma (tutti possono verificare una firma, ma solo Bob dovrebbe essere in grado di produrre una firma che tutti possono verificare provenire da Bob).
Sebbene esistano algoritmi di crittografia asimmetrica che possono utilizzare lo stesso tipo di chiave degli algoritmi di firma digitale (c'è la crittografia RSA e ci sono le firme RSA, ed entrambi usano "chiavi RSA"), usare la stessa chiave per entrambi è non è una buona idea .