Fondamenti della crittoanalisi differenziale
Scopra come propagare le differenze tra input e output per attaccare cifrari con un numero ridotto di round.
Fondamenti della crittoanalisi differenziale è una lezione Cryptology Academy 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 Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.
Che cos'è la crittanalisi differenziale
La crittanalisi differenziale (Biham e Shamir, 1990) è un attacco con testo in chiaro scelto che analizza come le differenze nelle coppie di testi in chiaro si propagano attraverso un cifrario. Individuando differenze in input che producono differenze in output prevedibili con alta probabilità, l'attaccante recupera statisticamente alcuni bit della chiave.
Definizione di differenza
Per i cifrari basati su XOR: differenza ΔX = X XOR X'. Per i cifrari basati sull'addizione: differenza ΔX = X - X' mod 2^n. Le differenze XOR sono le più comuni, poiché XOR commuta con l'uso di chiavi XOR, facendo annullare gli effetti della pianificazione della chiave nelle coppie differenziali.
Coppia differenziale
Una coppia differenziale (P, P') ha differenza in input ΔP = P XOR P'. Dopo la cifratura si ottiene (C, C'), con differenza in output ΔC = C XOR C'. Un differenziale utile è ΔP → ΔC con alta probabilità p: molte coppie (P, P') con differenza ΔP producono la differenza in output ΔC.
Tabella di distribuzione differenziale della S-box
La DDT (Differential Distribution Table) conta, per ogni differenza in input Δx e differenza in output Δy, quanti input x soddisfano S(x) XOR S(x XOR Δx) = Δy. Dividendo per 2^n si ottiene la probabilità. Una buona S-box ha valore massimo della DDT pari a 2 (probabilità 1/2^{n-1}), quindi non presenta differenziali forti.
Percorso differenziale attraverso un cifrario
Per un cifrario a blocchi con r round, si cerca una sequenza ΔP → ΔU1 → ΔU2 → ... → ΔU_{r-1} in cui ogni transizione di round abbia una probabilità nota. Si moltiplicano le probabilità dei vari round: la probabilità complessiva è p = p1 * p2 * ... * p_{r-1}. L'attacco utilizza 2/p coppie per recuperare la chiave dell'ultimo round.
Attacco all'ultimo round
Con un differenziale di r-1 round ad alta probabilità, si raccolgono N = 2/p coppie di testi in chiaro. Per ogni candidata alla chiave dell'ultimo round K', si decifrano entrambi i cifrati per un round, si applica XOR ai risultati e si verifica se la differenza corrisponde a ΔU_{r-1}. La K' corretta corrisponde circa N/2 volte; le chiavi errate corrispondono circa N/2^{bit_size} volte.
Progettazione della S-box di AES
La S-box di AES è l'inverso moltiplicativo su GF(2^8), seguito da una trasformazione affine. Il valore massimo della sua DDT è 4 su 256, con probabilità differenziale ≤ 4/256 = 1/64 per S-box. AES ha 4 S-box per round, ma la progettazione Wide Trail garantisce che i percorsi differenziali completi abbiano probabilità inferiore a 2^{-100}.
Strategia Wide Trail
La progettazione Wide Trail di Joan Daemen, utilizzata in AES/Rijndael, definisce il numero di rami B di MixColumns. Qualsiasi percorso differenziale non banale attraverso un round attiva almeno B S-box attive. 4 round × 4 S-box per round garantiscono almeno 25 S-box attive, con probabilità < 2^{-100}.
Differenziali troncati
I differenziali troncati specificano solo una parte della differenza, ad esempio quali colonne sono attive, non i valori esatti delle differenze. Consentono attacchi su un numero maggiore di round, dove i differenziali completi sono troppo deboli. Sono utilizzati contro AES a round ridotti, SERPENT e altri cifrari SPN.
Differenziali impossibili
Un differenziale impossibile è una coppia (ΔP, ΔC) che non può mai verificarsi con alcuna chiave. Qualsiasi chiave che associ una coppia osservata (P, P') con questa differenza viene eliminata. Raccogliendo un numero sufficiente di coppie, tutte le chiavi errate vengono eliminate e rimane quella corretta.
Attacco boomerang
L'attacco boomerang (Wagner, 1999) combina due differenziali brevi in un attacco adattivo con testo in chiaro e testo cifrato scelti. Divide il cifrario in due metà, ciascuna con un differenziale breve ad alta probabilità, consentendo di attaccare un numero di round maggiore di quello raggiungibile con un singolo differenziale.
Verifica rapida
Qual è lo scopo della Differential Distribution Table (DDT) nella crittanalisi?
Riepilogo
La crittanalisi differenziale sfrutta la propagazione di differenze tra input e output con alta probabilità. AES la contrasta grazie alla sua S-box ottimizzata per la DDT e alla progettazione Wide Trail. Prossimo argomento: crittanalisi lineare e tabelle delle approssimazioni.
Impara Cryptology Academy con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 67
- Lezioni
- 261
Domande Frequenti
La lezione «Fondamenti della crittoanalisi differenziale» è gratuita?
Sì — il testo completo di «Fondamenti della crittoanalisi differenziale» è 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 «Fondamenti della crittoanalisi differenziale»?
Scopra come propagare le differenze tra input e output per attaccare cifrari con un numero ridotto di round. 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 1 di 4.
Quanto tempo richiede la lezione «Fondamenti della crittoanalisi differenziale»?
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
- Fondamenti della crittoanalisi differenziale
- Crittoanalisi lineare e tabelle di approssimazione
- Attacchi del compleanno e delle collisioni
- Meet-in-the-Middle e compromessi tempo-memoria