6.2. Cryptographically Strong Sequences (Sequenze Crittograficamente Robuste)
6.2. Cryptographically Strong Sequences (Sequenze Crittograficamente Robuste)
Nei casi in cui DEVE essere generata una serie di quantità casuali, un avversario PUÒ apprendere alcuni valori nella sequenza. In generale, gli avversari NON DOVREBBERO essere in grado di prevedere altri valori da quelli che conoscono.
La tecnica corretta è iniziare con un seed casuale robusto, compiere passi crittograficamente robusti da quel seed [FERGUSON, SCHNEIER], e non rivelare lo stato completo del generatore negli elementi della sequenza. Se ogni valore nella sequenza può essere calcolato in modo fisso dal valore precedente, allora quando qualsiasi valore viene compromesso, tutti i valori futuri possono essere determinati. Questo sarebbe il caso, per esempio, se ogni valore fosse una funzione costante dei valori usati precedentemente, anche se la funzione fosse una funzione message digest molto robusta e non invertibile.
(Si noti che se una tecnica per generare una sequenza di valori di chiave è abbastanza veloce, può essere banalmente usata come base per un sistema di riservatezza. Se due parti usano la stessa tecnica di generazione di sequenza e iniziano con lo stesso materiale seed, genereranno sequenze identiche. Queste potrebbero, per esempio, essere XOR'ate a un'estremità con i dati inviati per cifrarli, e XOR'ate con questi dati alla ricezione per decifrarli, grazie alle proprietà reversibili dell'operazione XOR. Questo è comunemente chiamato cifrario a flusso semplice.)