cifrario
Che cos’è un cifrario?
In crittologia, la disciplina interessata allo studio degli algoritmi crittografici, un cifrario è un algoritmo per la crittografia e la decrittografia dei dati.
La crittografia a chiave simmetrica, chiamata anche crittografia a chiave segreta, dipende dall’uso di cifrari, che operano simmetricamente. Con gli algoritmi di crittografia simmetrica, la stessa chiave di crittografia viene applicata ai dati nello stesso modo, sia che l’obiettivo sia convertire il testo in chiaro in testo cifrato o il testo cifrato in testo semplice. Un cifrario trasforma i dati elaborando i caratteri originali, in chiaro o altri dati in testo cifrato. Il testo cifrato dovrebbe apparire come dati casuali.
Tradizionalmente, i cifrari utilizzavano questi due tipi principali di trasformazione:
- I codici di trasposizione mantengono tutti i bit originali di dati in un byte ma mescolano il loro ordine.
- I codici di sostituzione sostituiscono sequenze di dati specifiche con altre sequenze di dati. Ad esempio, un tipo di sostituzione sarebbe trasformare tutti i bit con un valore di 1 in un valore di 0 e viceversa.
L’output dei dati da entrambi i metodi è chiamato testo cifrato.
I cifrari moderni consentono la comunicazione privata in molti protocolli di rete diversi, tra cui il protocollo TLS (Transport Layer Security) e altri che offrono la crittografia del traffico di rete. Molte tecnologie di comunicazione, tra cui telefoni, televisione digitale e bancomat, si basano su cifrari per mantenere la sicurezza e la privacy.
Come funzionano i cifrari?
Un codice utilizza un sistema di regole fisse-un algoritmo di crittografia-per trasformare il testo in chiaro, un messaggio leggibile, in testo cifrato, una stringa apparentemente casuale di caratteri. I cifrari possono essere progettati per crittografare o decrittografare i bit in un flusso, noto come cifrari di flusso. Oppure possono elaborare il testo cifrato in blocchi uniformi di un numero specificato di bit, noti come cifrari a blocchi.
Le moderne implementazioni di crittografia dipendono dall’algoritmo e da una chiave segreta, che viene utilizzata dall’algoritmo di crittografia per modificare i dati mentre sono crittografati. I cifrari che utilizzano chiavi più lunghe, misurate in bit, sono più efficaci contro gli attacchi di forza bruta. Più lunga è la lunghezza della chiave, più tentativi di forza bruta sono necessari per esporre il testo in chiaro. Mentre la forza del cifrario non dipende sempre dalla lunghezza della chiave, gli esperti raccomandano che i cifrari moderni siano configurati per utilizzare chiavi di almeno 128 bit o più, a seconda dell’algoritmo e del caso d’uso.
Una chiave è una parte essenziale di un algoritmo di crittografia, tanto che, nella crittografia del mondo reale, la chiave è tenuta segreta, non l’algoritmo. Algoritmi di crittografia forti sono progettati in modo che, anche se qualcuno conosce l’algoritmo, dovrebbe essere impossibile decifrare il testo cifrato senza conoscere la chiave appropriata. Di conseguenza, prima che un codice possa funzionare, sia il mittente che il destinatario devono avere una chiave o un set di chiavi.
Con algoritmi a chiave simmetrica, la stessa chiave viene utilizzata per la crittografia e la decrittografia dei dati. Gli algoritmi a chiave asimmetrica utilizzano chiavi pubbliche e chiavi private per crittografare e decrittografare i dati.
Nella crittografia asimmetrica, nota anche come crittografia a chiave pubblica, le chiavi sono numeri grandi che sono stati accoppiati insieme ma non sono identici (asimmetrici). Le coppie di chiavi includono quanto segue:
- La chiave pubblica può essere condivisa con tutti.
- La chiave privata o segreta è tenuta segreta.
Una delle chiavi può essere utilizzata per crittografare un messaggio; la chiave opposta a quella utilizzata per crittografare il messaggio viene utilizzata per la decrittografia.
La chiave privata o segreta della coppia viene utilizzata dal proprietario della coppia di chiavi per decifrare o crittografare i dati, mentre la chiave pubblica viene utilizzata da chiunque desideri crittografare un messaggio che può essere decifrato solo dal titolare della chiave privata.
A cosa servono i cifrari?
I cifrari simmetrici sono più comunemente usati per proteggere le comunicazioni online. Sono anche incorporati in molti protocolli di rete diversi da utilizzare per lo scambio di dati. Ad esempio, Secure Sockets Layer e TLS utilizzano i cifrari per crittografare i dati a livello di applicazione, in particolare se utilizzati con HTTP Secure (HTTPS).
Le reti private virtuali che collegano lavoratori remoti o filiali remote alle reti aziendali utilizzano protocolli con algoritmi a chiave simmetrica per proteggere le comunicazioni di dati. I cifrari simmetrici proteggono la privacy dei dati nella maggior parte delle reti Wi-Fi, dei servizi di online banking e di e-commerce e della telefonia mobile.
Alcuni protocolli utilizzano la crittografia asimmetrica per crittografare e autenticare gli endpoint. Lo usano anche per proteggere lo scambio di chiavi simmetriche per crittografare i dati della sessione. Tali protocolli includono quanto segue:
- TLS
- HTTPS
- Secure Shell
- Apri Pretty Good Privacy
- Secure/Multipurpose Internet Mail Extensions
Mentre la crittografia a chiave pubblica è considerato più sicuro di crittografia simmetrica, è anche più intensivo. Per motivi di prestazioni, i protocolli spesso si basano su algoritmi a chiave simmetrica per crittografare i dati della sessione.
Differenza tra codici e cifre
I codici e le cifre sono modi diversi per crittografare un messaggio. Un codice è un metodo per modificare un messaggio sostituendo ogni parola con un’altra parola che ha un significato diverso.
D’altra parte, un cifrario converte il messaggio utilizzando il suo algoritmo per trasformare i dati che rappresentano le lettere e le parole nel messaggio. I cifrari sono più facili da implementare e utilizzare con i computer perché gli algoritmi sono automatizzati e facilmente programmati.
Tipi di cifrari
I cifrari possono essere caratterizzati in diversi modi, tra cui i seguenti:
- I cifrari a blocchi crittografano blocchi di dati di dimensioni uniformi.
- I cifrari di flusso possono essere applicati a flussi di dati che vengono spesso ricevuti e inviati su una rete.
I cifrari possono dipendere da chiavi tradizionali utilizzate direttamente sul testo cifrato a chiave o dalla crittografia a curva ellittica (ECC). Quando ECC viene utilizzato con una chiave a 160 bit, può fornire la sicurezza di un cifrario tradizionale, come quello utilizzato nel crittosistema RSA (Rivest-Shamir-Adleman) utilizzando una chiave di 1.024 bit di lunghezza.
Gli algoritmi di crittografia moderni sono progettati per resistere agli attacchi anche quando l’attaccante sa quale cifrario viene utilizzato. Storicamente, i cifrari sono stati meno sicuri contro gli attacchi perché sono stati utilizzati per cifrare il testo in chiaro a mano e potrebbero essere più facilmente analizzati e rotti con la potenza del computer.
Esempi di cifrari
Alcuni cifrari storici ben noti includono quanto segue:
- Cesare. Questo cifrario è attribuito a Giulio Cesare, che si dice abbia usato per comunicare in modo sicuro con i suoi generali. È un semplice codice di sostituzione in cui ogni lettera nel testo in chiaro viene spostata di un numero specifico di punti lungo l’alfabeto. Il numero di turno detto di essere usato da Cesare era tre. I codici di sostituzione sono spesso implementati scrivendo l’alfabeto in chiaro, con l’alfabeto cifrato scritto sopra le lettere in chiaro, spostato dal numero a cui coloro che comunicano accettano. Uno spostamento di tre mette la lettera D sopra il testo in chiaro A, E sopra B e così via. Il numero di caratteri spostati è considerato una semplice forma di una chiave.
- Atbash. Questo codice è un codice di sostituzione in cui l’alfabeto in chiaro è mappato su se stesso ma in ordine inverso. In altre parole, la lettera in chiaro A è mappata al testo cifrato Z, B è mappata a Y, C a X e così via. Atbash prende il nome dalle due prime e due ultime lettere dell’alfabeto ebraico. Si pensa che sia stato in uso per centinaia di anni.
- Sostituzione semplice. Anche questo è stato usato per centinaia di anni. Sostituisce ogni carattere di testo in chiaro per un carattere di testo cifrato diverso, risultando in quella che è effettivamente una chiave di 26 caratteri. Si differenzia dal cifrario Caesar perché l’alfabeto cifrante è completamente confuso, piuttosto che semplicemente spostato un numero uniforme di posti.
- Vigenère. Questo cifrario è una forma di sostituzione polialfabetica, il che significa che si basa sulla sostituzione utilizzando più alfabeti di sostituzione. Il cifrario Vigenère utilizza una serie di cifrari Caesar intrecciati, basati sulle lettere di una parola chiave. Il testo originale viene crittografato utilizzando ciò che è noto come il quadrato di Vigenère o la tabella di Vigenère.
- Sostituzione omofonica. Questo codice di sostituzione utilizza diverse lettere di testo cifrato per sostituire singole lettere in chiaro. Questo tipo di cifratura è in genere molto più difficile da rompere rispetto ai cifrari di sostituzione standard.
Questi cifrari storici sono ancora rilevanti perché utilizzano diverse componenti fondamentali dei cifrari moderni, come la sostituzione e la trasposizione.
I cifrari possono entrare e uscire di moda, a seconda dei loro track record per la forza contro gli attacchi, così come la scoperta di nuovi vettori di attacco. Scopri i primi passi per utilizzare i cifrari in modo sicuro comprendendo le basi degli algoritmi di crittografia a chiave simmetrica.
Leave a Reply