UNIVERSITÀ DEGLI STUDI DELL’INSUBRIA
Facoltà di Scienze matematiche, fisiche e naturali
Corso di Laurea in
SCIENZE DELLA COMUNICAZIONE
-------æ-------
Titolo insegnamento: SCRITTURE SEGRETE
Docente: Dott. Nicola AMATO
-------æ-------
Lezione n. 2
Concetti fondamentali della crittografia.
La crittografia, dal greco “crypto” (nascondere) e “graphein” (scrivere), è l'arte di progettare algoritmi (cifrari o procedimenti matematici per cifrare i dati) per crittografare un messaggio rendendolo incomprensibile a tutti tranne al suo destinatario che con un algoritmo simile deve essere in grado di decodificarlo, attraverso un parametro segreto detto chiave, usata in precedenza anche dal mittente per la cifratura. In pratica, il procedimento di crittografia si avvale sempre di un algoritmo per crittografare i messaggi in modo da renderli illeggibili a chi non possiede la chiave con cui sono stati crittografati, e di un opportuno algoritmo per decrittografarli. Il dato originale viene detto “testo in chiaro” o “plain text”, mentre il dato crittografato viene detto “testo cifrato” o “cipher text”
La sicurezza di un sistema di crittografia risiede solo ed esclusivamente nella segretezza della chiave e non dell'algoritmo che è opportuno far conoscere alla pubblica analisi, in modo che se ne possano scoprire eventuali punti deboli in tempo. Questo principio, noto come principio di Kerckhoff, che lo enunciò nel 1883, dice in sostanza che il metodo è più sicuro quanto è più difficile scoprire la chiave segreta conoscendo l'algoritmo che l'ha generata. Se ci pensate bene, nella vita di tutti i giorni l’algoritmo utilizzato viene sempre reso noto. Pensate a quando avete accesso all’Internet banking per accedere al vostro conto corrente: la prima cosa che noterete è che vi viene comunicato la tecnologia di sicurezza che viene adottata e i relativi algoritmi utilizzati.
![]() |
![]() |
Schema esplicativo del processo dinamico della crittografia |
Esistono due tipologie di algoritmi per crittografare:
· Gli algoritmi a chiave segreta o detti anche simmetrici, in cui la chiave per crittografare è la stessa utilizzata per decrittografare. Ciò vuol dire che la crittografia a chiave segreta utilizza un’unica chiave che deve necessariamente rimanere segreta e nota alle sole persone, o macchine, che si scambiano il messaggio. Anche perchè, ogni persona che ne entra in possesso è in grado di decifrare il messaggio. Il limite di questo tipo di crittografia consiste nel fatto che costringe gli interessati a comunicarsi la chiave, con il pericolo che possa cadere nelle mani sbagliate.
· Gli algoritmi a chiave pubblica o asimmetrici, in cui ogni parte in gioco nella comunicazione possiede due chiavi: una chiave privata che conosce solo il possessore, e una chiave pubblica che viene resa nota a tutti. Tali algoritmi sono detti anche asimmetrici perchè implementano due funzioni: una, diretta e molto semplice, per crittografare, e l’altra, inversa e generalmente molto complicata, per decrittografare. Il concetto di crittografia a chiave pubblica ha rivoluzionato il mondo della crittografia. La sua potenzialità è insita nel fatto che non è necessario che le parti in comunicazione si scambino alcuna chiave, così come avviene invece per la crittografia a chiave segreta. Ogni parte possiede infatti due chiavi: una pubblica e l’altra privata. Non è possibile risalire alla chiave privata partendo dalla chiave pubblica.
I due scenari di impiego della crittografia a chiave pubblica sono i seguenti:
· Il mittente cripta il messaggio con la propria chiave privata; il destinatario, che conosce l’identità di chi gli invia il messaggio, lo decripta utilizzando la chiave pubblica del mittente.
· Il mittente cripta il messaggio con la chiave pubblica del destinatario, che è noto a tutti; il destinatario riconosce che il messaggio è per lui e lo decripta con la propria chiave privata, nota solo a lui. Solo il destinatario, che conosce la chiave segreta corrispondente alla chiave pubblica utilizzata dal mittente, sarà in grado di leggere il messaggio.
I sistemi di crittografia possono essere divisi in tre grandi gruppi:
· I sistemi a repertorio prevedono la sostituzione delle parole del testo in chiaro con un codice equivalente ottenuto consultando un dizionario.
· I sistemi algebrici sono quelli che trasformano il messaggio in una sequenza di numeri e, sfruttando una base matematica, eseguono operazioni su tali numeri; in tal modo il messaggio codificato non sarà più composto da lettere ma da cifre.
· I sistemi letterali operano invece sul messaggio con operazioni di sostituzione, trasposizione e sovrapposizione. Vista la loro importanza storica, approfondiamo meglio questi algoritmi.
o Gli algoritmi di sostituzione si basano sulla semplice sostituzione di tipo uno-a-uno di tutti i caratteri che compongono il messaggio. Un esempio è quello in cui ogni lettera viene sostituita con il carattere dell’alfabeto che lo segue di n posizioni.
o Gli algoritmi di trasposizione prevedono che i caratteri del testo in chiaro vengano cambiati di posto secondo una chiave di cifratura e la regola dell’algoritmo. Consiste in pratica nel rimescolare i caratteri del testo in chiaro secondo una regola prestabilita.
o Seguendo l’approccio mediante algoritmi di sovrapposizione, il testo in chiaro viene sovrapposto, utilizzando la somma logica, alla chiave di cifratura, che avrà lunghezza pari al messaggio, utilizzando le rispettive codifiche binarie.