Passa al contenuto principale

2. General Requirements (Requisiti Generali)

2. General Requirements (Requisiti Generali)

Oggi, un requisito di casualità comunemente incontrato è la scelta di una password utente, di solito una semplice stringa di caratteri. Ovviamente, una password che può essere indovinata non fornisce sicurezza. Per le password riutilizzabili, è desiderabile che gli utenti siano in grado di ricordare la password. Questo può rendere consigliabile l'uso di stringhe di caratteri pronunciabili o frasi composte da parole ordinarie. Ma questo influisce solo sul formato delle informazioni della password, non sul requisito che la password sia molto difficile da indovinare.

Molti altri requisiti provengono dall'arena crittografica. Le tecniche crittografiche possono essere utilizzate per fornire una varietà di servizi, inclusi riservatezza e autenticazione. Tali servizi si basano su quantità, tradizionalmente chiamate "chiavi", che sono sconosciute e non indovinabili da un avversario.

Ci sono persino utilizzi del protocollo TCP/IP per la casualità nella scelta dei numeri di sequenza iniziali [RFC1948].

In generale, gli esempi sopra illustrano anche due diversi tipi di quantità casuali che possono essere desiderate. Nel caso di password utilizzabili dall'uomo, l'unica caratteristica importante è che siano non indovinabili. Non è importante che possano essere composte da caratteri ASCII, quindi il bit più significativo di ogni byte è zero, per esempio. D'altra parte, per chiavi di lunghezza fissa e simili, si desiderano normalmente quantità che appaiono essere veramente casuali, cioè, quantità i cui bit supereranno i test statistici di casualità.

In alcuni casi, come l'uso della crittografia simmetrica con i one-time pad o un algoritmo come l'US Advanced Encryption Standard [AES], le parti che desiderano comunicare in modo confidenziale e/o con autenticazione devono tutte conoscere la stessa chiave segreta. In altri casi, dove vengono utilizzate tecniche crittografiche asimmetriche o "a chiave pubblica", le chiavi vengono in coppie. Una chiave della coppia è privata e deve essere mantenuta segreta da una parte; l'altra è pubblica e può essere pubblicata al mondo. È computazionalmente impossibile determinare la chiave privata dalla chiave pubblica, e la conoscenza della chiave pubblica non è di aiuto a un avversario [ASYMMETRIC]. Vedere i riferimenti generali [SCHNEIER, FERGUSON, KAUFMAN].

La frequenza e il volume del requisito per quantità casuali differiscono notevolmente per diversi sistemi crittografici. Con RSA puro, le quantità casuali sono richieste solo quando viene generata una nuova coppia di chiavi; successivamente, qualsiasi numero di messaggi può essere firmato senza ulteriore necessità di casualità. Il Digital Signature Algorithm a chiave pubblica ideato dal US National Institute of Standards and Technology (NIST) richiede buoni numeri casuali per ogni firma [DSS]. E la crittografia con un one-time pad (in linea di principio la tecnica di crittografia più forte possibile) richiede casualità di volume uguale a tutti i messaggi da elaborare. Vedere i riferimenti generali [SCHNEIER, FERGUSON, KAUFMAN].

Nella maggior parte di questi casi, un avversario può tentare di determinare la chiave "segreta" per tentativi ed errori. Questo è possibile fintanto che la chiave è abbastanza più piccola del messaggio che la chiave corretta possa essere identificata in modo univoco. La probabilità che un avversario abbia successo in questo deve essere resa accettabilmente bassa, a seconda dell'applicazione particolare. La dimensione dello spazio che l'avversario deve cercare è correlata alla quantità di "informazione" della chiave presente, in un senso teorico dell'informazione [SHANNON]. Questo dipende dal numero di diversi valori segreti possibili e dalla probabilità di ogni valore, come segue:

                         -----
\
Bit di informazione = \ - p * log ( p )
/ i 2 i
/
-----

dove i conta da 1 al numero di possibili valori segreti e p pedice i è la probabilità del valore numerato i. (Poiché p pedice i è inferiore a uno, il logaritmo sarà negativo, quindi ogni termine nella somma sarà non negativo.)

Se ci sono 2^n valori diversi di uguale probabilità, allora n bit di informazione sono presenti e un avversario dovrebbe provare, in media, la metà dei valori, o 2^(n-1), prima di indovinare la quantità segreta. Se la probabilità di valori diversi è disuguale, allora c'è meno informazione presente, e saranno richieste, in media, meno congetture da un avversario. In particolare, qualsiasi valore che un avversario può sapere essere impossibile o di bassa probabilità può essere inizialmente ignorato dall'avversario, che cercherà prima tra i valori più probabili.

Ad esempio, si consideri un sistema crittografico che utilizza chiavi a 128 bit. Se queste chiavi sono derivate utilizzando un generatore di numeri pseudo-casuali fisso che è inizializzato con un seed a 8 bit, allora un avversario deve cercare attraverso solo 256 chiavi (eseguendo il generatore di numeri pseudo-casuali con ogni possibile seed), non 2^128 chiavi come può inizialmente sembrare essere il caso. Solo 8 bit di "informazione" sono in queste chiavi a 128 bit.

Mentre l'analisi sopra è corretta in media, può essere fuorviante in alcuni casi per l'analisi crittografica dove ciò che è veramente importante è il fattore di lavoro per un avversario. Ad esempio, si assuma che ci sia un generatore di numeri pseudo-casuali che genera chiavi a 128 bit, come nel paragrafo precedente, ma che generi zero la metà delle volte e una selezione casuale dai rimanenti 2^128 - 1 valori il resto del tempo. L'equazione di Shannon sopra dice che ci sono 64 bit di informazione in uno di questi valori chiave, ma un avversario, semplicemente provando il valore zero, può violare la sicurezza della metà degli usi, anche se una metà casuale. Pertanto, per scopi crittografici, è anche utile guardare ad altre misure, come la min-entropia, definita come

   Min-entropia =  - log  ( massimo ( p  ) )
2 i

dove i è come sopra. Usando questa equazione, otteniamo 1 bit di min-entropia per la nostra nuova distribuzione ipotetica, in contrasto con 64 bit di entropia di Shannon classica.

È stato definito uno spettro continuo di entropie, a volte chiamato entropia di Renyi, specificato dal parametro r. Qui r = 1 è l'entropia di Shannon e r = infinito è la min-entropia. Quando r = zero, è solo log (n), dove n è il numero di probabilità non zero. L'entropia di Renyi è una funzione non crescente di r, quindi la min-entropia è sempre la misura più conservativa di entropia e di solito la migliore da utilizzare per la valutazione crittografica [LUBY].

La casualità testata statisticamente nel senso tradizionale NON è la stessa dell'imprevedibilità richiesta per l'uso di sicurezza.

Ad esempio, l'uso di una sequenza costante ampiamente disponibile, come la tabella casuale dalle CRC Standard Mathematical Tables, è molto debole contro un avversario. Un avversario che la apprende o la indovina può facilmente violare tutta la sicurezza, futura e passata, basata sulla sequenza [CRC]. Come altro esempio, utilizzare AES con una chiave costante per crittografare numeri interi successivi come 1, 2, 3, ... produrrà output che ha anche eccellenti proprietà di casualità statistica ma è prevedibile. D'altra parte, prendere lanci successivi di un dado a sei facce e codificare i valori risultanti in ASCII produrrebbe output statisticamente scadente con una componente imprevedibile sostanziale. Quindi si noti che superare o fallire i test statistici non rivela se qualcosa è imprevedibile o prevedibile.