Crittografia/Cifrario di Cesare

Wikibooks, manuali e libri di testo liberi.
Copertina

Parte I: Introduzione alla Crittografia

  1. Introduzione alla crittografia
  2. Storia della crittografia
  3. Concetti fondamentali

Parte II: Progettare cifrari

  1. Principi base nella progettazione
  2. Piccoli segreti nascondono segreti più grandi
  3. algoritmi aperti e il valore del Peer-Review
  4. Pensa come un crittoanalista
  5. La matematica che devi conoscere
  6. La sicurezza informatica non è solo la cifratura
  7. Un codice non violato non è necessariamente non violabile

Parte III: Violare cifrature

  1. I principi base nel violare cifrari
  2. Debolezze
  3. Attacchi
  4. Come furono violate le cifrature storiche

Parte IV: Usare cifrature

  1. Applicazioni della crittografia
  2. Cifrature classiche
  3. Cifrature contemporanee
  4. Protocolli

Parte V: La crittografia e la società

  1. La natura mutevole dell'uso della crittografia
  2. Crittografia, governi e leggi
  3. Aspettative dell'utente normale
  4. Snake Oil

Parte VI: Miscellanea

  1. Possibilità future
  2. Glossario dei termini
  3. Letture addizionali
  4. Appendice A: background matematico

Il cifrario di Cesare è il più antico algoritmo crittografico di cui si abbia traccia storica. È un cifrario a sostituzione monoalfabetica in cui ogni lettera del testo in chiaro è sostituita nel testo cifrato dalla lettera che si trova un certo numero di posizioni dopo nell'alfabeto. In particolare, Cesare utilizzava uno spostamento di 3 posizioni (la chiave era dunque "3"), secondo il seguente schema:

Testo in chiaro     a b c d e f g h i l m n o p q r s t u v z
Testo cifrato       D E F G H I L M N O P Q R S T U V Z A B C

Per cifrare un messaggio, basta prendere ogni lettera del testo in chiaro e sostituirla con la corrispondente lettera della riga "testo cifrato". Per decifrare, viceversa. Ecco un semplice esempio:

Testo in chiaro: attaccare gli irriducibili galli alla ora sesta
Testo crittato:  DZZDFFDUH LON NUUNGAFNENON LDOON DOOD RUD VHVZD

Cifrare (e decifrare) il testo più volte non migliora la sicurezza, in quanto una rotazione di A posti seguita da una di B posti equivale ad una di A+B. Matematicamente parlando, la cifratura con le varie chiavi forma un gruppo.

Storia[modifica]

Il cifrario di Cesare prende il nome da Giulio Cesare, che lo utilizzò con una chiave 3 per proteggere un messaggio d'importanza militare per Cicerone. Al tempo era sicuro, perché i nemici spesso non erano in grado di leggere nemmeno un testo in chiaro, figuriamoci uno cifrato; inoltre, non esistevano metodi di crittanalisi in grado di rompere una simile cifra. Conosciamo altri che usarono questo cifrario prima di Cesare, dunque non fu certamente inventato da lui. Dalla scoperta dell'analisi delle frequenze da parte degli Arabi attorno all'anno 1000, tutti i cifrari di questo tipo sono diventati rompibili in modo facile, spesso banale. Nessuno è adatto per comunicazioni sicure, ora, e neanche negli ultimi 1000 anni. Un vecchio libro romano sulla crittografica, andato perso, sembra parlasse ampiamente dell'uso di simili cifrari. Lo conosciamo tramite riferimenti da parte di altri scritti arrivati fino a noi, come ad esempio Svetonio.

Rompere la cifratura[modifica]

Con un diagramma delle frequenze delle lettere nel testo in cifra e nella lingua originale del testo, è facile individuare il valore della chiave osservandone la disposizione. Ad esempio, nella lingua italiana, le lettere più frequenti sono le vocali E, A, O ed I, con lievi differenze, seguite dalle consonanti L, N, R, S e T, mentre sono rare B, F, Q e Z e praticamente assenti le lettere "straniere" J, K, Y, X e W; nella lingua inglese, invece, le lettere più frequenti sono E e T, mentre le più rare sono Q e Z. Anche i computer sono in grado di eseguire simili calcoli in modo banale.

Il cifrario di Cesare è molto più debole di uno in cui la corrispondenza delle lettere sia casuale, come succede in molti giochi enigmistici. I luoghi più comuni dove si può trovare questo cifrario è in giochi per bambini oppure nell'algoritmo ROT-13, che è fatto apposta per essere facile da decifrare.