Cifrario

Da Wikipedia, l'enciclopedia libera.
Se riscontri problemi nella visualizzazione dei caratteri, clicca qui.

In crittografia un cifrario, o cifra, è un algoritmo utilizzato per eseguire operazioni di cifratura e decifratura, vale a dire una serie di passaggi ben definiti che possono essere seguiti come una procedura.

Spesso "cifrario" viene confuso con il termine "codice", ma i due concetti, in crittografia, sono molto distinti. Nella crittografia classica i codici operano per sostituzione dei termini usando un vasto libro codice, un elenco di sostituti per rimpiazzare parole e frasi. Ad esempio "UQJHSE" potrebbe significare "Procedere fino alle seguenti coordinate". Quando si usa un cifrario, l'informazione originale è nota come testo in chiaro mentre quella cifrata come testo cifrato. Il testo cifrato contiene tutte le informazioni del testo in chiaro ma espresse in un formato illeggibile dagli esseri umani o dai computer senza un determinato meccanismo per decifrarlo: a chi non è in grado di leggerlo, dovrebbe apparire come una sequenza di caratteri senza senso.

L'operazione svolta da un cifrario dipende normalmente da un'informazione ausiliaria chiamata chiave. La chiave influenza il processo di cifratura: chiavi diverse producono versioni cifrate differenti dello stesso testo in chiaro. La chiave deve essere scelta prima di cifrare il messaggio e senza la sua conoscenza, dovrebbe essere difficile, se non impossibile, decifrare il testo cifrato.

Molti dei cifrari moderni sono raggruppabili secondo alcune loro caratteristiche:

  • se operano su blocchi di simboli di lunghezza predeterminata (cifrari a blocchi) o su un flusso continuo di simboli (cifrari a flusso);
  • se usano la stessa chiave sia per la cifratura che per la decifratura (algoritmi a chiave simmetrica) oppure se vengono usate chiavi differenti (crittografia asimmetrica). Se l'algoritmo è simmetrico, la chiave deve essere nota sia al mittente che al destinatario del messaggio cifrato (con tutti i problemi legati allo scambio) e a nessun altro. Se l'algoritmo è asimmetrico, la chiave di cifratura è differente da quella di decifratura, ma è comunque correlata ad essa; se una chiave non può essere dedotta dall'altra, l'algoritmo si dice a chiave pubblica ed una delle due chiavi può essere liberamente resa pubblica senza perdita di confidenzialità.

Etimologia[modifica | modifica wikitesto]

La parola "cifra" deriva dal termine arabo صفر, ṣifr, che significa vuoto, che gli Arabi usavano per indicare il numero "0" (vedi Storia dello Zero). Dopo l'introduzione in Europa dei numeri arabi, si diffuse l'uso di definire come "cifra" qualunque numero, non solo lo zero. Si può forse ritenere che i cifrari furono definiti così perché comprensibili solo a coloro che sapevano come ricostruire il testo in chiaro, un po' come la numerazione araba che era ben diversa dalla quella romana e quindi nota solo a chi l'aveva studiata[1].

Cifrari e codici[modifica | modifica wikitesto]

Exquisite-kfind.png Per approfondire, vedi Codice (crittografia).

Nell'accezione comune, codice generalmente indica "cifrario". Nella terminologia tecnica, le parole "codice" e "cifrario" fanno invece riferimento a due concetti differenti: un codice lavora a livello di significato, cioè parole o frasi vengono convertire in qualcosa di differente, spesso con il risultato di rendere più brevi i messaggi. Un esempio è il codice telegrafico Morse, creato per trasmettere i messaggi via cavo tramite impulsi elettrici.

I cifrari, invece, lavorano ad un livello più basso, il livello di singole lettere o, come nei moderni cifrari, a livello di bit. Alcuni sistemi usano sia codici che cifrari uniti in un unico sistema di cifratura per aumentare la sicurezza degli schemi. In alcuni casi i termini codice e cifrario sono sinonimo di "sostituzione" e "trasposizione".

A causa di alcuni suoi limiti, come la suscettibilità alla crittanalisi e la difficoltà di maneggiare voluminosi libri codice, la codifica nei tempi recenti è caduta in disuso in favore della moderna crittografia, ed i cifrari sono oggi la tecnica dominante.

Tipi di cifrari[modifica | modifica wikitesto]

C'è una gran varietà negli schemi di cifratura: i metodi usati nella crittografia più antica sono sostanzialmente differenti dai moderni sistemi.

Cifrari storici[modifica | modifica wikitesto]

I cifrari antichi, quelli basati sull'uso di carta e penna, sono spesso indicati come cifrari classici. Essi includono i semplici cifrari a sostituzione e quelli a trasposizione. Ad esempio la frase "BUON GIORNO" può essere cifrata come "ATNM FHNQMN" dove ogni lettera è sostituita da quella che la precede nell'alfabeto, oppure può essere cifrata come "BNOO UGROIN" utilizzando una semplice trasposizione.

