Quali sono le differenze tra gli algoritmi di crittografia RSA, DSA ed ECC?
La crittografia a chiave pubblica si basa su algoritmi matematici per generare coppie di chiavi: una chiave pubblica per criptare i messaggi e una chiave privata per decriptarli, assicurando che solo il destinatario previsto possa leggere il messaggio. I principali algoritmi utilizzati sono RSA, DSA ed ECC, ognuno dei quali offre vantaggi unici in termini di prestazioni, velocità e sicurezza. RSA, il più vecchio, è ampiamente utilizzato e noto per la sua robustezza, mentre ECC offre una maggiore forza crittografica con chiavi di lunghezza inferiore, rendendolo ideale per i dispositivi con potenza di calcolo limitata. Il DSA, approvato dal governo federale degli Stati Uniti, è efficiente sia per i processi di firma che di verifica. La forza di questi metodi crittografici è alla base dei certificati digitali utilizzati nella navigazione web sicura (TLS/SSL) e in varie applicazioni di identità digitale. Con i progressi dell'informatica quantistica, si stanno sviluppando nuovi algoritmi crittografici post-quantistici per garantire la sicurezza futura.
Indice
Gli algoritmi di crittografia RSA, DSA ed ECC sono i principali algoritmi utilizzati per la generazione di chiavi nell'infrastruttura a chiave pubblica.
L'infrastruttura a chiave pubblica (PKI) è utilizzata per gestire l'identità e la sicurezza nelle comunicazioni Internet e nelle reti informatiche. La tecnologia di base della PKI è la crittografia a chiave pubblica, un meccanismo di crittografia che si basa sull'uso di due chiavi correlate, una pubblica e una privata.
Questa coppia di chiavi, pubblica e privata, si occupa insieme di crittografare e decrittografare i messaggi. L'accoppiamento di due chiavi crittografiche in questo modo è noto anche come crittografia asimmetrica, diversa dalla crittografia simmetrica, in cui un'unica chiave viene utilizzata sia per la crittografia che per la decrittografia.
Il vantaggio della crittografia asimmetrica è che la chiave pubblica può essere pubblicata e resa visibile al mondo intero, mentre la chiave privata viene tenuta al sicuro sul dispositivo dell'utente, il che la rende molto più sicura della crittografia simmetrica.
Come la crittografia a chiave pubblica si basa sulla crittografia
La crittografia a chiave pubblica si basa su algoritmi matematici per generare le chiavi. La chiave pubblica consiste in una stringa di numeri casuali che può essere utilizzata per criptare un messaggio. Solo il destinatario può decifrare e leggere il messaggio cifrato, che può essere decifrato e letto solo utilizzando la chiave privata associata, che è segreta e nota solo al destinatario.Le chiavi pubbliche vengono create utilizzando un complesso algoritmo crittografico per accoppiarle alla chiave privata associata, in modo da non poter essere sfruttate attraverso un attacco di forza bruta.
La dimensione della chiave o la lunghezza dei bit delle chiavi pubbliche determina la forza della protezione. Ad esempio, le chiavi RSA a 2048 bit sono spesso utilizzate nei certificati SSL, nelle firme digitali e in altri certificati digitali. Questa lunghezza di chiave offre una sicurezza crittografica sufficiente a impedire agli hacker di decifrare l'algoritmo. Organizzazioni di standard come il CA/Browser Forum definiscono i requisiti di base per le dimensioni delle chiavi supportate.
La PKI consente di ottenere i certificati digitali che incontriamo quotidianamente, in modo discreto e onnipresente, quando utilizziamo siti web, applicazioni mobili, documenti online e dispositivi connessi. Uno dei casi d'uso più comuni della PKI è la sicurezza del livello di trasporto (Transport Layer Security, TLS)/Secure Socket Layer (SSL) basata su X.509. È la base del protocollo HTTPS, che consente la navigazione sicura sul Web. Ma i certificati digitali vengono applicati anche a un'ampia gamma di casi d'uso, tra cui la firma del codice delle applicazioni, le firme digitali e altri aspetti dell'identità e della sicurezza digitale.
Cosa sono gli algoritmi RSA, DSA ed ECC?
Esistono tre algoritmi principali utilizzati per la generazione di chiavi PKI:
Rivest–Shamir–Adleman (RSA)
Algoritmo di firma digitale (DSA)
Crittografia a curva ellittica (ECC)
Algoritmi RSA vs ECC vs DSA
L'algoritmo RSA è stato sviluppato nel 1977 da Ron Rivest, Adi Shamir e Leonard Adleman. Si basa sul fatto che la fattorizzazione di grandi numeri primi richiede una notevole potenza di calcolo ed è stato il primo algoritmo a sfruttare il paradigma chiave pubblica/chiave privata. Esistono diverse lunghezze di chiave associate a RSA, con una lunghezza di chiave RSA di 2048 bit che oggi è lo standard per la maggior parte dei siti web.
La crittografia ECC si basa su algoritmi matematici che regolano la struttura algebrica delle curve ellittiche su campi finiti. Offre livelli di forza crittografica equivalenti a quelli di RSA e DSA, con chiavi di lunghezza inferiore. L'ECC è stato il metodo di crittografia più recente dei tre, con l'algoritmo di firma digitale a curva ellittica (ECDSA) accreditato nel 1999 e il Key Agreement and Key Transport Using Elliptic Curve Cryptography nel 2001. Come il DSA, l'ECC è certificato FIPS ed è anche approvato dalla National Security Agency (NSA).
La crittografia DSA utilizza un algoritmo diverso da RSA per creare chiavi pubbliche/private, basato sull'esponenziazione modulare e sul problema del logaritmo discreto. Offre gli stessi livelli di sicurezza di RSA per chiavi di dimensioni equivalenti. Il DSA è stato proposto dal National Institute of Standards and Technology (NIST) nel 1991 ed è stato adottato dal Federal Information Processing Standard (FIPS) nel 1993.
È possibile supportare più algoritmi di crittografia contemporaneamente. Ad esempio, i server Apache possono supportare chiavi generate sia da RSA che da DSA sullo stesso server. L'approccio “cinture e bretelle” migliora la sicurezza aziendale.
Come si confrontano RSA e DSA?
Sebbene RSA e DSA utilizzino diversi tipi di algoritmi matematici per generare le coppie di chiavi, ai fini della forza crittografica entrambi sono considerati equivalenti. Le principali differenze tra RSA e DSA riguardano invece le prestazioni e la velocità.
Prestazioni e velocità
RSA è più veloce di DSA quando si tratta di crittografare e firmare, ma è più lento di DSA per decifrare e verificare. Tuttavia, poiché l'autenticazione richiede entrambe le cose, per molte applicazioni reali la differenza di prestazioni è ampiamente trascurabile.
RSA è anche più lento di DSA quando si tratta di generare chiavi, ma poiché le chiavi vengono generate una sola volta e utilizzate per mesi o anni, spesso questa non è una considerazione importante.
Supporto del protocollo SSH
Un'altra differenza si trova nel supporto del protocollo Secure Shell (SSH). RSA è compatibile sia con l'SSH originale che con la nuova seconda edizione di SSH2, mentre DSA funziona solo con SSH2. Poiché SSH non è considerato sicuro come SSH2, questo potrebbe essere un elemento da considerare per l'utilizzo di DSA.
Approvazione federale
Un'altra differenza tra DSA e RSA è che il DSA è approvato dal governo federale degli Stati Uniti. Per le aziende che forniscono servizi alle agenzie federali, la capacità di mantenersi al passo con gli standard governativi può essere un argomento a favore dell'utilizzo di DSA.
In definitiva, per la maggior parte dei casi d'uso, dei settori e degli ambienti normativi, RSA e DSA sono molto simili, offrono una forza crittografica equivalente e le differenze tra i due sono relativamente minime. I due algoritmi sono inoltre ugualmente compatibili con i principali protocolli Internet, tra cui Nettle, OpenSSL, wolfCrypt, Crypto++ e cryptlib.
Come si colloca ECC rispetto a RSA e DSA?
La differenza principale tra ECC e RSA/DSA è la maggiore forza crittografica che ECC offre a parità di dimensione della chiave. Una chiave ECC è più sicura di una chiave RSA o DSA della stessa dimensione.
Confronto tra le dimensioni delle chiavi:
Dimensione della chiave simmetrica (bit) | Dimensione RSA (bit) | Dimensione della chiave a curva ellittica (bit) |
---|---|---|
80 | 1024 | 160 |
112 | 2048 | 224 |
128 | 3072 | 256 |
192 | 7680 | 384 |
256 | 15360 | 521 |
Dimensioni delle chiavi consigliate secondo il NIST
ECC è più efficiente
Come mostra la figura, con l'ECC si ottiene una forza crittografica equivalente con dimensioni della chiave significativamente inferiori, circa un ordine di grandezza. Ad esempio, per ottenere l'equivalente forza crittografica di una crittografia con una chiave simmetrica a 112 bit sarebbe necessaria una chiave RSA a 2048 bit, ma solo una chiave ECC a 224 bit.
La minore lunghezza delle chiavi significa che i dispositivi richiedono una minore potenza di elaborazione per crittografare e decrittografare i dati, rendendo l'ECC adatto ai dispositivi mobili, all'Internet of Things e ad altri casi d'uso con potenza di calcolo più limitata.
Sicurezza e velocità
L'ECC presenta anche alcuni vantaggi rispetto a RSA o DSA in casi d'uso più tradizionali, come i server web, in quanto le dimensioni ridotte delle chiavi consentono una maggiore sicurezza con handshake SSL più rapidi, che si traducono in tempi di caricamento delle pagine web più veloci.
Vale la pena notare che ECDSA, la versione originale di ECC, è una variante di DSA. ECDSA offre livelli equivalenti di forza crittografica per numero di bit rispetto a ECC.
Perché la crittografia a curva ellittica non è molto utilizzata?
Sebbene RSA sia l'algoritmo più utilizzato, ECC ha guadagnato popolarità nel corso degli anni. Una delle ragioni più semplici del dominio di RSA è che esiste da più tempo. Detto questo, l'ECC presenta alcuni svantaggi che potrebbero spiegare ulteriormente perché le persone lo evitano:
Complessità: L'apprendimento e l'adozione dell'ECC richiede più tempo ed è un processo più complesso rispetto all'RSA. Questo può aumentare il rischio di errori, con un impatto negativo sulla sicurezza informatica.
Vulnerabilità: Le ECC possono essere vulnerabili agli attacchi side-channel (SCA), che possono portare ad attacchi brute force. Possono anche essere vulnerabili ad attacchi di sicurezza di tipo twist, anche se esistono contromisure che aiutano a prevenire questi attacchi.
L'informatica quantistica e il futuro degli algoritmi di crittografia
Con l'informatica quantistica all'orizzonte, possiamo aspettarci un grande cambiamento nelle misure di sicurezza crittografica. Gli algoritmi crittografici classici, come RSA ed ECC, saranno facilmente violati dall'informatica quantistica, rendendo fondamentale per le organizzazioni l'adattamento a nuovi metodi di crittografia. Fortunatamente, sono già stati sviluppati nuovi algoritmi.
Il NIST ha valutato gli attuali algoritmi di crittografia post-quantistica (PQC) e ha determinato quattro vincitori: ML-KEM (ex CRYSTALS-Kyber), CRYSTALS-Dilithium, FALCON e SPHINCS+. Tenersi aggiornati sui progressi di questi algoritmi e sulle nuove pratiche di standardizzazione sarà essenziale per le organizzazioni che andranno avanti.
Ora che avete acquisito una maggiore familiarità con gli algoritmi di crittografia RSA, DSA ed ECC, contattateci oggi stesso per saperne di più su come i nostri prodotti possono proteggere il vostro sito web dalle minacce alla sicurezza. Vi consigliamo anche di esplorare le soluzioni PQC di Sectigo.