Tecniche di trasposizione
La maggior parte delle tecniche di crittografia classica si basa sul concetto della sostituzione di un simbolo di testo cifrato con un simbolo di testo in chiaro. Ma è interessante sapere che si può ottenere un mapping molto differente eseguendo una permutazione delle lettere del testo in chiaro. Questa tecnica è chiamata cifratura a trasposizione.
La tecnica puù semplice è chiamata Rail Fence (staccionata) in cui il testo in chiaro viene scritto come una squenza di diagonali e poi letta come una sequenza di righe. Per esempio, la staccionata del messaggio "ciao a tutti" sarà:
c a a u t i o t t i
andando ad avere un messaggio cifrato pari a:
caautiotti
Questo tipo di tecnica è estramemente facile da analizzare. Uno schema più complesso consiste nello scrivere il messaggio in un rettangolo, riga per riga e poi leggerlo colonna per colonna permutando l'ordine delle colonne. L'ordine delle colonne diviene quindi la chiave dell'algoritmo. Ecco un esempio:
plaintext: "messaggio segreto"
chiave : 3 2 1 5 4
m e s s a
g g i o s
e g r e t
o
cipher: sireggmgeoastsoe
Una cifratura a trasposizione pura è facile da riconoscere poichè presenta la stessa frequenza delle lettere del testo in chiaro originario. Per il tipo di trasposizione a colonne appena illustrato, l'analisi crittografica è piuttosto semplice e prevede la disposizione del testo cifrato in una matrice, giocando poi sulla posizione delle colonne. Può essere utile anche impiegare tabelle di frequenze di diagrammi e trigrammi.
La cifratura a trasposizione può essere resa significativamente più sicura eseguendo la trasposizione in più fasi. Il risultato è una permutazione più complessa che risulta difficile da ricostruire. Pertanto, se il messaggio precedente viene ri-crittografato utilizzando lo stesso algoritmo si avrà:
chiave : 3 2 1 5 4
S I R E G
G M G E O
A S T S O
Ecipher: rgtimssgaegooees
Per visualizzare il risultato di questa trasposizione, si designano le lettere del messaggio in chiaro originario con i numeri che indicano la loro posizione. Pertanto, con un messaggio di 16 lettere, la sequenza di lettere originaria sarà
01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16
Dopo la prima trasposizione si avrà
03 08 13 02 07 12 01 06
11 16 05 10 15 04 09 14
il quale presenta una struttura ancora troppo regolare. Ma dopo la seconda trasposizione si avrà una struttura molto meno strutturata e di conseguenza sarà più difficile da analizzare/attaccare.