Algoritmi di crittografia simmetrica
Esplori AES, DES e 3DES: il funzionamento della crittografia a chiave condivisa, le lunghezze delle chiavi e quando usare ciascun algoritmo.
Algoritmi di crittografia simmetrica è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Come funziona la crittografia simmetrica
La crittografia simmetrica utilizza un'unica chiave condivisa sia per cifrare sia per decifrare i dati. Il mittente e il destinatario devono possedere la stessa chiave segreta, e mantenerla protetta è fondamentale: chiunque disponga della chiave può decifrare i dati. La crittografia simmetrica è veloce ed efficiente dal punto di vista computazionale, perciò è ideale per cifrare grandi volumi di dati. La sfida principale della crittografia simmetrica è la distribuzione delle chiavi: come possono due parti condividere una chiave in modo sicuro prima di disporre di un canale sicuro?
AES: lo standard di riferimento
Advanced Encryption Standard (AES) è oggi l'algoritmo di crittografia simmetrica più utilizzato, adottato da NIST nel 2001 come successore di DES. AES opera su blocchi da 128 bit e supporta tre dimensioni di chiave: AES-128, AES-192 e AES-256, dove il numero indica la lunghezza della chiave in bit. AES-256 offre il margine di sicurezza più elevato. AES viene utilizzato in TLS per HTTPS, nella crittografia completa del disco (BitLocker), nella cifratura dei file e praticamente in ogni applicazione moderna sicura. Se implementato correttamente, non presenta vulnerabilità pratiche note.
# Encrypting a file with AES-256 using OpenSSL
openssl enc -aes-256-cbc -pbkdf2 -in plaintext.txt -out encrypted.bin -k 'mysecretpassword'
# Decrypting
openssl enc -aes-256-cbc -pbkdf2 -d -in encrypted.bin -out decrypted.txt -k 'mysecretpassword'
# AES-256 key: 256 bits = 32 bytes = extremely secureDES e le sue debolezze
Data Encryption Standard (DES) è stato il primo algoritmo simmetrico adottato su larga scala, standardizzato nel 1977 con una chiave di 56 bit. Una chiave di 56 bit significa che esistono solo 2^56 chiavi possibili: nel 1999, un progetto di calcolo distribuito riuscì a violare un messaggio cifrato con DES in meno di 24 ore. Oggi DES è considerato crittograficamente compromesso e non deve mai essere utilizzato per nuovi sistemi. Rimane importante per l'esame Security+, perché capire il motivo del fallimento di DES (lunghezza della chiave insufficiente) rafforza la comprensione del motivo per cui gli algoritmi moderni come AES usano chiavi da 128 a 256 bit.
3DES: una soluzione transitoria
Triple DES (3DES o TDEA) è stato creato come soluzione provvisoria alla debolezza di DES, applicando l'algoritmo DES tre volte a ciascun blocco di dati. L'uso di tre chiavi diverse da 56 bit fornisce una lunghezza effettiva della chiave di 112 bit, considerata adeguata fino ai primi anni 2000. Tuttavia, 3DES è significativamente più lento di AES (applica la cifratura tre volte) ed è vulnerabile al birthday attack Sweet32 sulle connessioni di lunga durata. NIST ha ufficialmente deprecato 3DES nel 2023. Viene sostituito da AES in tutte le applicazioni.
Cifrari a blocchi e cifrari a flusso
Gli algoritmi simmetrici si dividono in cifrari a blocchi e cifrari a flusso. I cifrari a blocchi (AES, DES) cifrano porzioni di dati di dimensione fissa (un «blocco»): AES usa blocchi da 128 bit. I cifrari a flusso cifrano i dati un bit o un byte alla volta usando un keystream, risultando più veloci e adatti alle comunicazioni in tempo reale. RC4 era un tempo il cifrario a flusso dominante, ma oggi è compromesso e deprecato. ChaCha20 è il cifrario a flusso moderno preferito, utilizzato in TLS 1.3 e WireGuard per la sua velocità e sicurezza sui dispositivi privi di accelerazione AES.
Modalità operative: ECB, CBC e GCM
Il modo in cui un cifrario a blocchi gestisce più blocchi di dati è determinato dalla sua modalità operativa. ECB (Electronic Code Book) cifra ogni blocco in modo indipendente, producendo testi cifrati identici per blocchi di testo in chiaro identici: questo è evidente nella celebre dimostrazione dell'immagine del «pinguino ECB». Non è mai sicuro. CBC (Cipher Block Chaining) esegue lo XOR di ogni blocco di testo in chiaro con il blocco di testo cifrato precedente prima della cifratura, aggiungendo diffusione. GCM (Galois/Counter Mode) fornisce sia la cifratura sia l'autenticazione dell'integrità (AEAD) ed è la modalità preferita in TLS 1.3.
Lunghezza della chiave e sicurezza
La sicurezza di un algoritmo di cifratura simmetrica è direttamente correlata alla sua lunghezza della chiave. Chiavi più lunghe significano più combinazioni possibili e un lavoro esponenzialmente maggiore per un attaccante che esegue un attacco a forza bruta. Una chiave di 128 bit ha 2^128 combinazioni possibili: anche con un miliardo di miliardi di tentativi al secondo, un attacco a forza bruta richiederebbe più dell'età dell'universo. NIST raccomanda chiavi di almeno 128 bit per la cifratura simmetrica nei nuovi sistemi, mentre per le applicazioni che richiedono sicurezza a lungo termine contro le future minacce del calcolo quantistico sono preferibili chiavi da 256 bit.
# Key size comparison
# DES: 56-bit key = 72 quadrillion combinations (broken in hours)
# 3DES: 112-bit key = 5 x 10^33 combinations (adequate, but slow)
# AES-128: 128-bit key = 3.4 x 10^38 combinations (secure)
# AES-256: 256-bit key = 1.2 x 10^77 combinations (quantum-resistant)
# Generate a random AES-256 key
openssl rand -hex 32 # 32 bytes = 256 bitsLe sfide della gestione delle chiavi
La debolezza principale della cifratura simmetrica è la gestione delle chiavi. La cifratura è sicura solo quanto la chiave. Le sfide della gestione delle chiavi includono: distribuzione delle chiavi (condivisione sicura della chiave prima della comunicazione), archiviazione delle chiavi (protezione delle chiavi a riposo tramite moduli di sicurezza hardware o key vault), rotazione delle chiavi (modifica periodica delle chiavi per limitare l'esposizione) e distruzione delle chiavi (eliminazione sicura delle chiavi quando non sono più necessarie). Una gestione inadeguata delle chiavi ha causato più compromissioni della cifratura nel mondo reale delle debolezze matematiche degli algoritmi stessi.
AES nella pratica: cifratura di dischi e file
AES è l'algoritmo alla base degli strumenti di cifratura più comuni con cui i professionisti della sicurezza lavorano quotidianamente. BitLocker (Windows) e FileVault (macOS) usano AES-128 o AES-256 per cifrare interi volumi del disco, proteggendo i dati in caso di furto del laptop. VeraCrypt fornisce la cifratura dei dischi multipiattaforma. AES-256-GCM viene usato dai provider cloud (AWS S3, Google Cloud) per cifrare gli oggetti a riposo. Capire quale algoritmo è alla base di un prodotto consente di valutare se l'implementazione della cifratura è adeguata al livello di sensibilità dei dati.
# Check BitLocker encryption status on Windows
manage-bde -status C:
# Shows: Protection Status, Encryption Method (AES 256)
# Key Protectors: TPM, Password, Recovery Key
# Check if a macOS volume is FileVault encrypted
fdesetup status
# FileVault is On.Blowfish e Twofish: contesto storico
Altri due algoritmi simmetrici compaiono frequentemente nel materiale Security+. Blowfish (1993) è un cifrario a blocchi con chiave di lunghezza variabile (da 32 a 448 bit), progettato da Bruce Schneier come alternativa a DES di pubblico dominio. Sebbene sia veloce e gratuito, la dimensione dei blocchi di 64 bit lo rende vulnerabile agli attacchi del compleanno nelle sessioni lunghe. Twofish (1998) è stato finalista nella competizione AES e offre chiavi da 128, 192 e 256 bit e blocchi da 128 bit. Sebbene entrambi siano ancora sicuri, AES ha vinto la competizione NIST e domina le implementazioni moderne. Conoscere questi algoritmi aiuta a comprendere il contesto della scelta di AES.
Simmetrica e asimmetrica: quando usare l'una o l'altra
La cifratura simmetrica e quella asimmetrica svolgono ruoli complementari. La cifratura simmetrica (AES) è veloce e adatta a cifrare grandi quantità di dati. La cifratura asimmetrica (RSA) è lenta, ma risolve il problema della distribuzione delle chiavi. Nella pratica vengono combinate: la cifratura asimmetrica viene usata per scambiare in modo sicuro una chiave di sessione simmetrica, dopodiché la cifratura simmetrica gestisce tutto il trasferimento dei dati in blocco. Questo approccio ibrido è alla base di TLS (HTTPS), delle VPN e della cifratura delle email con PGP: offre sia la sicurezza dello scambio asimmetrico delle chiavi sia la velocità della cifratura simmetrica dei dati.
Verifica rapida
Verifichi la Sua comprensione dei concetti di CompTIA Security+ (SY0-701) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che: la cifratura simmetrica usa un'unica chiave condivisa sia per la cifratura sia per la decifratura; AES (128/192/256 bit) è lo standard attuale; DES (56 bit) è compromesso e deprecato; le modalità dei cifrari a blocchi (con GCM come modalità preferita) determinano come vengono concatenati i blocchi; e la gestione delle chiavi è la principale sfida operativa. Ora passeremo alla cifratura asimmetrica e alle coppie di chiavi.
Domande Frequenti
La lezione «Algoritmi di crittografia simmetrica» è gratuita?
Sì — il testo completo di «Algoritmi di crittografia simmetrica» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Cosa imparerò in «Algoritmi di crittografia simmetrica»?
Esplori AES, DES e 3DES: il funzionamento della crittografia a chiave condivisa, le lunghezze delle chiavi e quando usare ciascun algoritmo. Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?
Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Algoritmi di crittografia simmetrica»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?
Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Algoritmi di crittografia simmetrica
- Crittografia asimmetrica e coppie di chiavi
- Hashing e integrità dei dati
- Scambio di chiavi e crittografia ibrida