Tipicamente la situazione è quella in cui abbiamo due attori: Alice e Bob. In mezzo alle loro comunicazioni viene insertio “Eve”. Questo nome è scelto per assonanza ad eavesdropper, letteralmente “colui il quale origlia”. Fino all’avvento della crittografia asimmetrica l’unica cosa importante era la confidenzialità del messaggio in tutti i modi. Con la crittografia asimmetrica si sono aperti altri scenari come l’autenticazione, ovvero: essere sicuri di chi è l’interlocutore dall’altro capo della comunicazione. Altri requisiti sono l’integrità del messaggio e il non ripudio del messaggio.

Principi di Kerckhoff

La segretezza deve essere unicamente la chiave e non il procedimento! Il fatto che gli algoritmi siano noti non è oggetto di insicurezza o fragilità.

I due tipi di crittografia sono: a chiave privata (simmetrica) e a chiave pubblica (asimmetrica). Per secoli si è lavorati in maniera simmetrica, ovvero Alice e Bob condividono la stessa identica chiave. Questo pone dei problemi: Alice e Bob devono scambiarsi la chiave su un canale sicuro il prima di cominciare le comunicazioni.

Pensiamo ad altri contesti oltre quello militare: il commercio elettronico. Come potremmo andare a gestire il tutto senza crittografia asimmetrica? Come si potrebbe fare? Non si può banalmente, dobbiamo per forza avere un sistema di chiavi pubbliche. In questo sistema, vedi corso di crittografia applicata, ho due chiavi: pubblica e privata.

Il problema più annoso è lo scambio sicuro di chiavi, per quel che riguarda lo scambio di chiavi simmetriche. Nel caso di crittografia asimmetrica il guaio più grande è che è davvero onerosa e lento e non abbiamo supporto hardware per andare a fare queste cose (in particolare per messaggi lunghi, se no impazzisci). Per la simmetrica invece è molto leggera e snella.

Per la questione della distribuzione delle chiavi ci rifacciamo al sistema PKI, il web of trust, etc. …

Cifrari Classici

  1. Cesare: la permutazione consiste in uno shift di k posizioni in avanti. La chiave è k (e deve rimanare segreta auspicabilmente) e -k mi permette di ottenere la chiave di decifrazione. Il numero di chiavi è la cardinalità dell’alfabeto a cui facciamo riferimento. Definito anche come cifrario mono-alfabetico. Fatto interessante: andare di forza bruta potrebbe non avere veramente senso in tanti casi, perché abbiamo magari 30! permutazioni da andare a testare. Quindi sarebbe interessante andare invece a usare operazioni di critto analisi come analisi di frequenza; questo è soprattutto efficace quando sappiamo la lingua di origine del testo cifrato. Questa operazione la si fa spesso con un testo di riferimento con cui si fa una stima delle frequenze e poi si cerca di usare questo come modello per il testo cifrato.
  2. Vigenère: l’idea è simile al cifrario di Cesare, per cui praticamente prendiamo una sequenza di caratteri e lo usiamo come chiave per fare delle permutazioni sul testo in chiaro. Sommiamo letteralmente il carettare del testo in chiaro con quello della chiave ottenendo il testo cifrato. Se ci vogliamo andare a calcolare come un testo preso da un alfabeto di 26 lettere e di lunghezza k, possa cambiare in base ad una cahive di lunghezza k, dobbiamo creare una tabella con $26^k$ entries. Per quel che riguarda gli attacchi che cosa possiamo fare? Tecnicamente è matematicamente inattaccabile, ma un primo attacco potrebbe partire dalla scoperta della lunghezza della chiave. Sicuramente sfruttando un po’ di analisi di frequenze potremmo andare a capire se ci sono caratteri ripetuti che significano che in quel punto il testo era uguale e xorava con la stessa porzione di chiave. Possiamo anche usare un attacco a dizionario per cercare di andare a individuare una papibile chiave che sia all’interno di un determinato alfabeto, lingua e con una determinata lunghezza k.
  3. One-Time Pad: qui praticamente siamo in una situazione simile a quella del cifrario di Vigenere. La differenza e’ che in questo caso la chiave ha la stessa lungehzza del testo in chiaro. La cosa importante e’ che ogni bit della chiave abbia un valore che sia in maniera uniformemente equiprobabile o 0 o 1. Un altro problema e’ che se andiamo a cifrare la stessa porzione di testo con la stessa porzione di chiave possiamo andare ad esporre il contenuto del testo in chiaro (soprattutto ad attacchi di tipo analisi di frequenza).

Obiettivi di Sicurezza

Possiamo dare delle definizioni migliori:

Tipologie di Cifrari: cifrario a blocchi