El registro de desplazamiento con registro de desplazamiento de acarreo ( FCSR ) es un registro de desplazamiento de palabras de bits, un análogo aritmético de un registro de desplazamiento de retroalimentación lineal , se diferencia de él por la presencia de un registro de acarreo. Se utiliza para generar secuencias de bits pseudoaleatorias y también se utilizó para crear el cifrado de flujo F-FCSR .
En 1994 , Goresky y Klapper inventaron el registro de desplazamiento con retroalimentación de acarreo , ) inglésenCouture(Couture,ZamanyMarsagliaindependienteformadecomoasí L'Ecuyer en inglés ). Además, Clapper y Goresky querían usarlo para el criptoanálisis del generador sumador. Por otro lado, Marsaglia, Zaman, Couture, L'Ecuer tenían como objetivo encontrar un buen generador de números aleatorios para resolver problemas como el método cuasi-Monte Carlo . [una]
El FCSR tiene un registro de desplazamiento, una función de retroalimentación y un registro de acarreo. La longitud del registro de desplazamiento es el número de bits. Cuando es necesario extraer un bit, todos los bits del registro de desplazamiento se desplazan una posición hacia la derecha. [2]
En lugar de aplicar XOR a todos los bits en la secuencia de toque, estos bits se agregan entre sí y al contenido del registro de acarreo. El resultado se convierte en un nuevo ritmo. El resultado dividido por se convierte en el nuevo contenido del registro de acarreo. [3]
— valor del registro de acarreo
— nuevo estado del registro
— nuevo valor del registro de acarreo
Considere un ejemplo de un registro de 3 bits con derivaciones en la primera y segunda posición. Sea su valor inicial y el contenido inicial del registro de acarreo sea igual a . La salida será el bit más a la derecha del registro de desplazamiento . Otros estados del registro se muestran en la siguiente tabla:
Número de paso | registro de turnos | Llevar registro |
---|---|---|
0 | 0 | |
una | 0 | |
2 | 0 | |
3 | 0 | |
cuatro | 0 | |
5 | 0 | |
6 | una | |
7 | una | |
ocho | una | |
9 | una | |
diez | una | |
once | 0 |
El estado interno final (incluido el contenido del registro de acarreo) es el mismo que el segundo estado interno. A partir de este momento, la secuencia se repite cíclicamente con un periodo igual a . También vale la pena mencionar que el registro de acarreo no es un bit , sino un número. Su tamaño debe ser como mínimo , de donde es el número de ramas. En el ejemplo, solo hay tres ramas, por lo que el registro de acarreo es de un bit. Si hubiera cuatro ramas, entonces el registro de acarreo constaría de dos bits y podría tomar los valores o . [3]
A diferencia de LFSR , hay un retraso para FCSR antes de que ingrese al modo cíclico, es decir, comienza a generar una secuencia repetitiva cíclica. Dependiendo del estado inicial elegido, son posibles 4 casos diferentes: [3]
Empíricamente, puede verificar cómo termina un estado inicial particular. Necesito ejecutar FCSR por un tiempo. (Si es la cantidad inicial de memoria y es el número de bifurcaciones, entonces los ciclos son suficientes). Si el flujo de salida degenera en una secuencia infinita de ceros y unos por bit, ¿dónde está la longitud de FCSR, entonces este estado inicial no debería ser usado. [3]
Además, vale la pena señalar que un conjunto de claves generadoras basadas en FCSR será débil, ya que el estado inicial de FCSR corresponde a la clave del cifrado de flujo. [3]
El período máximo de FCSR es, donde es un número entero de la conexión. Este número define ramas y se define como:
- debe ser un número primo para el cual 2 es una raíz primitiva . [3] [1]
Así como el análisis LFSR se basa en la suma de polinomios mod 2 primitivos , el análisis FCSR se basa en la suma de números, llamados 2-ádicos . En el mundo de los números 2-ádicos, hay análogos para todo. De la misma manera que se define la complejidad lineal , también se puede definir la complejidad biádica. También hay un análogo 2-ádico para el algoritmo de Berlekamp-Massey . Esto significa que el número de posibles cifrados de flujo se ha duplicado al menos. Cualquier cosa que se pueda hacer con LFSR se puede hacer con FCSR. [3]
La configuración de Galois consta de:
En el tiempo t, el estado cambia de la siguiente manera:
1. , para todos , con y y donde representa el bit de realimentación.
2. Se actualiza el estado: , para todos y , para todos . [4] [5]
La configuración de Fibonacci consta de:
El estado cambia de la siguiente manera:
1 .;
2. estado de actualización: , . [4] [5]
Artículo principal: generador Stop-Go
Utiliza tres registros de desplazamiento de diferentes longitudes. Aquí, el Registro 1 controla la frecuencia de reloj de los registros 2 y 3, es decir, el Registro 2 cambia su estado cuando la salida del Registro 1 es igual a uno, y el Registro 3, cuando la salida del Registro 1 es igual a uno. igual a cero. [3]
Estos registros usan FCSR en lugar de algunos LFSR, y la operación XOR se puede reemplazar con un acarreo adicional.
Artículo principal: Cascada Gollmann
Este circuito es una versión mejorada del generador stop-go. Consiste en una secuencia de registros, el reloj de cada uno de los cuales está controlado por el registro anterior. Si la salida del Registro-1 en ese momento es 1, entonces el Registro-2 está cronometrado. Si la salida del Registro-2 en el momento es 1, entonces se cronometra el Registro-3, y así sucesivamente. La salida del último registro es la salida del generador. [3]
Hay dos formas de usar FCSR en osciladores en cascada:
Estos generadores utilizan un número variable de FCSR y/o LFSR y una variedad de funciones que combinan registros. La operación XOR destruye las propiedades algebraicas de la FCSR, por lo que tiene sentido usar esta operación para combinarlas. [3]
Los registros de desplazamiento con retroalimentación de acarreo pueden servir como base para crear varios generadores (algunos de los cuales se describen anteriormente), así como varios cifrados de flujo.
Artículo principal: F-FCSR .
F-FCSR es una familia de cifrados de flujo basada en el uso de un registro de desplazamiento de retroalimentación de acarreo (FCSR) con un filtro de salida lineal. La idea del cifrado fue propuesta por Terry Berger, François Arnault y Cédric Larade. F-FCSR se presentó a la competencia eSTREAM , se incluyó en la lista de ganadores de la competencia en abril de 2008, pero luego se reveló una debilidad criptográfica y en septiembre de 2008 F-FCSR se eliminó de eSTREAM.