Posso mettere un limite superiore alla forza: un attaccante che può osservare un numero di uscite consecutive uguale alla somma delle lunghezze dei singoli array può dedurre i valori degli array e tutti gli output successivi.
Considera il caso semplice di tre array, con le lunghezze 2, 3 e 5: i primi dieci valori (le variabili a ), ei valori nascosti che li generano (le variabili x ), sono mostrati sotto . Ogni colonna è i tre valori nascosti che sono xored per produrre l'output visibile.
x1 x2 x1 x2 x1 x2 x1 x2 x1 x2
x3 x4 x5 x3 x4 x5 x3 x4 x5 x3
x6 x7 x8 x9 x0 x6 x7 x8 x9 x0
-----------------------------
a0 a1 a2 a3 a4 a5 a6 a7 a8 a9
Se lo giri di lato, sembra molto simile a un sistema di dieci equazioni su dieci incognite, il genere di cose che la gente impara a risolvere nell'algebra introduttiva. Sebbene la lunghezza del ciclo sia 30, sono necessari solo 10 valori consecutivi per caratterizzare completamente il generatore e prevedere il valore successivo.
Man mano che aumenta il numero di array, aumenta anche la disparità tra la durata del ciclo e la facilità di interruzione: dieci array di lunghezza 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 indicano una durata del ciclo di 6.469.693.230, ma richiede solo 129 valori da interrompere.
Potrebbe essere possibile per un utente malintenzionato che conosce già il contenuto degli array di rompere la sicurezza con un numero inferiore di valori, ma non sono sicuro di come sarebbe fatto.