Le firme digitali si basano su un'architettura di crittografia a chiave pubblica per verificare l'autenticità di un documento e l'identificazione del mittente. I due metodi standard per ottenere le firme digitali sono gli algoritmi RSA (Rivest–Shamir–Adleman) e DSA (Digital Signature), ma entrambi differiscono nell'esecuzione delle funzioni di crittografia e decrittografia.
L'articolo fornisce una panoramica di uno degli algoritmi DSA standard del settore, il suo processo di lavoro con una breve panoramica della generazione e verifica di chiavi e firme, i passaggi coinvolti nel processo complessivo, i suoi pro/contro e i relativi applicazione.
Introduzione agli algoritmi di firma digitale
DSA (Digital Signature Algorithm) incorpora le proprietà algebriche di problemi di logaritmi discreti ed esponenti modulari per generare una firma elettronica per varie applicazioni. È stato proposto nel 1991 ed è stato adottato come standard federale per l'elaborazione delle informazioni dal NIST (National Institute of Standards and Technology) nel 1994.
La maggior parte degli algoritmi di creazione di firme digitali segue la tecnica tipica di firmare il digest del messaggio (hash del messaggio effettivo) con la chiave privata di origine per creare l'identificazione personale digitale.
Tuttavia, la situazione è diversa in DSA in quanto genera due firme incorporando due funzioni di firma e verifica complesse e uniche. Quindi, l'algoritmo DSA non è un semplice utilizzo di chiavi private e pubbliche all'inizio e alla fine della comunicazione.
Importanza dell'algoritmo di firma digitale
A causa delle crescenti minacce informatiche, ogni volta che un utente invia dati su Internet, è necessario identificare e verificare l'autenticità del proprietario. Dobbiamo garantire che il proprietario del documento sia credibile e che nessuno abbia apportato modifiche durante la trasmissione.
Le firme digitali sono le firme elettroniche che aiutano il destinatario ad autenticare l'origine del messaggio. Puoi creare queste firme elettroniche tramite vari algoritmi e DSA è uno di questi. In DSA, il mittente crea una firma digitale per includerla nel messaggio in modo che chiunque possa autenticarla all'estremità ricevente.
I vantaggi offerti da DSA sono:
- Non ripudio: dopo la verifica della firma, il mittente non può pretendere di non aver inviato i dati.
- Integrità: la modifica dei dati durante la trasmissione impedisce la verifica finale o la decrittografia del messaggio.
- Autenticazione messaggio: la giusta combinazione di chiavi private/pubbliche aiuta a verificare l'origine del mittente.
In che modo l'algoritmo autentica il mittente?
L'algoritmo DSA funziona sul meccanismo di calcolo sistematico che calcola un valore hash e una firma digitale che costituiscono due numeri a 160 bit dal digest del messaggio e dalla chiave privata. La casualità rende la firma non deterministica. Utilizza una chiave pubblica per l'autenticazione della firma, che è molto più complessa di RSA.
Il ciclo DSA segue questi tre passaggi principali per completare il processo:
- Generazione chiave: Il processo si basa sul concetto di esponenziazione modulare per ottenere chiavi private (x) e pubbliche (y) che soddisfano le condizioni matematiche di 0 < x < qey = gx mod p. Dove q è un divisore primo, p è un numero primo e g soddisfa queste condizioni g**q mod p = 1 e g = h**((p–1)/q) mod p. Creando così pacchetti di chiavi private e pubbliche {p, q, g, x} e {p, q, g, y}.
- Generazione firma: Un algoritmo di hashing genera un digest del messaggio, che viene passato come input a una funzione di firma per creare due variabili output, r e s, impacchettati come firma {r, s} in modo tale che il messaggio e queste variabili siano inviati come un pacchetto al ricevitore.
- Verifica della firma: Il processo utilizza la funzione di hashing per produrre il digest e incorpora la variabile s con altri parametri della fase di generazione della chiave per produrre il componente di verifica v. La funzione di verifica confronta la variabile calcolata v con il parametro r del bundle {M, s, r}.
Per riassumere il processo di cui sopra in modo non matematico:
- Crei le chiavi con l'aiuto dell'algoritmo di generazione delle chiavi per firmare il documento.
- Quindi utilizzare un algoritmo di firma digitale per generare la firma.
- Usare un funzione hash per creare un digest del messaggioe combinarlo con DSA per generare la firma digitale.
- Invia la firma con i dati per l'autenticazione del destinatario.
- Il destinatario autentica la firma utilizzando un algoritmo di verifica. È la funzione hash utilizzata sopra per creare il digest del messaggio.
Vantaggi dell'utilizzo dell'algoritmo di firma digitale
- Calcolo veloce della firma
- Richiede meno spazio di archiviazione per l'intero processo
- Disponibile gratuitamente (senza brevetto) per un uso globale gratuito.
- Lunghezza piccola della firma
- Osservazione in tempo reale
- Non invasivo
- DSA è accettato a livello globale per la conformità legale.
- Efficienza in termini di tempo (basso consumo di tempo rispetto ai processi di firma fisica, ecc.)
Contro dell'utilizzo dell'algoritmo di firma digitale
- Il processo non include funzionalità di scambio di chiavi.
- Il crittografia sottostante deve essere nuovo per garantirne la forza.
- La standardizzazione dei fornitori di hardware e software per computer su RSA può causare problemi a causa del secondo standard di autenticazione di DSA.
- Le complesse operazioni rimanenti richiedono molto tempo per il calcolo e quindi la verifica della firma.
- Garantisce solo l'autenticazione, non la riservatezza, poiché l'algoritmo non crittografa i dati.
- Gli algoritmi DSA calcolano l'hash SHA1 per generare il digest del messaggio. Quindi, riflette tutti i difetti della funzione hash SHA1 nell'algoritmo.
DSA contro RSA
L'algoritmo di firma digitale è un algoritmo di crittografia a chiave asimmetrica adottato dalle agenzie statunitensi per comunicazioni segrete e non. Mentre RSA è un algoritmo di crittografia a chiave pubblica che utilizza anche l'aritmetica modulare, la sua forza si basa sul problema della fattorizzazione dei numeri primi per proteggere la comunicazione e le firme digitali. Quindi, a differenza dei soliti algoritmi di crittografia come RSA, DSA è uno standard solo per le firme digitali.
Anche se entrambi incorporano algoritmi matematici diversi, la forza della crittografia è equivalente. La principale differenza tra i due algoritmi si riduce alla velocità, alle prestazioni e al supporto del protocollo SSH.
- A differenza di DSA, RSA è lenta nella decrittografia, nella generazione di chiavi e nella verifica, ma veloce nella crittografia e nella firma. Tuttavia, l'autenticazione richiede entrambi e le discrepanze di velocità sono insignificanti nelle applicazioni del mondo reale.
- Un'altra differenza risiede nel supporto per il protocollo di rete Secure Shell. RSA supporta l'SSH originale e la sua seconda versione sicura SSH2, mentre DSA funziona solo con SSH2.
Autenticare l'origine dati con DSA
Le firme digitali sono una necessità per il mondo interconnesso di oggi per creare un ambiente sicuro e protetto. Sono un ottimo modo per autenticare qualsiasi record su Internet. L'articolo introduce gli algoritmi di firma digitale con una breve panoramica del processo di lavoro, vantaggi, svantaggi, limiti di sicurezza e confronto con RSA.
Di questi due protocolli di crittografia si parla spesso insieme, ma cosa sono e come funzionano?
Leggi Avanti
- Sicurezza
- Firme digitali
Rumaisa è una scrittrice freelance al MUO. Ha indossato molti cappelli, da matematica a appassionata di sicurezza informatica, e ora lavora come analista SOC. I suoi interessi includono la lettura e la scrittura di nuove tecnologie, distribuzioni Linux e tutto ciò che riguarda la sicurezza delle informazioni.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti