Punto informatico Network
Canali
20080829205646

La casualità nella crittografia

18/09/2013
- A cura di
Sicurezza - Riprendiamo il nostro viaggio alla scoperta dell'affascinante mondo della crittografia. In questo appuntamento vedremo come reperire le fonti di casualità per la generazione di chiavi robuste.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

crittografia (1) .

Valutazione

  •  
Voto complessivo 4.5 calcolato su 41 voti
Il pezzo che stai leggendo è stato pubblicato oltre un anno fa. AvvisoLa trattazione seguente è piuttosto datata. Sebbene questo non implichi automaticamente che quanto descritto abbia perso di validità, non è da escludere che la situazione si sia evoluta nel frattempo. Raccomandiamo quantomeno di proseguire la lettura contestualizzando il tutto nel periodo in cui è stato proposto.

Abbiamo osservato, nei precedenti articoli, un primo approccio alla generazione delle nostre password ricorrendo a dei contenuti piuttosto semplici da assimilare e porre in atto. In questo articolo riprendiamo il discorso addentrandoci nell'argomento in modo scientifico, riconducendo pertanto le parole d'ordine alla casualità nella crittografia.

È necessario produrre casualità

Produrre casualità non è semplice, molte funzioni crittografiche infatti sono basate su combinazioni imprevedibili. La stringa che compone una chiave attinge da un generatore di numeri casuali, RNG (Random Number Generator), pertanto questi dovrà essere efficiente e ben implementato. Esistono ottimi modelli matematici in grado di referenziare la casualità, noi, per praticità di esposizione, affermeremo che la casualità dei dati è direttamente proporzionale alla sua imprevedibilità, pertanto, ricorrendo ad un generatore random inefficace verrà prodotta, inevitabilmente, una chiave altrettanto inefficace.

Shannon2.jpeg

La casualità di una stringa può essere stimata tramite entropia, nozione introdotta nel 1948 da Claude Shannon per misurare l'informazione. L'idea alla base della definizione di entropia è la riduzione dell'incertezza in merito all'informazione, così come segue: supponiamo di produrre una stringa avente 32 bit che sia interamente casuale, nel caso specifico parliamo di 32 bit di entropia, se invece suddetta stringa è in grado di assumere solamente 4 valori differenti ciascuno dei quali avente probabilità a identificarsi pari al 25%, parliamo di 2 bit di entropia.

Questo implica che l'entropia non tiene conto dei bit reali che formano la stringa, ma la certezza acquisita che si ha su di essa. Possiamo quindi affermare che la grandezza dell'entropia è data dalla conoscenza di un determinato valore, tanto più incrementa tale conoscenza, tanto più decrementa la sua entropia.

ADSL.jpg

Il discorso è più complicato quando si deve calcolare l'entropia in relazione a dei valori non conformi ad una distribuzione di probabilità uniforme. Nel caso specifico, la formula matematica per calcolare l'entropia di una variabile X è la seguente:

Formula.jpg

Dove P (X = x) costituisce la probabilità che X assuma il valore di x. Si badi bene che questa non è l'unica formula, esistono altre definizioni in merito all'entropia, utilizzate in base alla disciplina scientifica che vi ricorre.

Per stabilire la forza di una chiave si deve dunque misurare la sua entropia. Le chiavi non sono composte da numeri binari casuali, ma formate in una sequenza di simboli estrapolati da un alfabeto. Analizziamo il valore di entropia di un simbolo per i casi più comuni:

  • Solo numeri (3,32)
  • Numeri e lettere comprese tra A ed F (4)
  • Lettere minuscole (4,7)
  • Numeri e lettere maiuscole (5,1)
  • Lettere minuscole e maiuscole (5,7)
  • Numeri, lettere minuscole e maiuscole (5,9)
  • Simbolo ASCII (6,5)

I valori sopra definiti consentono di stimare la robustezza di una chiave con notevole precisione. Un buon livello di sicurezza è garantito da almeno 64 bit di entropia, mentre con 100 bit ed oltre si può ragionevolmente pensare di poter far fronte agli attacchi maggiormente utilizzati dai crittoanalisti. Oltre i 128 bit parrebbe non più necessario aumentare la dimensione della password in quanto la sicurezza non avrebbe alcun beneficio umanamente parlando. Per ottenere quindi 64 bit di entropia una stringa dev'essere formata da almeno 20 cifre oppure 16 lettere minuscole. Mescolando maiuscole e minuscole si potrebbe anche scendere a 12 lettere

