TPSIT: crittografia per la sicurezza dei dati: cifrario a sostiuzione/ trasposizione

Pierre Marcel

L’e-business ha la necessità che ogni operazione avvenga in maniera sicura. In maniera analoga con l’avvento dei servizi in cloud, non è possibile che i dati che vengono trasmessi nella rete possano essere letti da persone diverse dal destinatario.

Per questo motivo è nata l’esigenza di rendere visibili i dati solo alla persone a cui stati indirizzati: tale processo si chiama crittografia.

Il messaggio che può essere letto da tutti si chiama testo in chiaro. Tramite i metodi di cifratura (codifica) si trasforma il testo in chiaro in un testo cifrato in cui l’informazione viene codificata e resa illeggibile. L’operazione inversa, chiamata decifrazione (decodifica), serve per ricostruire il testo in chiaro a partire dal testo cifrato.

Per cifrare e decifrare un messaggio di utilizzano opportuni algoritmi.

Cifrario a sostituzione

E’ il cifrario più antico e più facile da decodificare pur non conoscendo la chiave. Si racconta che esso venne usato da Giulio Cesare per informare i propri centurioni delle operazioni belliche.

Esso consiste nel sostituire la lettera del messaggio con la lettera posta alla n-esima posizione successiva. La n-esima posizione è chiamata chiave.

Ad esempio:

la seguente tabella evidenzia la posizione delle lettere dell’alfabeto che ci serve poi nella codifica utilizzando la chiave.

0 1 2 3 4 5 6 7 8 9
A B C D E F G H I L
10 11 12 13 14 15 16 17 18 19
M N O P Q R S T U V
20
Z

Uso la chiave 4, la tabella precedente diventa

0 1 2 3 4 5 6 7 8 9
E F G H I L M N O P
10 11 12 13 14 15 16 17 18 19
Q R S T U V Z A B C
20
D

Si noti che per voler implementare in programmazione l’algoritmo della crittografia a sostituzione si indica lo 0 come prima lettera.

L’alfabeto è formato da 21 lettere.

Si usa l’algebra modulare per effettuare la crittografia del messaggio.

Il calcolo che si deve effettuare è sempre il seguente:

(i+k) mod 21 = n

i  posizione della lettera da cifrare

k valore chiave

n posizione della lettera

Se adesso voglio mandare il messaggio:

CIAO usando chiave 4 il messaggio nel trasportato sarà:

GOES

in questo caso sia il mittente che il destinatario devono conoscere la chiave di decodifica.

Cifrario a trasposizione

In crittografia un cifrario a trasposizione è un metodo di cifratura in cui le posizioni occupate dalle unità di testo in chiaro (che in genere sono lettere o gruppi di esse) sono cambiate secondo un determinato schema, così che il testo cifrato costituisca una permutazione del testo in chiaro.

In pratica il messaggio viene spezzato ed incolonnato secondo la lunghezza di una parola chiave. Un esempio è dato dal cifrario a

trasposizione colonnare

Si deve mandare il messaggio: ACQUISTARE TITOLI FAC

Si usa la parola CIAO come chiave:

2 3 1 4
C I A O
A C Q U
I S T A
R E T I
T O L I
F A C  Z

Si invia questo messaggio:

(Si noti che si è inserita una lettera fasulla per riempire esattamente tutti gli spazi)

QTTLCAIRTFCSEOAUAIIZ

ossia si manda il messaggio per colonne che sono ordinate seguendo l’ordine alfabetico delle lettere che compongono la parola chiave.

Per decifrarlo si contano il numero di lettere, in questo caso 19, si divide per il numero delle lettere che compongono la parola chiave, in questo caso 4. E si divide in maniera opportuna il messaggio.

20:4=5 e non si tiene conto del resto.

Divido il messaggio in blocchi di 4

QTTLC AIRTF CSEOA UAIIZ

conoscendo la parola CIAO e sapendo che:

blocco 1  –> lettera A

blocco 2–> lettera C

blocco 3–> lettera I

blocco 4–> lettera O

metto in colonna i singoli bocchi ed ho il messaggio inviato.

Anche in questo caso il mittente ed il destinatario devono conoscere la chiave.

Vi sono altri tipi di cifrari a trasposizione:

  • a staccionata
  • a percorso usata durante la guerra di secessione americana
  • a trasposizione doppia usata durante la prima guerra mondiale dai tedeschi ma violato dai francesi, usato anche durante la seconda guerra mondiale dalla resistenza olandese e francese e dai gruppi di sabotatori inglesi. Furono usati moltissimo prima dell’avvento di un nuovo cifrario chiamato VIC.
  • a trasposizione Myszkowski
  • a trasposizione disturbata
  • a griglia

P.S. Ecco un esempio molto schematico di realizzazione del cifrario di Cesare implementato in C++:



Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *