PROGRAMMIAMO
File - Confusione e diffusione
Confusione e diffusione

Per rendere illeggibile un messaggio le principali tecniche che si possono usare sono due:

  1. Confusione: si tratta di rendere confusa la relazione esistente fra il testo in chiaro e il testo cifrato. Ciò viene fatto tipicamente sostituendo un carattere con un altro, secondo una certa regola (algoritmo di cifratura).
  2. Diffusione: l'informazione contenuta nel testo in chiaro viene distribuita (sparpagliata) su tutto il testo cifrato, per esempio scambiando la posizione dei caratteri.

Per comprendere meglio il significato di questi termini, facciamo due semplici esempi di sistemi di cifratura elementari basati sulla confusione (cifrario di Cesare) e sulla diffusione (trasposizione a inferriata).

Il cifrario di Cesare

Uno degli algoritmi di cifratura più antichi a noi noti è il cosiddetto cifrario di Cesare. Si tratta di un metodo molto semplice, nel quale ogni carattere del testo originario viene sostituito con un carattere che si trova un certo numero di posizioni dopo nell'ordine alfabetico.

Supponiamo per esempio di voler nascondere il testo "sopra la panca la capra campa" usando il cifrario di Cesare. Per fare questo dobbiamo cambiare ogni carattere del testo in chiaro con un altro carattere. La chiave di cifratura, in questo caso, è il numero di trasposizioni, cioè di spostamenti che dobbiamo fare per cifrare il messaggio.

Per esempio, usando come chiave il numero uno, il nostro messaggio diventa:

sopra la panca la capra campa tpqsb mb qbodb mb dbqsb dbnqb

Come si vede ogni lettera nel testo originale è stata sostituita con la lettera successiva nell'ordine alfabetico. Usando invece come chiave di cifratura il numero due, ogni lettera viene sostituita con la lettera che si trova due posizioni dopo nell'alfabeto e dunque il testo diventa:

sopra la panca la capra campa uqrtc nc rcpec nc ecrtc ecorc

L'algoritmo di decifratura in questo caso utilizza la stessa chiave ma al contrario, sottraendo a ogni carattere il numero di posizioni indicate. Come si vede il cifrario di Cesare è un esempio di cifrario in cui le due chiavi sono identiche (cioè il parametro usato per cifrare il messaggio è lo stesso usato per decifrarlo - cifrario simmetrico).

Due rapide osservazioni sul cifrario di Cesare. Anzitutto la sostituzione è ciclica, cioè se la lettera da sostituire va oltre la Z (fine dell'alfabeto), si ricomincia dall'inizio. Per esempio usando come chiave di trasposizione il numero 8, il nostro testo diventa:

sopra la panca la capra campa awxzi ti xivki ti kixzi kiuxi

Si noti che la S è stata sostituita con una A, perché S + 8 supera la posizione della Z e dunque si ricomincia l'alfabeto dall'inizio.

Un'altra osservazione riguarda il fatto che nella nostra cifratura non abbiamo sostituito gli spazi (ovvero i blank). Questo fatto rende molto debole il nostro algoritmo, in quanto chi dovesse entrare in possesso del messaggio cifrato, saprebbe in questo modo la lunghezza di ogni singola parola. Tuttavia nulla vieta di cifrare anche i blank. Cioè può essere fatto applicando il cifrario di Cesare non alle lettere dell'alfabeto, ma ai codici ASCII delle lettere e sommando quindi una chiave di cifratura a ogni singolo codice ASCII. In questo modo tutti i caratteri, anche quelli non alfabetici, verrebbero cifrati di conseguenza.

Come si vede si tratta di un cifrario che utilizza la confusione come tecnica per rendere illeggibile il messaggio in chiaro.

Un esempio leggermente più evoluto del cifrario di Cesare è il cifrario per sostituzione. In questo caso ogni lettera viene sostituita con un'altra secondo una data tabella, come nell'esempio in figura:

Cifrario per sostituzione

La trasposizione a inferriata

Un altro algoritmo di cifratura molto semplice e di origina antichissima è la cosiddetta trasposizione a inferriata. Nella sua versione più semplice il testo in chiaro viene scritto su due righe, alternando un carattere su una riga e uno sull'altra. Per esempio dovendo cifrare

SOPRA LA PANCA LA CAPRA CAMPA

avremo:

S P A A A C L C P A A P
O R L P N A A A R C M A

A questo punto il messaggio cifrato viene scritto tutto di seguito:

S P A A A C L C P A A P O R L P N A A A R C M A

Per decifrarlo bisogna scriverlo su due righe e poi leggere un carattere su ciascuna riga.

Questo è chiaramente un metodo di cifratura per diffusione, in quanto la posizione dei caratteri nel messaggio cifrato cambia. Vi sono anche altre versioni più complesse di questo algoritmo, nelle quali il messaggio in chiaro deve essere scritto su più righe. In questo caso il numero di righe (es. 4) è la chiave di cifratura.

Una versione ancora più primitiva del cifrario a inferriata, usato a Sparta, prevedeva l'uso di un particolare bastone, detto scitala o scitale. Il testo veniva scritto in orizzontale su una pergamena tagliata a formare una striscia e avvolta strettamente intorno alla scitala. La pergamena veniva quindi srotolata e inviata al destinatario. Questi doveva possedere una scitala identica a quella di partenza, in modo tale da avvolgerci sopra la pergamena e leggere quindi il messaggio originario.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it