Sto cercando di comprendere le firme digitali e il modo in cui RSA Encryption le supporta. E quale ordine eseguirli insieme a ciò che è specificamente crittografato.
Quindi diciamo che abbiamo Alice e Bob e un messaggio segreto M
Alice ha: la chiave pubblica di Bob (B_pk), la chiave segreta di Alice (A_sk), la chiave pubblica di Alice (A_pk)
Bob Has: la chiave pubblica di Bob (B_pk), la chiave segreta di Bobs (B_sk), la chiave pubblica di Alice (A_pk)
- Alice genera un hash SHA256 del messaggio M. SHA256 (M)
-
Cripta l'hash risultante con la chiave segreta di Alice usando RSA. C1 = RSA (A_sk, SHA256 (M))
-
Quindi crittografa M con la chiave pubblica di Bob. C2 = RSA (B_pk, M)
-
Invia C1 a Bob
- Invia C2 a bob
- Bob ottiene C1, Decifra con la chiave pubblica di Alice risultante in SHA256 (M) _received
- Bob ottiene C2, Decifra con la sua chiave segreta, risultando in M_received
- Bob esegue quindi SHA256 (M_received) e controlla se SHA256 (M_received) == SHA256 (M) _received
Ci sono difetti in questo metodo? Riservatezza, integrità e autenticità sono protette?
Aggiornamento: Sono curioso di sapere quali sono le debolezze nel metodo sopra.