Tecniche di crittografia

per l’Internet Security

Riservatezza, integrità, autenticazione e non ripudiabilità
1) L’Internet Security

L’Internet Security è l’insieme delle misure utilizzate per proteggere i dati durante la loro trasmissione sulla rete Internet. È un concetto fondamentale per la diffusione capillare di Internet e dei servizi come e-commerce, home banking e l’uso di dispositivi mobili.

Un sistema sicuro deve rispettare requisiti precisi. Un riferimento classico è la Recommendation X.800 Security Architecture (ITU-T).
Requisiti di sicurezza (X.800)
  1. Autenticazione: verifica dell’identità dei soggetti coinvolti.
  2. Controllo accessi: solo i soggetti autorizzati accedono alle risorse.
  3. Confidenzialità (riservatezza): nessun terzo non autorizzato può leggere i dati.
  4. Integrità: i dati non devono essere alterati.
  5. Non ripudiabilità: nessuno può negare di aver partecipato a una comunicazione.
Violazioni tipiche
  • Attacchi passivi: sniffing / intercettazione
  • Falsificazione dell’identità: spoofing
  • Negazione della paternità: “non sono stato io”
  • Attacchi attivi: modifica/iniezione dei dati
  • DoS (Denial of Service): rifiuto di servizio
La tecnica principale per raggiungere Internet Security è la crittografia, spesso combinata con autenticazione, hash e certificati.
2) La Crittografia

La crittografia è l’insieme di procedure ideate per nascondere il significato di un messaggio. Per cifrare (crittografare) un testo servono principalmente: un algoritmo di cifratura (pubblico) e una chiave (segreta o privata, a seconda del sistema).

Principio di Kerckhoffs: la sicurezza di un sistema crittografico si basa esclusivamente sulla conoscenza della chiave, assumendo che l’algoritmo sia noto.
Classificazione: operazioni
  • Sostituzione: ogni simbolo diventa un altro simbolo
  • Trasposizione (permutazione): si riordina il testo
Classificazione: elaborazione
  • A blocchi: blocchi da N bit, elaborati separatamente
  • A flusso: elabora una quantità variabile di bit
Classificazione: chiavi
  • Simmetrica: una chiave condivisa
  • Asimmetrica: coppia di chiavi (pubblica/privata)

Algoritmi significativi (storici / educativi)
Cifrario di Giulio Cesare

Esempio di crittografia a sostituzione, basato sullo scorrimento delle lettere nell’alfabeto di un numero fisso di posizioni (la chiave).

Idea: “A” con chiave 3 diventa “D”, “B”→“E”, ecc.
Cifrario di Vigenère

Sostituzione “polialfabetica”: una chiave opera su un gruppo di lettere, rendendo una lettera sostituibile con lettere diverse a seconda della posizione.

Formula (versione didattica): n = a + b (mod 26)
One-Time Pad (OTP)

Evoluzione del Vigenère: cifrario “perfetto” se la chiave è casuale, lunga quanto il messaggio e usata una sola volta.

Il problema pratico è gestire chiavi lunghissime e distribuirle in modo sicuro.
Cifrario a matrice (trasposizione)

Esempio di crittografia a trasposizione: il testo viene scritto in una matrice e letto per colonne secondo un ordine determinato dalla chiave segreta.

Qui non si cambia “quali lettere”, ma l’ordine con cui appaiono.
3) Crittografia simmetrica e asimmetrica
Crittografia simmetrica (chiave segreta)

Usa una sola chiave, identica per mittente e destinatario: la stessa chiave cifra e decifra.

  • Molto veloce
  • Ottima per cifrare grandi quantità di dati
  • Problema principale: distribuzione sicura della chiave
Esempio didattico “perfettamente simmetrico”: XOR (cifra/decifra con la stessa operazione).
Crittografia asimmetrica (chiave pubblica)

Ogni soggetto possiede una coppia di chiavi: privata (segreta) e pubblica (distribuita).

  • Risoluzione del problema di scambio sicuro della chiave
  • Più lenta della simmetrica
  • Fondamentale per autenticazione, scambio chiavi e firme

Usi delle chiavi asimmetriche
Riservatezza

Il mittente cifra con la chiave pubblica del destinatario; solo il destinatario decifra con la chiave privata.

Identità (autenticazione)

Il mittente cifra con la propria chiave privata; chiunque può verificare usando la chiave pubblica del mittente.

Confid. + Auth + Integrità

