Crittografia PGP - Qual è la necessità di crittografare usando una chiave casuale una tantum? [duplicare]

2

Ho appena letto sullo schema di crittografia PGP qui e ho iniziato a chiedermi qual è la necessità di crittografare il file con uno chiave casuale del tempo? In altre parole, in che modo questo schema è più sicuro del semplice invio del file che viene crittografato direttamente utilizzando la chiave pubblica? (Perché la chiave one time viene comunque inviata insieme ai dati)

    
posta Vaibhav Pujari 31.07.2014 - 16:47
fonte

2 risposte

5

Si chiama crittografia ibrida . È necessario per i seguenti motivi:

  • Gli algoritmi di crittografia asimmetrica come RSA o ElGamal sono molto limitati nella dimensione dei messaggi che possono elaborare. Se si utilizza una chiave RSA a 2048 bit, la dimensione massima dei dati che si intende crittografare è 245 byte, non di più.

    Non esiste un metodo attualmente noto, chiaro, completamente specificato e strongmente rivisto, in base al quale un messaggio più lungo potrebbe essere "diviso" in singoli elementi, ciascuno abbastanza piccolo da essere crittografato con RSA, quindi riassemblato. Cioè, è facile definire una semplice procedura di divisione / concatenazione, ma non sarebbe sicura. Questa zona non è stata completamente esplorata dai crittografi, quindi, in pratica, è un no-go.

  • Anche se sapessimo come eseguire in modo sicuro una sola crittografia asimmetrica RSA per i dati di massa, comporterebbe un aumento sostanziale delle dimensioni dei messaggi (non un sovraccarico fisso, piuttosto un fattore moltiplicativo). La larghezza di banda della rete è spesso un problema primario (specialmente nei sistemi embedded).

  • A volte preferiamo utilizzare algoritmi di scambio di chiavi , come Diffie-Hellman, per una serie di motivi ( ad esempio, prima del 2000, la RSA è stata brevettata, il che era una ragione importante, dal punto di vista del governo federale degli Stati Uniti, per imporre l'uso della DH invece della RSA). Tali algoritmi non sono esattamente crittografia in quanto si finisce con un segreto condiviso, ma non si arriva a scegliere quel valore segreto. Un segreto condiviso è sufficiente per fungere da chiave per un algoritmo di crittografia simmetrica, ma è necessario un algoritmo di crittografia simmetrica.

  • Il motivo più spesso citato, e in realtà il meno convincente, sono le prestazioni. Gli algoritmi di crittografia asimmetrica possono comportare costi CPU non trascurabili. Ad esempio, RSA decryption (non la crittografia, che è più veloce) con la chiave RSA a 2048 bit procederà a una velocità di poche centinaia di istanze al secondo su un laptop moderno (poche migliaia se si utilizzano diversi core ).

    Il motivo per cui questo motivo viene sempre detto sulla crittografia ibrida è che è ciò che gli insegnanti di crittografia hanno ripetuto per anni, partendo da un pezzo fondamentale di saggezza risalente alla fine degli anni '70. Il punto sul fatto che l'RSA fosse molto lento era perfettamente vero in quel momento. Ma ricorda che i computer di quell'epoca erano come quello . Uno smartphone di base del 2014 ha molto più punch, con un fattore di oltre 10000. Anche il chip di una carta di credito recente supera di un margine molto ampio un computer desktop del 1980. Questo "pezzo di saggezza" è severamente superato.

    In questo momento, potremmo ancora riscontrare problemi di prestazioni se siamo troppo pesanti con la crittografia a chiave pubblica, ma certamente non tanto quanto si teme di solito. Hollywood ha insegnato alla gente a pensare alla crittografia come a qualcosa di ponderoso, costoso e grafico; questa è tutta una bugia, irrealistica come la pettinatura di Mark Hamill.

Riepilogo: non "crittografiamo direttamente" i file con la chiave pubblica perché non sappiamo come farlo in modo sicuro; anche se lo facessimo, potrebbe essere costoso; e vogliamo mantenere la possibilità di utilizzare algoritmi e tipi di chiavi che in realtà non supportano la crittografia, solo lo scambio di chiavi.

    
risposta data 31.07.2014 - 21:05
fonte
6

Ci sono due ragioni:

  1. RSA e altri algoritmi assimetrici sono molto lenti . È più veloce crittografare una piccola chiave utilizzando l'algoritmo asimmetrico e crittografare il messaggio utilizzando quella chiave con una cifratura più veloce e simmetrica.

  2. Nella sua configurazione predefinita, RSA è non sicuro . Ha bisogno di uno schema di riempimento per ottenere la massima sicurezza. Questo metodo "chiave casuale" fa parte di uno schema di riempimento di questo tipo.

risposta data 31.07.2014 - 16:59
fonte

Leggi altre domande sui tag