El principio de frenado de TinyJAMBU: una contraseña de autenticación ligera

La definición e introducción de TinyJAMBU se ha presentado en otra publicación de blog, y aquí solo la descripción y explicación de su principio de acción.
El enlace de la publicación de blog correspondiente es el siguiente: TinyJAMBU: Introducción a una criptografía ligera

inserte la descripción de la imagen aquí
En primer lugar, el cifrado es un marco de cifrado de bloque de un sistema de cifrado de flujo. Su modo de cifrado es un cifrado de bloques como un todo, pero la unidad de acción de la clave es de hecho una unidad de bits, por lo que es esencialmente un cifrado de flujo. Este es un sistema criptográfico común, que generalmente se divide en cuatro etapas: inicialización, procesamiento de datos asociados, cifrado y descifrado, y autenticación. El proceso de acción de cada etapa se muestra arriba.

Identidad clave - P-box

En primer lugar, una de las grandes e interesantes diferencias entre TinyJambu y otros cifrados es que apenas se puede ver el proceso de participación relativa de la clave en el diagrama del proceso de acción. Debido a que todos los sistemas clave en este cifrado están vinculados a la caja P, la caja P aquí es una operación de permutación que proporciona los efectos de Confusión y Difusión. El diseño de la caja P en sí se basa en LFSR no lineal. NLFSR (Registro de cambio de retroalimentación no lineal, Registro de cambio de retroalimentación no lineal) es un generador de secuencias, utilizado principalmente en criptografía, generación de números pseudoaleatorios y expansión en comunicación digital. tecnología de frecuencia NLFSR es una extensión no lineal del registro de desplazamiento de retroalimentación lineal (LFSR, registro de desplazamiento de retroalimentación lineal). A diferencia de LFSR, que usa funciones lineales, NLFSR usa funciones no lineales para manejar operaciones de desplazamiento. NLFSR funciona de manera similar a LFSR, pero introduce un componente no lineal en la función de retroalimentación. Un NLFSR consta de una secuencia de flip-flops (o bits) dispuestos en secuencia. Cada ciclo de reloj, cada flip-flop en el registro se desplaza una posición a la derecha. El flip-flop más a la derecha desplaza su valor fuera del registro, mientras que el flip-flop más a la izquierda recibe un nuevo valor de entrada. Este nuevo valor es una función no lineal basada en los otros valores de flip-flop en el registro. La introducción de componentes no lineales puede aumentar la seguridad de los criptosistemas, porque las funciones no lineales son más difíciles de predecir mediante ataques criptográficos como el análisis espectral y el criptoanálisis lineal. Sin embargo, el diseño y el análisis de los NLFSR son relativamente complejos, ya que las funciones no lineales pueden dar lugar a una mayor imprevisibilidad y confusión.
inserte la descripción de la imagen aquí
La figura anterior es el proceso NLFSR de la caja P. Se puede ver que el flujo de claves funciona aquí y su algoritmo de cifrado es el siguiente:
inserte la descripción de la imagen aquí
tenga en cuenta que, sin realizar este algoritmo una vez, se actualiza un valor de estado denominado estado y el valor de estado es de 128 bits. Este estado es crucial en el cifrado tinyjambu. Cada vez que se ejecuta un P-box, se llama ronda. P n significa la n-ésima ronda de ejecución del P-box. Dado que el valor de estado se actualiza cada vez que se ejecuta P-box, en otras palabras, Pn representa la operación de reemplazo de contraseña después de que P-box se ejecuta n veces.

inicialización

Tomando tinyjambu-128 como ejemplo, en la fase de inicialización primero necesitamos generar una clave y luego obtener un nuevo valor de estado. A este proceso lo llamamos fase de generación de claves. En la etapa de generación de claves, el valor de estado inicial de 128 bits se establece en 0 primero y luego se genera un valor de estado completamente nuevo a través de P 1024 .
La siguiente etapa es la generación de valor aleatorio Nonce, que necesita usar un parámetro importante llamado Framebits. Este parámetro es muy importante en TinyJambu, tiene un total de 4 valores, a saber, 1,3,5,7. En la etapa de generación de nonce, necesitamos usar Fb=1, luego usar P384 para actualizar el valor de estado y actualizar el método como se muestra en la figura a continuación y actualizar el valor de estado nuevamente.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Cabe señalar que, aunque aquí se mencionan la generación de nonce y la generación de claves, la generación de estos dos valores la proporciona esencialmente un protocolo externo. Tinyjambu no proporciona un protocolo especial para generar estos dos números. El enfoque de este cifrado es la actualización continua del valor de estado y la operación de texto sin formato y texto cifrado.