Fonti di vera casualità

I computer dispongono di varie e differenti fonti di entropia, come ad esempio l'orario di ogni pressione dei tasti ed i movimenti del mouse. Altra opportunità è offerta dalle fluttuazioni temporali di accesso ai dischi rigidi in riferimento alle turbolenze che si verificano all'interno del dispositivo. Un altro metodo col quale ricavare entropia consiste nel cronometraggio della pressione di ogni singolo tasto, anche se questo sistema lascia alquanto perplessi: un buon dattilografo è in grado di garantire l'intervallo delle digitazioni entro limiti di prevedibilità piuttosto accentuati, senza contare che la frequenza di scansione imposta da una tastiera limita la risoluzione referenziata a tale misurazione. Neppure una digitazione effettuata a casaccio potrebbe assicurare una buona fonte di entropia, un microfono sarebbe infatti in grado di rilevare il rumore dei tasti ed in conseguenza fornire informazioni per cronometrare ciascuna digitazione.

Esistono dei processi fisici che si comportano in modo del tutto fortuito, infatti le leggi che governano la fisica quantistica esigono che il comportamento di taluni fenomeni debba essere totalmente casuale. Diverrebbero in tal modo, se sottoposti a specifiche misurazioni, un'ottima fonte di entropia, previo restando che la controparte potrebbe in qualche modo influenzare il flusso delle particelle quantistiche o giungere a carpire la sostanza delle rilevazioni. Teoricamente sono possibili attacchi che sfruttano il paradosso di Einstein-Podolsky-Rosen per neutralizzare le fonti di entropia presenti in questo campo.

Mega5.jpg

Altra teoria molto affascinante è vincolata alla misurazione di entropia in relazioni al corpo umano, dal battito delle ciglia a tutta una serie di processi relativi al funzionamento dei vari organi: nel corso delle 24 ore il nostro corpo è in grado di generare fonti di casualità estremamente interessanti. Il perfezionamento dei robot e lo sviluppo di macchine androidi in un prossimo futuro potranno forse garantire una inesuauribile fonte di entropia.

Difficoltà ad utilizzare la casualità

Abbiamo visto che non è affatto semplice riuscire ad identificare fonti di genuina casualità, inoltre sorgono ulteriori problemi quando giunge il momento di sfruttare tecnicamente tali opportunità. Ciò e dovuto, tra l'altro, all'incertezza legata al momento in cui un processo casuale si verifica, come ad esempio la temporizzazione ricavata dalla digitazione dei tasti: diverrebbe questo un problema senza soluzione se l'applicazione risiedesse in un server Web e quindi su un dispositivo non connesso ad una tastiera. Il caso descritto è la logica conseguenza del fatto che, i dati realmente casuali, non sempre sono disponibili e talvolta, alfine di sfruttare al meglio determinate condizioni, è necessario rimanere in attesa.

Entropia.jpg

Esistono anche altri problemi correlati ai generatori fisici di casualità, cioè il fatto che il loro funzionamento subisca delle interruzioni più o meno brevi o addirittura cessino totalmente la propria attività. Un generatore potrebbe divenire prevedibile o deteriorarsi molto più facilmente rispetto ad altre componenti di un computer, pertanto non è in grado di garantire quell'affidabilità necessaria al nostro specifico caso. Ciò introduce la reale difficoltà nel valutare correttamente l'entropia legata ad un particolare evento di natura fisica, a meno che non ci si affidi ad un generatore che sfrutti dell'hardware appositamente progettato.

Mariano Ortu vi saluta dalla terra dei nuraghi.

Iscriviti gratuitamente alla newsletter, e ti segnaleremo settimanalmente tutti i nuovi contenuti pubblicati su MegaLab.it!

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2019 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.2 sec.
    •  | Utenti conn.: 18
    •  | Revisione 2.0.1
    •  | Numero query: 45
    •  | Tempo totale query: 0.05