it-swarm-eu.dev

Cosa c'è di meglio per le chiavi GPG - RSA o DSA?

ssh-keygen imposta automaticamente le chiavi RSA, ma gpg --gen-key preferisce DSA/ElGamal.

Quale - RSA o DSA - è migliore per GPG?

57
grawity

I manutentori GPG stanno pensando cambiando il valore predefinito in RSA (fonte: Gestendo la debolezza in SHA-1 [LWN .net] ). Quindi, sembra che ritengano che RSA sia attualmente l'opzione migliore (e dovrebbero saperne di più su di te o su di te).

36
CesarB

RSA e DSA - equivoci e informazioni utili
ha un paio di riferimenti precedenti RSA e il riferimento recente DSA,


Nel 2003, RSA vs DSA Firme - Il vincitore è ... - RSA.

Quindi, fondamentalmente la generazione delle chiavi è incredibilmente più veloce per DSA, il che ha senso se si comprendono gli algoritmi. La firma è anche più veloce per DSA, ma non di un fattore altrettanto ampio. Il grande punto di forza di RSA è verificare che è molto più veloce di DSA .

Recenti Bozza IETF: DSA con SHA-2 per DNSSEC , in scadenza il 7 gennaio 2010.
Ha alcune ragioni per promuovere il DSA su RSA oggi.

L'utilizzo di DSA con SHA-256 in DNSSEC presenta alcuni vantaggi e svantaggi relativi all'utilizzo di RSA con SHA-256 quando si utilizza 2048-bit chiavi. Le firme DSA sono molto più brevi delle firme RSA ; a questa dimensione, la differenza è 512 bit verus 2048 bit. Sulle piattaforme tipiche che utilizzano chiavi a 2048 bit, la firma di DSA è circa tre volte più veloce rispetto a RSA, ma la verifica delle firme RSA è più di dieci volte più veloce rispetto a DSA .

La forza crittografica di DSA è generalmente considerata equivalente a RSA quando la chiave pubblica DSA e le chiavi pubbliche RSA hanno la stessa dimensione. Una simile valutazione potrebbe, naturalmente, cambiare in futuro se vengono trovati nuovi attacchi che funzionano meglio con uno o con gli altri algoritmi.

Al momento non ci sono attacchi noti sul set specifico di parametri DSA scelti per questo documento. Una simile valutazione potrebbe, naturalmente, cambiare in futuro.

Ma questa è solo una bozza al momento.

Tutti amano la velocità di verifica di RSA (!).

24
nik

RSA. Sono stati scoperti alcuni punti deboli in SHA-1 , che è l'hash utilizzato da DSA . Debian sono migratingtutte le loro chiavi da DSA a RSA.

8
pgs

Citando una discussione sul forum :

Il mio consiglio sarebbe quello di utilizzare una chiave di firma RSA (la chiave "primaria" o "master") e una sottochiave RSA per la crittografia. Il motivo dell'utilizzo di RSA per la firma è principalmente dovuto al fatto che RSA ti consente di utilizzare hash più grandi rispetto a DSA. DSA2 ti consente anche di utilizzare hash più grandi, ma RSA è stato supportato per molti anni in più rispetto a DSA2.

Penso che se la stai usando in un modo standard (cioè non cripti un'enorme quantità di dati) entrambi faranno bene.

Scelgo personalmente RSA perché ho imparato l'algoritmo ed è uno degli algoritmi più belli che abbia mai visto.

5
Adam Matan

Anche l'uso degli algoritmi SHA-2 è possibile e consentito dalla revisione attuale di DSS; ma non sono stato in grado di scoprire quale revisione GPG segue.

Riguardo all'attuale DSS specifica ( FIPS-186-3 , p. I) qualsiasi funzione di hash specificata in SHS (FIPS -180-3, p iv) può essere usato:

DSS:

Gli algoritmi di firma digitale approvati FIPS devono essere utilizzati con una funzione di hash appropriata specificata in SHS.

SHS:

Questo standard specifica cinque algoritmi di hash sicuro - SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512 - per calcolare una rappresentazione condensata di dati elettronici (messaggio).


Alla domanda: Entrambi gli algoritmi sono basati su problemi matematici che non si sono dimostrati sicuri (RSA usa il problema di numeri di fattorizzazione e DSA usa il problema del logaritmo discreto), non si può dire uno è più sicuro dell'altro, perché non l'unico problema né l'altro è mai stato risolto.

Ma usando DSA con SHA-1 potresti avere un problema di sicurezza, come già detto da pgs .

4
Manuel Faux

Il fatto è che probabilmente non importa molto a te :) Come parte della preparazione per generare una coppia di chiavi e come parte del mantenimento delle coppie di chiavi esistenti - indipendentemente da quale cripta asimmetrica tu scelga dovresti essere: 1) controllare la corrente raccomandata chiavi lunghe 2) scegliere una base/modulo da ottimizzare per la firma o la verifica, a seconda di cosa verrà eseguito più spesso (le chiavi da utilizzare nell'emissione dei certificati server TLS/SSL dovrebbero essere ottimizzate per la verifica poiché ogni browser controllerà la firma ... le chiavi usate nel software di firma dovrebbero essere similmente ottimizzate) 3) assicurati di invecchiare le tue chiavi - hai usato la stessa chiave per ssh-auth per alcuni anni, potrebbe essere il momento di rigenerarti anche se scegliessi una chiave dimensione che è ancora ragionevole per l'applicazione oggi.

Sia RSA che DSA sono stati sostanzialmente valutati; se si utilizza una base di codice realistica (RSAREF, commerciale RSA, Mozilla/Netscape, Microsoft, OpenSSL, ...) allora probabilmente non ti interessa quale cryptosystem usi finché usi correttamente e utilizzi le migliori pratiche attuali

1
Ram