In pratica si combinano le due coppie di chiavi (mittente e destinatario) o, più comunemente, si usano firme + cifratura simmetrica.

L’autenticità delle chiavi pubbliche è garantita dagli Enti Certificatori (Certification Authority), tramite certificati digitali standard X.509 (Recommendation X.509). In Italia gli enti sono accreditati da AgID.
4) DES e Triple DES (e altri algoritmi simmetrici)
DES (Data Encryption Standard)

È considerato il capostipite dei moderni algoritmi simmetrici. La sicurezza deriva dal ripetere molte volte operazioni di Confusion e Diffusion.

  • Blocchi da 64 bit
  • Chiave da 56 bit (256 chiavi possibili)
  • 16 round con funzione F (rete di Feistel)
  • Uso di S-Box (operazioni non lineari)
Triple DES (3DES)

Creato per ovviare alla vulnerabilità del DES, applicandolo tre volte con chiavi diverse.

  • 3 chiavi: 192 bit totali (168 effettivi)
  • Schema: Cifra(K1) → Decifra(K2) → Cifra(K3)
  • Decifratura: Decifra(K3) → Cifra(K2) → Decifra(K1)
Storicamente importante, ma oggi sostituito nella pratica da algoritmi più moderni (es. AES).

Altri algoritmi simmetrici significativi
Algoritmo Blocchi Chiavi Nota
IDEA 64 bit 128 bit Algoritmo robusto, storico
AES 128 bit 128 / 192 / 256 bit Standard attuale, veloce e molto sicuro (non Feistel)
CAST 64 o 128 bit 128 → 256 bit Segue lo schema Feistel
5) L’algoritmo RSA (crittografia asimmetrica)

RSA (Rivest, Shamir, Adleman) è il principale algoritmo a chiave asimmetrica. Si basa sulla difficoltà computazionale di fattorizzare un numero intero grande N, ottenuto dal prodotto di due numeri primi segreti p e q.

Base matematica (idea)
  • Si sceglie N = p · q (p e q segreti)
  • La chiave pubblica usa parametri derivati da N
  • La chiave privata permette l’operazione inversa
Funzioni (forma didattica)
  • Cifratura: c = mNPUB (mod N)
  • Decifratura: m = cNPRI (mod N)
RSA usa chiavi molto lunghe (1024, 2048, 4096 bit o più) ed è molto sicuro, ma è anche molto più lento della crittografia simmetrica (anche 100–1000 volte).
Soluzione ottimale (pratica): si cifra il contenuto con un algoritmo simmetrico (veloce) e si usa RSA solo per lo scambio sicuro della chiave simmetrica.
6) Firma digitale ed Enti Certificatori

La firma digitale è l’equivalente elettronico della firma autografa: garantisce integrità, autenticità e non ripudiabilità di un documento elettronico.

Passo 1: impronta (message digest)

Si calcola una impronta del testo tramite una funzione di hash.

  • Funzione unidirezionale (non invertibile)
  • Input di lunghezza arbitraria → output di lunghezza fissa
  • Una buona hash ha forte effetto valanga
Passo 2: firma con chiave privata

L’impronta viene crittografata con la chiave privata del mittente.

  • Il destinatario usa la chiave pubblica del mittente per verificare
  • Se l’impronta coincide → identità + integrità OK
  • Rende difficile negare l’operazione (non ripudio)
I certificati digitali per firma e autenticazione sono rilasciati dagli Enti Certificatori (CA) tramite certificati X.509.
Servizi collegati (esempi)

La firma digitale può essere apposta su file PDF, DOCX e XML. Servizi come PEC, SPID e CNS si basano anch’essi su meccanismi di certificazione e infrastrutture di fiducia.

Riepilogo rapido (da ripetere a voce in verifica)
  • Internet Security = protezione dei dati in transito: autenticazione, accessi, riservatezza, integrità, non ripudio (X.800).
  • Kerckhoffs: l’algoritmo può essere noto; la sicurezza sta nella chiave.
  • Simmetrica: veloce ma problema scambio chiave; Asimmetrica: chiave pubblica/privata, utile per scambio e firme.
  • DES/3DES storici; oggi standard simmetrico tipico: AES.
  • RSA è sicuro ma lento: si usa per scambio chiavi, non per cifrare grandi dati.
  • Firma digitale: hash + cifratura dell’impronta con chiave privata; verifica con chiave pubblica; CA e certificati X.509.