caricato da Utente4925

Crittografia

ELEMENTI DI CRITTOGRAFIA
La crittografia (parola che deriva dai termini greci kryptos-segreto e graphos-scrittura) è la tecnica con la quale
è possibile trasformare un messaggio da inviare ad altre persone per esigenze di segretezza cioè impedire che
un estraneo possa leggere il messaggio e comprenderne il contenuto.
L’unica persona che potrà capirne il contenuto sarà il destinatario ovviamente facendo l’operazione contraria.
Quindi si hanno due operazioni:
-
Crittografia
trasforma un testo in chiaro in un testo cifrato
-
Decifrazione
trasforma il testo cifrato nel testo originale
Affinchè il destinatario possa effettuare l’operazione contraria a quella effettuata dal mittente si utilizza un
apposito meccanismo detto chiave.
Il destinatario potrà decifrare il messaggio crittato solo se in possesso della stessa chiave utilizzata dal mittente
per crittografare il testo così come è possibile aprire un lucchetto chiuso da un’altra persona solo si ha una
copia della chiave utilizzata per chiuderlo.
La crittografia è una tecnica antica utilizzata soprattutto in ambito militare per evitare che il nemico possa
intercettare e comprendere i messaggi inviati.
Si distingue tra:
-
Crittografia classica
utilizzata prima dell’avvento delle nuove tecnologie
-
Crittografia moderna
utilizzata ad esempio nell’informatica per crittografare password oppure le
comunicazioni verso un sito di commercio elettronico come il numero di
una carta di credito, …
I principali algoritmi di crittografia si basano su due operazioni:
-
Sostituzione
sostituire ogni singolo carattere del messaggio in chiaro con un altro
-
Permutazione
mischiare i caratteri del messaggio
Vediamo degli esempi.
CIFRARIO DI CESARE
È un algoritmo a sostituzione.
Consiste nel sostituire ogni lettera del messaggio in chiaro con quella che la segue di tre posizioni nell’alfabeto.
Quindi la A deve essere cifrata con la D, la B con la E, e cos`ı via. Ovviamente, la regola di decifratura richiede
che si applichi la sostituzione inversa (D con A, E con B, etc).
Esempio:
La chiave in questo caso è il numero 3 e l’alfabeto è considerato circolare.
È possibile generalizzare il procedimento utilizzando come chiave un qualsiasi numero compreso tra 1 e 25.
ALGORITMO
Possiamo implementare l’algoritmo anche utilizzando una tabella come nella figura sottostante.
In base al valore della chiave è possibile con una semplice somma trovare il carattere da utilizzare (ad esempio
se la chiave è 3 allora la lettera g in posizione 6 viene sostituita dalla j in posizione 6+3=9).
Per decifrare sarà sufficiente fare l’operazione contraria (sottrazione).
Occorre ricordarsi che il cifrario è circolare quindi, ad esempio, la lettera x (23) è sostituita dalla a (23+3>25).
CIFRARIO DI VIGENERE
È un algoritmo a sostituzione polialfabetico.
Il cifrario:
-
adopera un quadro di caratteri, detto quadro di Vigenere
una parola chiave
e prevede la divisione del messaggio in chiaro in blocchi della stessa lunghezza della chiave
Le lettere della prima colonna corrispondono alle lettere della parola chiave mentre quelle della prima riga
corrispondono alle lettere del messaggio in chiaro.
L’operazione di cifratura di ogni blocco in cui il messaggio viene originariamente diviso, avviene al modo
seguente: ogni lettera del blocco in chiaro viene sostituita da quella all’interno del quadro che si trova nel
punto di intersezione della colonna individuata dalla lettera in chiaro con la riga associata alla lettera della
parola chiave che deve essere usata in quella posizione.
L’operazione di decifratura richiede ovviamente il passo inverso.
Esempio:
-
Testo in chiaro
Chiave
CODICE MOLTO SICURO
REBUS
Come prima operazione viene formata una stringa composta da una ripetizione della chiave fino alla lunghezza
del testo da cifrare (tutti gli spazi vengono eliminati).
Ad esempio la prima lettera del testo (C) deve essere trasformata utilizzando come chiave la lettera R.
Utilizzando la tabella e incrociando la colonna C con la riga R si ottiene la lettera T e così via.
ALGORITMO
È possibile implementare l’algoritmo creando e utilizzando la matrice di sostituzione.
L’algortimo dovrà chiedere la frase da cifrare e la parola chiave.
CIFRARIO A PERMUTAZIONE (O TRASPOSIZIONE)
Vediamo un esempio di algorimto a trasposizione colonnare.
Dato un testo in chiaro e una chiave numerica (numero intero) l’algoritmo procede con i seguenti passi:
-
Creazione di una tabella avente un numero di colonne pari alla chiave e un numero di righe sufficienti a
contenere tutte le lettere del testo da cifrare
Riempimento per righe della tabella con le lettere del testo in chiaro (le eventuali celle vuote vengono
riempite con un punto) - Il testo cifrato si ottiene leggendo la tabella per colonne
Esempio:
-
Testo in chiaro
Chiave
CODICE MOLTO SICURO
6
Si ottiene la seguente tabella:
C
O
M
S
.
O
D
O
I
.
I
L
C
.
C
T
U
.
E
O
R
.
Il testo cifrato sarà: C OOMS.DOI.ILC.CTU.EOR.
Un altro esempio di algoritmo a trasposizione colonnare prevede l’utilizzo di una parola chiave (invece di un
numero).
Viene sempre creata una tabella questa volta con un numero di colonne pari alla lunghezza della parola chiave.
Il testo cifrato si ottiene leggendo le colonne nell’ordine alfabetico delle lettere della parola chiave (che deve
avere tutte lettere diverse).
Esempio: messaggio= PIANTARE IL CAMPO DIETRO LA COLLINA e parola chiave=VETRINA
V
7
P
E
O
L
N
E
2
I
I
D
A
A
T
6
A
L
I
C
.
R
5
N
C
E
O
.
I N A
3 4 1
T A R
A M P
T R O
L L I
. . .
(nota: sono stati eliminati gli spazi)
Leggendo le colonne nell’ordine segnato (1-2-3…) si ottiene il testo cifrato:
RPOI. IIDAA TATL. AMRL. NCEO. ALIC. PEOLN