PGP Dimensione chiave RSA - tempo di crittografia / decrittografia

8

Da quanto ho letto, PGP utilizza solo le chiavi pub / priv per crittografare / decrittografare una chiave simmetrica utilizzata per crittografare / decodificare i dati. Immagino ragionevolmente che chiavi asimmetriche più lunghe non siano molto più lente di quelle più corte, dal momento che sarebbero necessarie solo per crittografare / decifrare la citata chiave simmetrica. Questa risposta e altre risorse googlable suggeriscono che le chiavi con lunghezze maggiori riducono le prestazioni. Mi sto perdendo qualcosa qui? Non sono le chiavi più grandi - almeno per PGP - quasi sempre meglio?

    
posta raphael b 06.09.2013 - 16:28
fonte

1 risposta

12

Con RSA, la crittografia è per lo più quadratica nelle dimensioni del modulo pubblico, la decrittazione è prevalentemente cubica. Ciò significa che raddoppiare la dimensione della chiave (ad esempio da 2048 bit a 4096 bit) significa quattro volte il costo per la crittografia, otto volte per la decrittografia. (Per chiavi ridicolmente grandi, di oltre 20000 bit o giù di lì, altri algoritmi diventano utili e la decrittografia non è più cubica, ma non si applica alle "normali" implementazioni RSA.)

Tuttavia, hai ragione nel senso che la crittografia o la decrittografia è solo un'operazione una tantum per una chiave simmetrica. Con un PC di base, un ordine di grandezza approssimativo è che RSA a 1024 bit impiega circa un millisecondo per la decodifica; quindi RSA a 2048 bit significherà 8 millisecondi e RSA a 4096 bit implicherà 64 millisecondi circa. Come puoi vedere, le cifre rimangono molto basse, in termini umani. Il costo percepito di crittografia e decodifica in PGP dipende più dai costi di I / O che da qualsiasi altra cosa; quando si riceve e decodifica un'email di 5 MByte, ci vorrà qualche secondo per scaricarlo, ma solo pochi millisecondi per decifrarlo (la crittografia simmetrica può facilmente procedere a 100 MB / se la decrittografia asimmetrica è un unico scatto operazione, come spiegato).

Le chiavi più lunghe non sono necessariamente migliori. Ci piacciono le chiavi più lunghe perché gli algoritmi di cracking noti impiegano più tempo quando la chiave è più lunga. Tuttavia, c'è un punto in cui questa argomentazione cessa di essere valida: quando la chiave è così lunga da non poter essere infranta con la tecnologia basata sulla Terra, allora è "abbastanza lunga" e renderla più lunga non porterà alcun bene significativo. L'attuale record di rottura RSA è per 768 bit, e si ritiene che 1024 bit siano sull'orlo di il possibile (ma non sappiamo da quale parte del confine si trovi). Una chiave RSA a 2048 bit è già più che abbastanza grande, con un comodo margine di sicurezza. Lo stesso si può dire delle chiavi ElGamal e DSA a 2048 bit (che PGP usa anche).

D'altra parte, i tasti più lunghi significano email più lunghe (perché un messaggio di posta elettronica firmato con PGP include una copia della chiave), anche se questo è poco significativo (qualche centinaio di byte in più per email non contano molto). Un motivo più importante non per utilizzare chiavi sovradimensionate è interoperabilità : alcune implementazioni potrebbero avere limiti interni, a causa del modo in cui sono state progettate e un'enorme chiave potrebbe superare questi limiti. Apparentemente, alcune versioni di GnuPG hanno problemi con le chiavi di più di 4096 bit . Le chiavi di 2048 e 4096 bit dovrebbero funzionare ovunque.

Un altro motivo minore è che la generazione di chiavi può diventare eccessivamente costosa con dimensioni maggiori della chiave, ma non lo fai spesso, quindi questo è solo di poco conto.

Per riassumere: con PGP, utilizza le chiavi di 2048 o 4096 bit e sarai felice. Non essere troppo preoccupato per quella scelta; o va bene Non andare oltre i 4096 bit perché attiverà problemi di interoperabilità.

    
risposta data 06.09.2013 - 16:45
fonte

Leggi altre domande sui tag