Procesamiento de datos vinculados

Los datos asociados son datos especiales que deben proporcionar autenticación pero no necesitan proporcionar protección de cifrado de datos en la comunicación, como la información de protocolo utilizada.
Para el procesamiento de estos datos, primero configuramos Fb en 3 en TinyJambu, luego usamos P384 para operar y actualizar el valor de estado. El último bloque (32 bits) del último valor de estado y el bloque correspondiente de los datos relevantes se someten a XOR, y el valor del último bloque de estado se actualiza. De esta forma, el valor actualizado por cada operación XOR es el último.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Cabe señalar que los datos asociados AD son un bloque de datos indeterminable, y la longitud puede variar cada vez que se transmiten los datos, y no es necesariamente divisible por 32 cada vez para AD, y puede haber un resto. En este momento, la diferencia con el cifrado de bloque es que, dado que el cifrado es esencialmente un cifrado de flujo, no usamos relleno para redondear el número entero, sino que realizamos la primera x del cuarto bloque de estado en cuántos bits quedan Haz xor individual por bits.

cifrado y descifrado

inserte la descripción de la imagen aquí
El proceso de encriptación es como se muestra arriba, el valor de Fb primero se establece en 5, y luego el valor del estado actual se actualiza a través de P1024, y luego el cuarto bloque del valor del estado se XOR con el bloque de texto sin formato, y el resultado se actualiza como el cuarto bloque de estado; después de que el tercer bloque de estado se XOR con el bloque de texto sin formato correspondiente, se actualiza como un bloque de texto cifrado. De acuerdo con el crecimiento del ciclo, cada bloque de texto sin formato obtendrá un bloque de texto cifrado correspondiente. De manera similar, debido a que es un cifrado de flujo, cuando la longitud del texto cifrado y el texto sin formato no es un múltiplo de 32, se realiza una operación OR exclusiva de uno a uno en los bits restantes, y no hay necesidad de usar relleno para llenar los datos.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
El proceso de descifrado es el siguiente: básicamente, el proceso es el mismo, la única diferencia es que el estado actualizado utiliza bloques de texto sin formato en lugar de bloques de texto cifrado. Debe entenderse bien a través de la figura a continuación, por lo que no entraré en detalles.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

etapa de certificación

En la fase de autenticación, primero configure Fb en 7 y luego proceda en dos pasos. Use dos funciones de P-box, una es 1024 y la otra es 384. Luego use el tercer bloque de estado como el valor de la etiqueta correspondiente, cada etiqueta es de 32 bits. Finalmente, combine las dos etiquetas para obtener una etiqueta de autenticación de 64 bits. Esta es también la etiqueta final que necesitamos.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
El método para proporcionar autenticación también es muy simple, es decir, después de que el receptor la recibe, calcula la etiqueta localmente y compara la etiqueta recibida. Si el resultado de la comparación muestra que las dos etiquetas son iguales, prueba que la integridad de los datos no es un problema; de lo contrario, los datos se han manipulado y esta transmisión se considera inválida.

proceso general de frenado

inserte la descripción de la imagen aquí
El proceso de frenado general se muestra en la figura anterior, donde como contraseña, es el cuadro P el que proporciona la clave. Hemos explicado los otros procesos en detalle arriba.
inserte la descripción de la imagen aquí
Además, además de TinyJambu128, hay dos versiones de 192 y 256. No son muy diferentes, excepto por la longitud de la clave y el cuadro P utilizado. Las diferencias correspondientes se muestran en la figura anterior.

Supongo que te gusta

Origin blog.csdn.net/Chahot/article/details/130470013
Recomendado
Clasificación