0Pricing
Cryptology Academy · Lezione

ECB e CBC: pattern e IV

Dimostri l'attacco del pinguino a ECB e scopra perché è necessario usare CBC con un IV casuale.

ECB e CBC: pattern e IV è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 2 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 Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Benvenuto

ECB e CBC sono due modalità dei cifrari a blocchi. ECB è notoriamente insicura a causa della fuga di informazioni sui pattern. CBC con un IV casuale è molto più sicura. Esaminiamole in dettaglio.

Modalità ECB: Electronic Codebook

ECB crittografa ogni blocco in modo indipendente: Ci = AES(K, Pi). Lo stesso blocco di testo in chiaro produce sempre lo stesso blocco di testo cifrato. I blocchi sono identici all'interno dello stesso messaggio o tra messaggi diversi quando il contenuto corrisponde.

Il pinguino ECB

Il "pinguino ECB" è una dimostrazione classica: crittografare un'immagine PNG di Tux, il pinguino di Linux, con AES-ECB. Il risultato mantiene l'aspetto del pinguino: le stesse aree colorate vengono crittografate secondo gli stessi pattern.

Vulnerabilità di ECB: riproduzione dei blocchi

In modalità ECB, un attaccante può riordinare i blocchi del testo cifrato senza conoscere la chiave: - I blocchi sono indipendenti - Riordinare i blocchi → riordinare il testo in chiaro decifrato - Duplicare i blocchi → duplicare il contenuto - Eliminare i blocchi → eliminare il contenuto

Modalità CBC: Cipher Block Chaining

CBC applica l'operazione XOR tra ogni blocco di testo in chiaro e il blocco di testo cifrato precedente prima della crittografia: C0 = AES(K, P0 XOR IV) Ci = AES(K, Pi XOR C(i-1)) Lo stesso testo in chiaro in posizioni diverse produce un testo cifrato diverso.

Vettore di inizializzazione (IV)

L'IV è il "C(-1)" del primo blocco. Deve essere: - Casuale e univoco per ogni messaggio - Non segreto (trasmesso insieme al testo cifrato) - Mai riutilizzato con la stessa chiave Un IV prevedibile compromette la sicurezza di CBC.

Decrittografia CBC

Pi = AES_Dec(K, Ci) XOR C(i-1) P0 = AES_Dec(K, C0) XOR IV Nota: per decifrare il blocco i servono solo Ci e C(i-1). I blocchi possono essere decifrati in parallelo, a differenza della crittografia.

Attacco bit-flipping a CBC

L'inversione del bit i nel blocco Ci provoca: (1) un Pi alterato, (2) un'inversione prevedibile del bit i in P(i+1). Senza autenticazione, un attaccante può modificare bit specifici del testo in chiaro sapendo dove si trovano.

Attacco BEAST su TLS 1.0 (2011)

BEAST ha sfruttato l'uso di CBC con IV prevedibili da parte di TLS 1.0. L'ultimo blocco di un record veniva usato come IV per quello successivo. Dimostrato da Rizzo e Duong, ha portato all'aggiornamento dei browser a TLS 1.1 o versioni successive.

Perché CBC richiede l'autenticazione

La crittografia CBC senza un MAC consente attacchi bit-flipping e attacchi padding oracle. Combini sempre CBC con HMAC (Encrypt-then-MAC) oppure passi ad AES-GCM (AEAD integrata).

CBC in Python nella pratica

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes import os iv = os.urandom(16) key = os.urandom(32) cipher = Cipher(algorithms.AES(key), modes.CBC(iv)) enc = cipher.encryptor() ciphertext = enc.update(padded_plaintext) + enc.finalize()

Verifica rapida

Perché la modalità ECB rivela informazioni sulla struttura del testo in chiaro?

Riepilogo

ECB è pericolosa; CBC è migliore, ma richiede l'autenticazione. Ora studieremo la modalità CTR, che trasforma AES in un cifrario a flusso.

Domande Frequenti

La lezione «ECB e CBC: pattern e IV» è gratuita?

Sì — il testo completo di «ECB e CBC: pattern e IV» è 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 Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «ECB e CBC: pattern e IV»?

Dimostri l'attacco del pinguino a ECB e scopra perché è necessario usare CBC con un IV casuale. Eserciti Cryptology Academy 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 Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «ECB e CBC: pattern e IV»?

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 Cryptology Academy?

Sì. Ogni lezione Cryptology Academy 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

  1. Fondamenti dei cifrari a blocchi e padding
  2. ECB e CBC: pattern e IV
  3. Modalità CTR e comportamento dei cifrari a flusso
  4. GCM e cifratura autenticata
← Torna a Cryptology Academy