Cryptology Academy · Lezione

Fondamenti della crittoanalisi differenziale

Scopra come propagare le differenze tra input e output per attaccare cifrari con un numero ridotto di round.

Lezione 1 di 413 passaggi

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.

Gratis per iniziare

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

  1. Fondamenti della crittoanalisi differenziale
  2. Crittoanalisi lineare e tabelle di approssimazione
  3. Attacchi del compleanno e delle collisioni
  4. Meet-in-the-Middle e compromessi tempo-memoria
← Torna a Cryptology Academy