Crittografia/Attacco di forza bruta

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search
Copertina

Parte I: Introduzione alla Crittografia

  1. Introduzione alla crittografia
  2. Storia della crittografia
  3. Concetti fondamentali

Parte II: Progettare cifrari

  1. Principi base nella progettazione
  2. Piccoli segreti nascondono segreti più grandi
  3. algoritmi aperti e il valore del Peer-Review
  4. Pensa come un crittoanalista
  5. La matematica che devi conoscere
  6. La sicurezza informatica non è solo la cifratura
  7. Un codice non violato non è necessariamente non violabile

Parte III: Violare cifrature

  1. I principi base nel violare cifrari
  2. Debolezze
  3. Attacchi
  4. Come furono violate le cifrature storiche

Parte IV: Usare cifrature

  1. Applicazioni della crittografia
  2. Cifrature classiche
  3. Cifrature contemporanee
  4. Protocolli

Parte V: La crittografia e la società

  1. La natura mutevole dell'uso della crittografia
  2. Crittografia, governi e leggi
  3. Aspettative dell'utente normale
  4. Snake Oil

Parte VI: Miscellanea

  1. Possibilità future
  2. Glossario dei termini
  3. Letture addizionali
  4. Appendice A: background matematico

L'attacco di forza bruta (in inglese brute force) è uno dei modi per decifrare un testo che non ha una chiave (come nelle funzioni di hash). Gli hash infatti non possono essere decifrati. Il funzionamento è semplice da capire ma lungo e macchinoso da eseguire.

Progettare un attacco brute force[modifica]

Nella pratica un brute force compie le seguenti operazioni:

  1. Compone una possibile chiave
  2. Calcola l'hash della chiave composta
  3. Se l'hash calcolato è uguale all'hash di input termina e avvisa l'utente stampando la chiave.
  4. Se l'hash non era uguale ricomincia dal punto 1.

Comporre la chiave[modifica]

Nello specifico il programma dovrebbe produrre qualcosa tipo aaaa, aaab, aaac, ..., aaaz, ecc. Poiché uno dei difetti del brute force è il non poter sapere in anticipo la lunghezza della chiave da calcolare, solitamente si impongono dei limiti, tipo dai 5 ai 10 caratteri.

Calcolare l'hash[modifica]

Prova a calcolare l'hash di aaaa. Se ipotizziamo che l'hash da attaccare fosse 5f423b7772a80f77438407c8b78ff305 e l'algoritmo l'MD5, il programma dovrebbe calcolare hash sino ad avere una corrispondenza con 5f423b7772a80f77438407c8b78ff305 (che, per la cronaca, è l'hash di ciao).

Principali difetti del brute force[modifica]

I difetti principali del brute force sono:

  • Lentezza, dovuta alla necessità di creare chiavi di varie lunghezze ed al fatto che se la soluzione è xxxx sarà una delle ultime chiavi provate.