Crittografia Firme digitali
Le firme digitali sono le primitive della chiave pubblica dell'autenticazione dei messaggi. Nel mondo fisico, è comune utilizzare firme scritte a mano su messaggi scritti a mano o digitati. Sono utilizzati per vincolare il firmatario al messaggio.
Allo stesso modo, una firma digitale è una tecnica che lega una persona / entità ai dati digitali. Questo legame può essere verificato in modo indipendente dal destinatario e da qualsiasi terza parte.
La firma digitale è un valore crittografico calcolato dai dati e da una chiave segreta conosciuta solo dal firmatario.
Nel mondo reale, il destinatario del messaggio ha bisogno della garanzia che il messaggio appartiene al mittente e non dovrebbe essere in grado di ripudiare l'origine di quel messaggio. Questo requisito è molto cruciale nelle applicazioni aziendali, poiché la probabilità di una controversia sui dati scambiati è molto alta.
Modello di firma digitale
Come accennato in precedenza, lo schema di firma digitale si basa sulla crittografia a chiave pubblica. Il modello dello schema di firma digitale è illustrato nella figura seguente:
I seguenti punti spiegano dettagliatamente l'intero processo:
Ogni persona che adotta questo schema dispone di una coppia di chiavi pubblica-privata.
In generale, le coppie di chiavi utilizzate per crittografia / decrittografia e firma / verifica sono diverse. La chiave privata utilizzata per la firma è denominata chiave di firma e la chiave pubblica come chiave di verifica.
Il firmatario invia i dati alla funzione hash e genera l'hash dei dati.
Il valore hash e la chiave della firma vengono quindi inviati all'algoritmo di firma che produce la firma digitale su un determinato hash. La firma viene aggiunta ai dati e quindi entrambe vengono inviate al verificatore.
Verifier inserisce la firma digitale e la chiave di verifica nell'algoritmo di verifica. L'algoritmo di verifica fornisce un valore come output.
Verifier esegue anche la stessa funzione hash sui dati ricevuti per generare il valore hash.
Per la verifica, vengono confrontati questo valore hash e l'output dell'algoritmo di verifica. In base al risultato del confronto, il verificatore decide se la firma digitale è valida.
Poiché la firma digitale è creata dalla chiave "privata" del firmatario e nessun altro può avere questa chiave; il firmatario non può rifiutare di firmare i dati in futuro.
Va notato che invece di firmare i dati direttamente tramite algoritmo di firma, di solito viene creato un hash di dati. Poiché l'hash dei dati è una rappresentazione univoca dei dati, è sufficiente firmare l'hash al posto dei dati. Il motivo più importante per utilizzare l'hash invece dei dati direttamente per la firma è l'efficienza dello schema.
Supponiamo che RSA venga utilizzato come algoritmo di firma. Come discusso nel capitolo sulla crittografia a chiave pubblica, il processo di crittografia / firma che utilizza RSA comporta l'elevazione a potenza modulare.
La firma di dati di grandi dimensioni tramite esponenziazione modulare è dispendiosa in termini di calcolo e richiede tempo. L'hash dei dati è un riassunto relativamente piccolo dei dati, quindisigning a hash is more efficient than signing the entire data.
Importanza della firma digitale
Tra tutte le primitive crittografiche, la firma digitale che utilizza la crittografia a chiave pubblica è considerata uno strumento molto importante e utile per ottenere la sicurezza delle informazioni.
Oltre alla capacità di fornire il non ripudio del messaggio, la firma digitale fornisce anche l'autenticazione del messaggio e l'integrità dei dati. Vediamo brevemente come questo si ottiene dalla firma digitale -
Message authentication - Quando il verificatore convalida la firma digitale utilizzando la chiave pubblica di un mittente, gli viene assicurato che la firma è stata creata solo dal mittente che possiede la chiave privata segreta corrispondente e nessun altro.
Data Integrity- Nel caso in cui un utente malintenzionato abbia accesso ai dati e li modifichi, la verifica della firma digitale all'estremità del destinatario fallisce. L'hash dei dati modificati e l'output fornito dall'algoritmo di verifica non corrisponderanno. Pertanto, il destinatario può negare in sicurezza il messaggio presumendo che l'integrità dei dati sia stata violata.
Non-repudiation- Poiché si presume che solo il firmatario abbia la conoscenza della chiave di firma, può creare solo una firma univoca su un dato dato. Pertanto, il destinatario può presentare i dati e la firma digitale a terzi come prova in caso di controversia in futuro.
Aggiungendo la crittografia a chiave pubblica allo schema di firma digitale, possiamo creare un sistema crittografico in grado di fornire i quattro elementi essenziali della sicurezza, ovvero: Privacy, Autenticazione, Integrità e Non ripudio.
Crittografia con firma digitale
In molte comunicazioni digitali, è preferibile scambiare messaggi crittografati rispetto a testo normale per garantire la riservatezza. Nello schema di crittografia a chiave pubblica, una chiave pubblica (crittografia) del mittente è disponibile in un dominio aperto e quindi chiunque può falsificare la propria identità e inviare qualsiasi messaggio crittografato al destinatario.
Ciò rende essenziale per gli utenti che utilizzano PKC per la crittografia cercare firme digitali insieme a dati crittografati per essere certi dell'autenticazione e del non ripudio dei messaggi.
Questo può essere archiviato combinando le firme digitali con lo schema di crittografia. Parliamo brevemente di come raggiungere questo requisito. Ci sonotwo possibilities, sign-then-encrypt e encrypt-then-sign.
Tuttavia, il sistema crittografico basato su firma e crittografia può essere sfruttato dal destinatario per falsificare l'identità del mittente e inviare tali dati a terzi. Quindi, questo metodo non è preferito. Il processo di crittografia e firma è più affidabile e ampiamente adottato. Questo è illustrato nella figura seguente:
Il destinatario, dopo aver ricevuto i dati crittografati e la firma su di essi, verifica prima la firma utilizzando la chiave pubblica del mittente. Dopo aver verificato la validità della firma, recupera i dati tramite la decrittazione utilizzando la sua chiave privata.