Significato della differenza tra DSA e RSA nella velocità di verifica della firma

3

Ho eseguito openssl speed e l'output sulla mia CPU per la dimensione della chiave DSA disponibile più lunga, che è 2048 bit:

                      sign      verify    sign/s    verify/s
rsa 2048 bits    0.029185s   0.000799s      34.3      1252.3
dsa 2048 bits    0.007979s   0.009523s     125.3       105.0

Per essere onesti, mi aspettavo una maggiore quantità di tempo per verificare le chiavi, dal momento che le persone spesso confrontano l'uso di questi due algoritmi dando tempo alla verifica della chiave come argomento per l'utilizzo di RSA, perché "si genera (firma) il tasto una volta ma gli utenti finali lo verificano più spesso '.

Devo mancare qualcosa allora, dato che la chiave è verificata in una frazione di secondo, non riesco a vedere un motivo per dire che RSA è migliore, se un utente verifica la chiave almeno due volte al giorno durante la lettura e-mail o download di programmi.

C'è qualche altra ragione per cui la velocità di verifica è significativa o mi manca qualcos'altro?

    
posta James Pond 21.08.2015 - 08:53
fonte

2 risposte

4

No, non ti manca nulla. Gli attuali processori per desktop e laptop sono semplicemente incredibilmente veloci. OpenSSL è un'applicazione nativa che può fare la maggior parte di questo.

In generale, la velocità della CPU sui laptop non è un problema. Può essere un problema sui dispositivi embedded, naturalmente. O su lingue di livello superiore. O quando la latenza è molto importante (ad esempio l'autenticazione di molte connessioni TLS). Si noti che normalmente non è necessario verificare una challenge-response, è necessario verificare anche una catena di certificati. Quindi ci sono molte ragioni per cui la velocità di verifica diventa improvvisamente di nuovo importante.

In generale, è molto meglio concentrarsi prima sulla sicurezza e poi eseguire ottimizzazioni. Avere un design buono e flessibile dovrebbe consentire qualsiasi algoritmo di generazione delle firme. Se qualcuno ti dice di non usare DSA a causa dei problemi di velocità per le chiavi da 2048 bit senza conoscenza del sistema runtime, metterei seriamente in dubbio il loro livello di esperienza.

Un po 'come il gestore che ti dice di non usare new nei metodi della tua implementazione Java toString perché potrebbe rallentare l'applicazione.

Si noti che i tasti a 2048 bit stanno iniziando a diventare un po 'troppo piccoli per il comfort per le applicazioni che richiedono un'elevata sicurezza. Se usi, per esempio, i tasti 3Ki, le prestazioni saranno ridotte (anche se gli algoritmi che usano la generazione di firme RSA ne risentiranno di più).

Potrebbero esserci altri motivi per scegliere RSA su DSA, naturalmente . Con RSA, inoltre, non è necessario conoscere questi fastidiosi parametri del dominio e le dimensioni della sottochiave. RSA è piuttosto facile da capire e utilizzare rispetto a DSA e ECDSA. Quindi in questo senso potresti chiederti perché non dovresti usare RSA.

    
risposta data 21.08.2015 - 12:03
fonte
0

To be honest, I was expecting larger amount of time to verify the keys

1

Diciamo che il client sei tu e il server è questo sito web:

Ilprocessocoinvoltoprimadiottenerelarispostafinaleperpoterutilizzarequestositowebèconformeaun'infrastrutturaPKIconprotocollodihandshakeTLS(doveRSA,DSA,AES...puòessereevoluto)semplificatoèqualcosacome:

Sapendocheiltuoaccessoaquièconsentitosolodopocheilpassaggio9èstatocompletato,puoiimmaginarecheseifortunatocheilprocessodiverificachiavesiaavvenutoincosìpocotempochenontisentinemmeno.

2:

GliautoridiOpenSSLhannosviluppatounasuitedibenchmarkingdirettamentenelbinarioopensslcheèpossibileutilizzaretramiteilcomandospeed.Secontrolliilsuo manuale , leggerai nella sua descrizione:

This command is used to test the performance of cryptographic algorithms.

Verifica quante operazioni può eseguire in un dato momento (quanti byte possono essere eseguiti al secondo), ma l'output che hai ottenuto dipende interamente sull'hardware il comando è in esecuzione su .

Ho menzionato questo per farti sapere che sei stato solo un po 'confuso: le prestazioni di RSA e DSA che testate usando la velocità di openssl non riflettono la loro sicurezza o necessariamente quale è migliore dell'altra per le ragioni che ho spiegato a te.

Penso che questo risponda pienamente alla tua domanda. Ora, se sei interessato a confrontare questi 2 algoritmi, puoi leggere la risposta accettata di questa domanda: RSA vs. DSA per le chiavi di autenticazione SSH

    
risposta data 21.08.2015 - 12:02
fonte

Leggi altre domande sui tag