Puedo poner un límite superior a la fuerza: un atacante que puede observar un número de salidas consecutivas igual a la suma de las longitudes de las matrices individuales puede deducir los valores de las matrices y todas las salidas subsiguientes.
Considere el caso simple de tres matrices, con longitudes 2, 3 y 5: los primeros diez valores (las variables a
) y los valores ocultos que las generan (las variables x
), se muestran a continuación . Cada columna son los tres valores ocultos que están xored para producir el resultado visible.
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
Si lo giras hacia un lado, esto se parece mucho a un sistema de diez ecuaciones en diez incógnitas: el tipo de cosas que las personas aprenden a resolver en el álgebra introductoria. Aunque la duración del ciclo es 30, solo se necesitan 10 valores consecutivos para caracterizar completamente el generador y predecir el siguiente valor.
A medida que crece el número de matrices, también lo hace la disparidad entre la duración del ciclo y la facilidad para romperla: diez matrices de longitud 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 dan una longitud de ciclo de 6,469,693,230, pero solo requiere 129 valores para romper.
Es posible que un atacante que ya conoce el contenido de las matrices rompa la seguridad con menos valores, pero no estoy seguro de cómo se haría.