Crittografia: un po' di storia

Metodi crittografici storici

Metodi crittografici usati nell'antichità.

  • La scitala lacedemonica, usata in Grecia fin dal 400 a.C., non era altro che un bastone (idealmente un cilindro), attorno al quale veniva avvolto a spirale una striscia di tessuto sul quale veniva scritto il messaggio (in direzione longitudinale al bastone). Una volta srotolato il tessuto, solo con un bastone dallo stesso diametro sarebbe stato possibile leggere correttamente il messaggio.

    scitala

  • Il disco di Enea consisteva in una superficie sulla quale venivano praticati 24 fori, ciascuno etichettato con una delle lettere dell'alfabeto greco, più uno centrale. Per scrivere il messaggio veniva preso un filo, fatto partire dal foro centrale e poi, fatto passare per ciascun foro corrispondente ad ogni lettera del testo del messaggio. Per decifrare il messaggio, non restava che srotolare il filo, prendendo nota di tutti i fori (lettere) passati, nell'ordine, e poi leggere il risultato al contrario.

  • Il cifrario Atbash, usato dagli ebrei; la prima lettera dell'alfabeto viene sostituita con l'ultima, la seconda con la penultima, e così via... Applicato al nostro alfabeto diventerebbe:

    ABCDEFGHIJKLM
    ZYXWVUTSRQPON

    Simile al precedente è l'Albam, in cui l'alfabeto viene diviso a metà e ogni lettera corrisponde a quella nella stessa posizione dell'altro gruppo (il risultato coincide con il rot-13, vedi dopo).

    ABCDEFGHIJKLM
    NOPQRSTUVWXYZ

    Infine, l'Atbah, che è un'ulteriore variante dei precedenti: prima l'alfabeto viene suddiviso in tre gruppi, poi a ciascuno di questi viene applicato l'analogo del codice Atbash, ristretto al sottogruppo. Il risultato, con il nostro alfabeto, è il seguente:

    ABCDEJK LMNSTUV
    IHGFERQPONZYXW

    N.B.: il risultato sarebbe nettamente migliore se le lettere fossero 24 (come nell'alfabeto greco) ottenendo così tre gruppi di otto lettere. Con l'alfabeto inglese di 26 lettere, invece, si ottengono gruppi di lettere dispari (rispettivamente 9, 9 e 8) con l'inconveniente che alcune lettere (E e N) rimangono immutate. Personalmente, adotterei la seguente variante, scegliendo tre gruppi rispettivamente di 8, 8 e 10 lettere:

    ABCD IJKL QRSTU
    HGFE PONM ZYXWV
  • Nel cifrario di Polibio ogni lettera viene sostituita con una coppia di numeri: l'indice di riga e di colonna della casella contenente la lettera nella tabella che segue. N.B.: L'alfabeto greco ha 24 lettere, per cui con una tabella 5x5 avanza una combinazione (che poteva essere usata, ad es. come segnale di fine messaggio); con l'alfabeto inglese di 26 lettere, invece, si rende necessario accoppiare due lettere, ad esempio k e q che hanno lo stesso suono (oppure ampliare la tabella a 6x6 e includere, eventualmente, altri caratteri).

    12345
    1ABCDE
    2FGHIJ
    3KQLMNO
    4PRSTU
    5VWXYZ
  • Il cifrario di Cesare consisteva nel sostituire ciascuna lettera con quella che la seguiva di tre posizioni nell'alfabeto latino. Applicato all'alfabeto inglese si ottiene:

    rot_n

    La generalizzazione di questo cifrario, consiste nel traslare le lettere dell'alfabeto di un numero n arbitrario di posizioni; questo cifrario viene indicato come rot-n, dove a n viene sostituito un numero opportuno (che, in pratica, è la chiave necessaria per poter decifrare il messaggio). Il cifrario di Cesare corrispondeva al rot-3. Da notare che ci sono 25 cifrari possibili, di questo tipo, in quanto traslando di 0 o di 26 posizioni, si ottiene che il testo rimane invariato.

  • sviluppi medievali (nulle, omofoni)
  • Leon Battista Alberti
  • Il cifrario di Beale venne impiegato da Thomas Jefferson Beale, nel 1822 per nascondere le indicazioni di un fantomatico tesoro sepolto da qualche parte nella Contea di Bedford, in Virginia (USA). Solo il secondo dei tre messaggi è stato decriptato, per cui la questione rimane tuttora un mistero irrisolto, anche se buona parte dei ricercatori propendono per uno scherzo (ovvero gli altri due testi potrebbero essere veramente casuali e non contenere alcun messaggio di senso compiuto!), considerando anche che la stessa esistenza di Beale è alquanto dubbia e che la descrizione della vicenda non deriva da testimonianze dirette ma da testi scritti successivamente.

    In ogni caso, il metodo (molto ingegnoso) per crittografare almeno il secondo messaggio, è stato il seguente: ad ogni lettera del testo in chiaro venne associato un numero corrispondente alla posizione di una parola, iniziante per quella lettera, ma appartenente ad un altro testo (in quel caso, la Dichiarazione d'Indipendenza degli Stati Uniti). La particolarità di questo metodo è che a ogni lettera, possono corrispondere diversi numeri, per cui per la decriptazione non funziona il classico metodo delle ripetizioni. Senza conoscere il testo usato come chiave, risulta praticamente impossibile risalire al messaggio originale.

  • seconda guerra mondiale: Enigma, Purple

Metodi crittografici odierni

Metodi odierni (matematica avanzata). Crittografia a chiave simmetrica:

"Se un sistema è veramente sicuro, lo è anche quando i dettagli divengono pubblici."

(Bruce Schneier)

Il cifrario di Vernam (One-Time-Pad)

Metodi semplici ma ancora validi Codice di Vernam.

Le reti di Feistel

Algoritmi simmetrici

Rete di Feistel.

IDEA
DES
Sviluppato dall'IBM nel lontano 1970, è divenuto lo standard mondiale per la protezione delle comunicazioni commerciali (informazioni e standard sul DES: NIST -- FIPS PUB 46-1, 46-2, 81). È stato craccato la prima volta nel 1998 mediante un elaboratore parallelo, il Deep Crack, in grado di generare a forza bruta tutte le possibili chiavi del DES, in un tempo massimo di 56 ore.
3DES
Rappresenta l'evoluzione del DES, e consiste nell'utilizzo ripetuto di 3 cifrari DES, con una chiave di 112 bit.
RC2
MARS
TwoFish
Blowfish
Algoritmo sviluppato nel 1993 da Bruce Schneier. È una sorta di DES rivisto, più veloce e semplice da implementare, con chiavi di dimensioni variabili, fino a 448 bit. Attualmente, non si conoscono attacchi efficaci verso questo algoritmo che, non essendo coperto da brevetti, viene utilizzato in molti sistemi operativi e programmi open-source.
Rijndael (AES)
Sviluppato da Joan Daemen e Vincent Rijmen, è l'algoritmo vincitore, nel 2000, della gara indetta dal NIST (National Institute of Standards and Technology) per la ricerca di un nuovo standard in crittografia (NIST -- AES FIPS 197). Utilizza chiavi di lunghezza variabile, a 128, 192 o 256 bit (o comunque multipli vari di 32 bit).

Algoritmi asimmetrici

Crittografia asimmetrica (chiave pubblica e privata). Ad esempio l'algoritmo RSA (Rivest, Shamir, Adleman, 1978, MIT).

Bibliografia

Articoli

  • Enrico Zimuel, Le basi della crittografia OpenSource e gli algoritmi simmetrici, Linux & C. n. 27 (2002), pp. 50-54.
  • Pierluigi Perri, Storia della crittografia, Hackers & C. n. 1 (2003) pp. 36-38 e Hackers & C. n. 2 (2003) pp. 44-47.

Libri

  • Bruce Schneier, Sicurezza Digitale, Tecniche Nuove, 2001.
  • Bruce Schneier, Applied Cryptography -- 2nd edition, John Wiley & Sons Inc., 1996.

Links

  Contenuti soggetti a licenza d'uso Creative Commons Attribution - Non commercial - Share Alike 3.0 Unported. Questo sito non contiene informazioni aggiornate con cadenza periodica regolare, pertanto non può essere considerato una testata giornalistica, ai sensi dell'Art. 62/2001.