Dalla pagina di Wikipedia sull'argomento , ottengo, a livello teorico, come il processo di crittografia e decifrare un messaggio funziona. L'articolo afferma che:
In a public-key encryption system, any person can encrypt a message using the public key of the receiver, but such a message can be decrypted only with the receiver's private key.
Finora, tutto bene. In termini molto semplicistici, potrei avere il mio privato che è 123
e usare il suo hash md5 ( 202cb962ac59075b964b07152d234b70
) come chiave pubblica. Quindi, posso sempre rigenerare la chiave pubblica conoscendo la chiave privata, ma non viceversa. Quindi, parlando di firmare un messaggio, è scritto che
Message authentication involves hashing the message to produce a "digest," and encrypting the digest with the private key to produce a digital signature. Thereafter anyone can verify this signature by (1) computing the hash of the message, (2) decrypting the signature with the signer's public key, and (3) comparing the computed digest with the decrypted digest
La parte che non ottengo è decrypting the signature with the signer's public key
. Non è indicato nella prima parte che solo una chiave privata può decifrare un messaggio?
Per quanto ho capito, il tipo di algoritmo usato qui è qualcosa di diverso dal "md5 hash" che ho proposto in precedenza perché è possibile decodificare un messaggio crittografato con la chiave pubblica conoscendo la chiave privata e decifrando un messaggio crittografato con il chiave privata conoscendo la chiave pubblica.
Come funzionano questi algoritmi?