Introduzione alla crittoanalisi

di Fabrizio Sinopoli

Pubblicato 4 Settembre 2008
Aggiornato 12 Febbraio 2018 20:49

logo PMI+ logo PMI+

Con il termine crittoanalisi si intende l’analisi di un testo cifrato nel tentativo di decodificarlo senza possedere la chiave, ossia di “effrangere” un sistema crittografico.

È caratterizzata da un’assunzione fondamentale, proposta per la prima volta da Dutchmann A. Kerckhoffs: il crittoanalista conosce l’algoritmo crittografico utilizzato.

Quindi il crittoanalista è libero di utilizzare tutti i mezzi a sua disposizione per risalire al testo in chiaro: un tentativo di “effrazione” prende il nome di attacco.

Il primo metodo, quello più semplice, detto di forza bruta, rompe i crittosistemi facendo una ricerca esaustiva nello spazio delle chiavi; esso, ovviamente, può essere applicato efficientemente solo quando lo spazio delle chiavi è piccolo.

In generale, si conoscono quattro tipi di attacchi principali, basati tutti quanti sull’assunzione sopra citata:

  • Ciphertext-only attack: il crittoanalista ha a sua disposizione i testi cifrati di un insieme di messaggi, tutti codificati con lo stesso algoritmo di cifratura. Lo scopo del crittoanalista è quello di recuperare il plaintext della maggior parte dei messaggi cifrati oppure la chiave di codifica;
  • Known-plaintext attack: il crittoanalista ha a disposizione sia il testo cifrato di un insieme di messaggi sia il testo in chiaro di questi. Lo scopo del crittoanalista è quello di recuperare la chiave oppure un algoritmo per decifrare qualsiasi messaggi cifrato con la stessa chiave;
  • Chosen-plaintext attack: il crittoanalista, oltre ad avere il testo cifrato di un insieme di messaggi e i relativi testi in chiaro, può scegliere un insieme di testi in chiaro da cifrare. In questo modo, il crittoanalista può scegliere il testo da cifrare in modo tale da recuperare il maggior numero di informazioni per dedurre la chiave. Lo scopo del crittoanalista è quello di recuperare la chiave oppure un algoritmo per decifrare qualsiasi messaggi cifrato con la stessa chiave;
  • Adaptive-chosen-plaintext attack: è un caso speciale del precedente. Il crittoanalista non solo ha la possibilità di scegliere “inizialmente” i messaggi da cifrare, ma può modificare le sue scelte dei plaintext “di volta in volta” sulla base dei risultati delle precedenti codifiche. Per questo motivo, l’attacco è di tipo adattativo.

Oltre questi attacchi, se ne conoscono altri tre:

  • Chosen-ciphertext attack: il crittoanalista ha a sua disposizione una serie di testi cifrati da decifrare e può utilizzare i relativi messaggi in chiaro. È efficiente se utilizzato per attaccare algoritmi di crittografia a chiave simmetrica;
  • Chosen-key attack: è un attacco poco utilizzato. Si basa sul fatto che il crittoanalista conosce la relazione tra chiavi differenti;
  • Rubber-hose attack: il crittoanalista recupera con la “violenza” la chiave di codifica;

Naturalmente, si possono fare assunzioni più realistiche oltre quello di Kerckhoffs. Esistono così oggi numerosi metodi di crittoanalisi: sulla pagina inglese di Wikipedia dedicata alla crittoanalisi si ha un elenco esaustivo.