Passa al contenuto principale

5. Mixing (Miscelazione)

5. Mixing (Miscelazione)

Qual è la migliore strategia complessiva per ottenere numeri casuali non indovinabili in assenza di una fonte di entropia hardware forte e affidabile? È ottenere input da un numero di fonti non correlate e miscelarle con una forte funzione di miscelazione. Tale funzione preserverà l'entropia presente in qualsiasi delle fonti, anche se altre quantità combinate risultano essere fisse o facilmente indovinabili (bassa entropia). Questo approccio può essere consigliabile anche con una buona fonte hardware, poiché anche l'hardware può fallire. Tuttavia, questo dovrebbe essere valutato rispetto a un possibile aumento della probabilità di guasto complessivo dovuto alla complessità del software aggiunto.

Una volta utilizzate buone fonti, come alcune di quelle elencate nella Sezione 3, e miscelate come descritto in questa sezione, si ottiene un seed forte. Questo può quindi essere utilizzato per produrre grandi quantità di materiale crittograficamente forte come descritto nelle Sezioni 6 e 7.

Una forte funzione di miscelazione è quella che combina input e produce un output in cui ogni bit di output è una diversa funzione complessa non lineare di tutti i bit di input. In media, cambiare qualsiasi bit di input cambierà circa la metà dei bit di output. Ma poiché la relazione è complessa e non lineare, nessun particolare bit di output è garantito di cambiare quando viene cambiato un particolare bit di input.

Si consideri il problema di convertire un flusso di bit che è skewed verso 0 o 1 o che ha un pattern alquanto prevedibile in un flusso più corto che è più casuale, come discusso nella Sezione 4. Questo è semplicemente un altro caso in cui è desiderata una forte funzione di miscelazione, per miscelare i bit di input e produrre un numero più piccolo di bit di output. La tecnica data nella Sezione 4.1, utilizzando la parità di un numero di bit, è semplicemente il risultato di XOR successivo. Questo è esaminato come una funzione di miscelazione banale, immediatamente di seguito. L'uso di funzioni di miscelazione più forti per estrarre più della casualità in un flusso di bit skewed è esaminato nella Sezione 5.2. Vedere anche [NASLUND].