All'inizio del XX secolo furono inventate delle macchine elettro-meccaniche capaci di eseguire operazioni di cifratura e decifratura usando cifrari polialfabetici ed a trasposizione, come la cifratrice Lorenz o la macchina Enigma. Queste macchine facevano parte delle cosiddette "macchine a rotori", il cui funzionamento si basava su dischi rotanti, che provvedevano alla sostituzione polialfabetica delle lettere, combinati con l'uso di collegamenti elettrici, che provvedevano alla loro sostituzione. Le chiavi di cifrature erano impostate mediante la disposizione iniziale dei dischi e dei collegamenti elettrici. Nonostante queste macchine fossero molto più complesse di qualunque schema fino ad allora visto, i loro cifrari furono violati con l'uso di altre macchine calcolatrici appositamente inventate all'occorrenza, come il calcolatore Colossus.

Cifrari moderni[modifica | modifica wikitesto]

I moderni sistemi di cifratura si dividono in base al tipo di chiave usata ed al tipo di dato fornito in ingresso. A seconda del tipo di chiave usata, i cifrari sono divisi in:

  • algoritmi a chiave simmetrica, o a chiave privata, dove la stessa chiave è usata sia per la cifratura che per la decifratura del messaggio;
  • algoritmi a chiave asimmetrica, o a chiave pubblica, dove una chiave è usata per la cifratura ed un'altra per la decifratura.

Negli algoritmi a chiave simmetrica (come il DES e l'AES), il mittente ed il destinatario del messaggio devono essere in possesso in un sistema sicuro per potersi scambiare la chiave segreta senza che questa possa essere intercettata da altri; il mittente, poi, utilizza questa chiave per la cifratura del messaggio, ed il destinatario la riutilizza per ottenere il testo decifrato. Negli algoritmi a chiave asimmetrica (come l'RSA), invece, ci sono 2 chiavi distinte: la chiave pubblica, di pubblico dominio ed utilizzata da chiunque voglia cifrare un messaggio, ed una chiave privata, nota solo al destinatario del messaggio e da lui utilizzata per recuperare il testo in chiaro.

A seconda del tipo di dati che i cifrari trattano, essi sono divisi in:

Dimensione della chiave e vulnerabilità[modifica | modifica wikitesto]

Nel caso di un attacco di natura matematica (come nel caso dell'assenza di qualsiasi informazione utile a violare il cifrario) ci sono 3 fattori estremamente importanti

  • gli sviluppi matematici che portano alla conoscenza di nuove tipologie di attacco o alla scoperta ed utilizzo di eventuali debolezze del cifrario;
  • la potenza computazionale che è disponibile, cioè la potenza di calcolo di cui si dispone per operare sul problema. È importante notare che non si deve tener conto solo delle prestazioni o delle capacità di un singolo computer di media potenza: un attaccante potrebbe utilizzare contemporaneamente diverse macchine in modo da incrementare la velocità di una ricerca esaustiva di tutte le possibili chiavi;
  • la dimensione della chiave, cioè la lunghezza effettiva della chiave usata per cifrare un messaggio. Al crescere della dimensione della chiave cresce anche la complessità della ricerca esaustiva, fino ad arrivare al punto in cui diventa praticamente impossibile violare in maniera diretta il cifrario.

La sola dimensione della chiave, però, non esprime in realtà l'effettiva robustezza di un cifrario, dato che entrano in gioco diversi fattori legati alla struttura stessa dell'algoritmo ed al tipo di cifratura adottato: ecco perché un cifrario simmetrico con una chiave lunga 128 bit offre lo stesso livello di sicurezza di un cifrario asimmetrico che adotti una chiave lunga 3072 o di un sistema a curve ellittiche con chiave di 512 bit. La lunghezza[2].

Claude Shannon dimostrò con la teoria dell'informazione che un l'unico cifrario teoricamente inviolabile ("cifrario perfetto") è quello che adotta una chiave segreta "usa-e-getta" (nel senso che non deve essere mai riutilizzata), veramente casuale e lunga quanto il messaggio da cifrare: è il caso dei cifrari one-time pad, di cui il più famoso è il cifrario di Vernam.

Note[modifica | modifica wikitesto]

  1. ^ Etimologia di "cifra"
  2. ^ keylenght.com

Bibliografia[modifica | modifica wikitesto]

  • Helen Fouché Gaines: Elementary Cryptanalysis: A Study of Ciphers and Their Solution (1939) American Photographic Publishing Co., Boston. In seguito ristampata da Dover, New York, col titolo Cryptanalysis: A Study of Ciphers and Their Solution (1956). ISBN 0-486-20097-3
  • Ibrahim Al-Kadi, The origins of cryptology: The Arab contributions" - Cryptologia 16(2), aprile 1992, pagg. 97–126.
  • Ibrahim Al-Kadi: Cryptography and Data Security: Cryptographic Properties of Arabic, Third Saudi Engineering Conference. Riyadh, Arabia Saudita (1991), Vol 2, pagg. 910-921.
  • David Kahn: The Codebreakers - The Story of Secret Writing (ISBN 0-684-83130-9) (1967)
  • Abraham Sinkov: Elementary Cryptanalysis: A Mathematical Approach - Mathematical Association of America (1966). ISBN 0-88385-622-0
  • William Stallings: Cryptography and Network Security, principles and practices, 4th Edition

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Crittografia Portale Crittografia: accedi alle voci di Wikipedia che trattano di Crittografia