Los cifrados en bloque BEAR y LION fueron inventados por Ross Anderson y Eli Biham mediante la combinación de un cifrado de flujo y una función de cifrado hash . Los algoritmos utilizan un tamaño de bloque variable muy grande , del orden de 2 13 a 2 23 bits o más [ aclarar ] . Ambos son cifrados Feistel generalizados (alternos) de 3 rondas , [1] utilizando la función hash y el cifrado de flujo como funciones redondas. BEAR usa la función hash dos veces con teclas independientes, y el cifrado de flujo una vez. LION usa el cifrado de flujo dos veces y la función hash una vez. Los inventores demostraron que un ataque contra BEAR o LION que recupera la clave rompería tanto el cifrado de flujo como el hash.
El cifrado Beaufort, creado por Sir Francis Beaufort , es un cifrado de sustitución similar al cifrado Vigenère , con un mecanismo de cifrado y un cuadro ligeramente modificados . [1] Su aplicación más famosa fue en una máquina de cifrado basada en rotor, la Hagelin M-209 . [2] El cifrado de Beaufort se basa en el cuadrado de Beaufort, que es esencialmente el mismo que un cuadrado de Vigenère pero en orden inverso, comenzando con la letra "Z" en la primera fila, [3] donde la primera fila y la última columna sirven al mismo propósito .
Usando el cifrado [ editar ]
Para cifrar, primero elija el carácter de texto sin formato de la fila superior del cuadro; llame a esta columna P. En segundo lugar, baje la columna P hasta la letra clave correspondiente K. Finalmente, muévase directamente a la izquierda desde la letra clave hasta el borde izquierdo del cuadro, el cifrado de texto cifrado del texto plano P con la tecla K estará allí.
Por ejemplo, si se encripta el carácter de texto plano "d" con la clave "m", los pasos serían:
- encuentra la columna con "d" en la parte superior,
- viaja por esa columna para encontrar la clave "m",
- viaje al borde izquierdo del cuadro para encontrar la letra de texto cifrado ("J" en este caso).
Para descifrar, el proceso se invierte. El cifrado Beaufort es un cifrado recíproco , es decir, los algoritmos de descifrado y cifrado son los mismos.
Descripción algebraica [ editar ]
El cifrado de Beaufort se puede describir algebraicamente. Por ejemplo, usando una codificación de las letras A - Z como los números 0–25 y usando el módulo de suma 26, dejemos ser los personajes del mensaje ser los caracteres del texto cifrado y ser los caracteres de la clave, repetidos si es necesario. Luego el cifrado Beaufort puede ser escrito,
- .
Del mismo modo, descifrado usando la llave ,
- .
Descifrar como un cifrado de Vigenere [ editar ]
Debido a las similitudes entre el cifrado Beaufort y el cifrado Vigenère , es posible, después de aplicar una transformación, resolverlo como un cifrado Vigenère . Al reemplazar cada letra en el texto cifrado y el texto clave con su letra opuesta (de modo que 'a' se convierte en 'z', 'b' se convierte en 'y', etc.) se puede resolver como un cifrado Vigenère .
Distinguido de 'variante Beaufort' [ editar ]
El cifrado Beaufort no debe confundirse con el cifrado "variante Beaufort". En la variante Beaufort, el cifrado se realiza realizando el paso de descifrado del cifrado Vigenère estándar, y del mismo modo el descifrado se realiza mediante el cifrado Vigenère.
En el campo matemático de la combinatoria , una función doblada es un tipo especial de función booleana ; llamados así porque son lo más diferentes posible de todas las funciones lineales y de todas las funciones afines . Esto hace que las funciones dobladas sean naturalmente difíciles de aproximar. Las funciones dobladas fueron definidas y nombradas en la década de 1960 por Oscar Rothaus en una investigación no publicada hasta 1976. [1] Se han estudiado ampliamente para sus aplicaciones en criptografía , pero también se han aplicado al espectro extendido , la teoría de codificación y el diseño combinatorio.. La definición se puede ampliar de varias maneras, lo que lleva a diferentes clases de funciones dobladas generalizadas que comparten muchas de las propiedades útiles del original.
Se sabe que VA Eliseev y OP Stepchenkov estudiaron funciones dobladas, que llamaron funciones mínimas , en la URSS en 1962. [2] Sin embargo, sus resultados aún no se han desclasificado.
Transformación de Walsh [ editar ]
Las funciones dobladas se definen en términos de la transformación de Walsh . La transformación de Walsh de una función booleana es la función dada por
donde a · x = a 1 x 1 + a 2 x 2 +… + a n x n (mod 2) es el producto escalar en Z n
2 . [3] Alternativamente, deje S 0 ( a ) = { x ∈ Z n
2 : f ( x ) = a · x } y S 1 ( a ) = { x∈ Z n
2 : f ( x ) ≠ a · x } . Entonces | S 0 ( a ) | + | S 1 ( a ) | = 2 ny por lo tanto
2 . [3] Alternativamente, deje S 0 ( a ) = { x ∈ Z n
2 : f ( x ) = a · x } y S 1 ( a ) = { x∈ Z n
2 : f ( x ) ≠ a · x } . Entonces | S 0 ( a ) | + | S 1 ( a ) | = 2 ny por lo tanto
Para cualquier función booleana f y un ∈ Z n
2 la mentiras transformar en el intervalo
2 la mentiras transformar en el intervalo
Además, la función lineal f 0 ( x ) = a · x y la función afín f 1 ( x ) = a · x + 1 corresponden a los dos casos extremos, ya que
Por lo tanto, para cada a ∈ Z n
2, el valor decaracteriza dónde se encuentra la función f ( x ) en el rango de f 0 ( x ) a f 1 ( x ).
2, el valor decaracteriza dónde se encuentra la función f ( x ) en el rango de f 0 ( x ) a f 1 ( x ).
Definición y propiedades [ editar ]
Rothaus definió una función doblada como una función booleanacuya transformación de Walsh tiene un valor absoluto constante . Las funciones dobladas son, en cierto sentido, equidistantes de todas las funciones afines, por lo que son igualmente difíciles de aproximar con cualquier función afín.
Los ejemplos más simples de funciones dobladas, escritas en forma normal algebraica , son F ( x 1 , x 2 ) = x 1 x 2 y G ( x 1 , x 2 , x 3 , x 4 ) = x 1 x 2 ⊕ x 3 x 4 . Este patrón continúa: x 1 x 2 ⊕ x 3 x 4 ⊕… ⊕ x n−1 x n es una función dobladapara cada par n , pero hay una gran variedad de otras funciones dobladas a medida que aumenta n . [4] La secuencia de valores (−1) f ( x ) , con x ∈ Z n
2 tomada en orden lexicográfico , se denomina secuencia doblada ; Las funciones dobladas y las secuencias dobladas tienen propiedades equivalentes. En esta forma ± 1, la transformación de Walsh se calcula fácilmente como
2 tomada en orden lexicográfico , se denomina secuencia doblada ; Las funciones dobladas y las secuencias dobladas tienen propiedades equivalentes. En esta forma ± 1, la transformación de Walsh se calcula fácilmente como
donde W (2 n ) es la matriz de Walsh de orden natural y la secuencia se trata como un vector de columna . [5]
Rothaus demostró que las funciones dobladas solo existen para n , y que para una función doblada f ,para todo a ∈ Z n
2 . [3] De hecho,, donde g también está doblado. En este caso,, entonces f y g se consideran funciones duales . [5]
2 . [3] De hecho,, donde g también está doblado. En este caso,, entonces f y g se consideran funciones duales . [5]
Cada función doblada tiene un peso Hamming (número de veces que toma el valor 1) de 2 n -1 ± 2 n / 2 -1 , y de hecho está de acuerdo con cualquier función afín en uno de esos dos números de puntos. Así que la no linealidad de f (número mínimo de veces que es igual a cualquier función afín) es 2 n -1 - 2 n / 2 -1 , el máximo posible. A la inversa, cualquier función booleana con no linealidad 2 n -1 - 2 n / 2 -1 está doblada.[3] El grado de f en forma normal algebraica (llamada la orden no lineal de f ) es como máximo n / 2 (para n > 2 ). [4]
Aunque las funciones dobladas son muy raras entre las funciones booleanas de muchas variables, vienen en muchos tipos diferentes. Se han realizado investigaciones detalladas en clases especiales de funciones dobladas, como los homogéneos los [6] o las derivadas de un monomio sobre un campo finito , [7] pero hasta ahora las funciones dobladas han desafiado todos los intentos de una enumeración completa o clasificación .
Construcciones [ editar ]
Hay varios tipos de construcciones para funciones dobladas. [2]
- construcciones combinatorias: construcciones iterativas, construcción Maiorana-McFarland, diferenciales parciales, funciones dobladas de Dillon y Dobbertin, funciones dobladas a corto plazo, funciones iterativas dobladas
- construcciones algebraicas: funciones dobladas monomiales con exponentes de Gold, Dillon, Kasami, Canteaut-Leander y Canteaut-Charpin-Kuyreghyan; Funciones dobladas de Niho, etc.
Aplicaciones [ editar ]
Ya en 1982 se descubrió que las secuencias de longitud máxima basadas en funciones dobladas tienen propiedades de correlación cruzada y autocorrelación que rivalizan con las de los códigos Gold y Kasami para su uso en CDMA . [8] Estas secuencias tienen varias aplicaciones en técnicas de amplio espectro .
Las propiedades de las funciones dobladas son de interés natural en la criptografía digital moderna , que busca oscurecer las relaciones entre entrada y salida. Para 1988 Forré reconoció que la transformación de Walsh de una función se puede utilizar para demostrar que satisface el estricto criterio de avalancha (SAC) y las generalizaciones de orden superior, y recomendó esta herramienta para seleccionar candidatos para buenas cajas S que logren una difusión casi perfecta . [9] De hecho, las funciones que satisfacen el SAC en el orden más alto posible siempre están dobladas. [10] Además, las funciones dobladas están lo más lejos posible de tener lo que se llama estructuras lineales , vectores distintos de cero a tal que f( x + a ) + f ( x ) es una constante. En el lenguaje del criptoanálisis diferencial (introducido después de descubrir esta propiedad), la derivada de una función doblada f en cada punto distinto de cero a (es decir, f a ( x ) = f ( x + a ) + f ( x )) es a función booleana equilibrada , tomando cada valor exactamente la mitad del tiempo. Esta propiedad se llama perfecta no linealidad . [4]
Dadas tan buenas propiedades de difusión, resistencia aparentemente perfecta al criptoanálisis diferencial y resistencia por definición al criptoanálisis lineal , las funciones dobladas pueden parecer al principio la opción ideal para funciones criptográficas seguras, como las cajas S Su defecto fatal es que no pueden ser equilibrados. En particular, una caja S invertible no puede construirse directamente a partir de funciones dobladas, y un cifrado de flujo que utiliza una función de combinación doblada es vulnerable a un ataque de correlación . En cambio, uno podría comenzar con una función doblada y complementar aleatoriamente los valores apropiados hasta que el resultado sea equilibrado. La función modificada todavía tiene una alta no linealidad, y como tales funciones son muy raras, el proceso debería ser mucho más rápido que una búsqueda de fuerza bruta. [4]Pero las funciones producidas de esta manera pueden perder otras propiedades deseables, incluso si no satisfacen el SAC, por lo que es necesario realizar pruebas cuidadosas. [10] Varios criptógrafos han trabajado en técnicas para generar funciones equilibradas que preserven la mayor cantidad posible de las buenas cualidades criptográficas de las funciones dobladas. [11] [12] [13]
Parte de esta investigación teórica se ha incorporado a algoritmos criptográficos reales. El procedimiento de diseño CAST , utilizado por Carlisle Adams y Stafford Tavares para construir las cajas S para los cifrados de bloque CAST-128 y CAST-256 , hace uso de funciones dobladas. [13] La función hash criptográfica HAVAL utiliza funciones booleanas creadas a partir de representantes de las cuatro clases de equivalencia de funciones dobladas en seis variables. [14] El cifrado de flujo Grain usa un NLFSRcuyo polinomio de retroalimentación no lineal es, por diseño, la suma de una función doblada y una función lineal. [15]
Las aplicaciones de funciones dobladas se enumeran en una monografía de 2015 de N. Tokareva, Funciones dobladas : resultados y aplicaciones a la criptografía . [2]
Generalizaciones [ editar ]
En la monografía de Tokareva 2015 se describen más de 25 generalizaciones diferentes de funciones dobladas. [2]Hay generalizaciones algebraicas (funciones dobladas con valor q, funciones dobladas p-arias, funciones dobladas sobre un campo finito, funciones dobladas booleanas generalizadas de Schmidt, funciones dobladas de un grupo abeliano finito en el conjunto de números complejos en el círculo unitario, dobladas funciones de un grupo abeliano finito en un grupo abeliano finito, funciones dobladas no abelianas, funciones dobladas G vectoriales, funciones dobladas multidimensionales en un grupo abeliano finito, generalizaciones combinatorias (funciones dobladas simétricas, funciones dobladas homogéneas, funciones dobladas simétricas de rotación, normales funciones dobladas, funciones dobladas auto dual y anti dual, funciones dobladas parcialmente definidas, funciones plateadas, funciones dobladas en Z y funciones dobladas cuánticas) y generalizaciones criptográficas (funciones semi dobladas, funciones dobladas balanceadas, funciones parcialmente dobladas,funciones hiper-dobladas, funciones dobladas de orden superior, funciones k-dobladas).
tiene un valor absoluto constante m n / 2 . Funciones no lineales perfectas, aquellos que para todos los valores distintos de cero a , f ( x + a ) - f ( a ) adquieren cada valor m n - 1 veces, se doblan de forma generalizada. Si m es primo , lo contrario es cierto. En la mayoría de los casos solo se consideran los primos m . Para la m prima impar , hay funciones dobladas generalizadas para cada n positiva , par e impar. Tienen muchas de las mismas buenas propiedades criptográficas que las funciones dobladas binarias. [16] [17]
Las funciones semi dobladas son una contraparte de orden impar para las funciones dobladas. Una función semi doblada escon n impar, tal quetoma solo los valores 0 ym ( n +1) / 2 . También tienen buenas características criptográficas, y algunas de ellas son equilibradas y adoptan todos los valores posibles con la misma frecuencia. [18]
Las funciones parcialmente dobladas forman una gran clase definida por una condición en las funciones de transformación y autocorrelación de Walsh. Todas las funciones afines y dobladas están parcialmente dobladas. Esto es a su vez una subclase adecuada de las funciones en meseta . [19]
La idea detrás de las funciones hiper-doblada es maximizar la distancia mínima para todas las funciones de Boole procedentes de biyectivas monomios en el campo finito GF (2 n ), no sólo las funciones afines. Para estas funciones, esta distancia es constante, lo que puede hacerlas resistentes a un ataque de interpolación .
Se han dado otros nombres relacionados a clases de funciones criptográficamente importantes. , como funciones casi dobladas y funciones torcidas . Si bien no son funciones dobladas en sí mismas (ni siquiera son funciones booleanas), están estrechamente relacionadas con las funciones dobladas y tienen buenas propiedades de no linealidad.
No hay comentarios:
Publicar un comentario