In PGP, perché non criptare semplicemente il messaggio con la chiave pubblica del destinatario? Perché la meta-crittografia?

23

È descritto molto bene da questo diagramma. Sembra che il processo utilizzato sia contorto e più rotondo di quanto non debba essere. Perché una chiave casuale intermedia generata per la crittografia del payload viene quindi trasmessa con il messaggio dopo la propria crittografia utilizzando la chiave pubblica del destinatario, invece di utilizzare semplicemente la chiave pubblica del destinatario direttamente sul messaggio? Non è lo stesso, per quanto riguarda le proprietà di sicurezza?

    
posta wwaawaw 13.09.2012 - 18:13
fonte

3 risposte

30

RSA non viene utilizzato direttamente a causa di diversi motivi:

  • RSA crittografa solo i messaggi con dimensioni limitate. Con una chiave RSA a 1024 bit, RSA (come per PKCS # 1 ) può elaborare solo 117 byte di dati. Per crittografare più di questo, si dovrebbe fare un po 'di concatenamento, cioè suddividere i dati per crittografarli in diversi blocchi da 117 byte e crittografarli separatamente. Questo è fatto di routine per la crittografia simmetrica (questo è chiamato "modalità di funzionamento" ) ma non è così facile da fare in modo sicuro e nessuno sa come eseguire una modalità sicura per RSA.

  • La crittografia ibrida consente di ottenere dati efficienti per più destinatari. Si crittografa simmetricamente i dati con una chiave K , quindi si cripta K con la chiave RSA di ciascun destinatario. Quando si invia un file da 3 MB a 10 persone, si preferisce calcolare e inviare un'e-mail crittografata di dimensione 3,01 MB, anziché dieci e-mail da 3 MB ...

  • RSA ingrandisce i tuoi dati. Con una chiave RSA a 1024 bit, si cripta al massimo un blocco di 117 byte, ma si ottengono 128 byte in uscita, quindi si tratta di un ingrandimento del 10%. D'altra parte, la crittografia simmetrica comporta solo un aumento costante delle dimensioni.

  • La crittografia e la decifratura RSA sono veloci, ma non molto veloci. Fare un sacco di RSA potrebbe rivelarsi problematico in contesti a banda larga (sarebbe perfetto per le e-mail, con le macchine di oggi, non per una VPN).

Il quarto motivo è il più citato, ma in realtà il meno convincente dei quattro.

    
risposta data 13.09.2012 - 19:39
fonte
4

È difficile trovare un buon riferimento, ma RSA non è molto veloce :

By comparison, DES (see Section 3.2) and other block ciphers are much faster than the RSA algorithm. DES is generally at least 100 times as fast in software and between 1,000 and 10,000 times as fast in hardware, depending on the implementation. Implementations of the RSA algorithm will probably narrow the gap a bit in coming years, due to high demand, but block ciphers will get faster as well.

Quindi, crittografando una piccola chiave simmetrica e quindi crittografando i dati, è molto più veloce.

Nel caso in cui temiate che DES non sia un buon esempio (dal momento che nessuna persona sana di mente lo userebbe in questi giorni), AES's la velocità è dello stesso ordine di grandezza .

    
risposta data 13.09.2012 - 18:37
fonte
3

È semplicemente perché RSA è A) Molto lento B) Può solo crittografare la quantità X di bit a seconda della dimensione della chiave. Il metodo qui sta generando un tasto AES che è molto più veloce e può cifrare (AFAIK) quantità illimitate di bit. Poiché AES è simmetrico, non è possibile che una parte possa consegnarlo a un'altra parte senza crittografia. Questo è il motivo per cui viene utilizzata la crittografia asimmetrica (RSA) e perché PGP richiede alle persone di avere la tua chiave pubblica per inviarti messaggi.

    
risposta data 13.09.2012 - 18:36
fonte

Leggi altre domande sui tag