|
Lourdes Acuayte Alcántara
|
Cutberto Hernández Mendoza
|
Contenido
Introducción
Fundamentos
Cifrado de producto
Difusión y
confusión
Cifrado Feistel
Desventaja
Funcionamiento de una red de Feistel
Reversibilidad del algoritmo
Ejemplo
Enlaces
Introducción
El
presente trabajo da una explicación sobre un algoritmo de cifrado llamado el
cifrado Feistel o Redes de Feistel más conocidas, el cual fue descubierto por Horst
Feistel que fue uno de los primeros no militares investigadores en el
campo de la criptografía y puede ser considerado el padre de cifrado por
bloques modernos.
En 1973 se
publicó un artículo llamado “Cryptography
and Computer Privacy” en la revista llamada “Scientific American”.
Esta
estructura presenta unas características muy interesantes entre las que destaca
que la codificación y la decodificación sean muy similares o en ciertos casos
idénticos.
A la hora
de implementar los sistemas en hardware, esta propiedad consigue reducir la
complejidad y el coste de los circuitos, siendo sólo necesario modificar la
clave.
Fundamentos
Cifrado de producto
Los algoritmos de
cifrado simétricos se apoyan en los conceptos de confusión y difusión que se combinan para dar lugar a
los denominados cifrados de producto. Estas técnicas consisten
básicamente en trocear el mensaje en bloques de tamaño fijo, y aplicar la
función de cifrado a cada uno de ellos.
Un esquema de
cifrado tiene 5 ingredientes:
- Texto “en claro”
- Algoritmo de cifrado
- Clave secreta
- Texto cifrado
- Algoritmo de descifrado
Difusión y confusión
Difusión: Pretende disipar la estructura
estadística del texto plano en el texto cifrado
El cambio de un bit
en el texto plano afecta al valor de muchos dígitos del texto cifrado, cada bit
del texto cifrado se ve afectado por muchos dígitos del texto plano, esto se
consigue aplicando repetidamente permutaciones antes de las funciones de sustitución
empleadas.
Confusión: Pretende hacer la relación entre las
estadísticas del texto cifrado y el valor de la clave lo más compleja posible,
para evitar el descubrimiento de la clave.
La manera en que se
utiliza la clave para cifrar el texto debe ser tan compleja que sea difícil
deducir la clave y se consigue mediante la utilización de un algoritmo de
sustitución complejo.
Cifrado Feistel
Muchos de los
cifrados de producto tienen en común que dividen un bloque de longitud n en dos
mitades, L y R. Se define entonces un cifrado de producto iterativo en el que
la salida de cada ronda se usa como entrada para la siguiente según la relación
Este tipo de
estructura se denomina Red de Feistel, y es empleada en multitud de algoritmos,
como DES, Lucifer, FEAL, CAST, Blowfish, etc.
Para descifrar
bastará con aplicar el mismo algoritmo, pero con las Ki en orden
inverso.
La propuesta de
Feistel propuso alterna sustituciones y permutaciones, es una aplicación
práctica de una propuesta de Claude Shannon en 1945 para desarrollar un cifrado
producto que alterna funciones de confusión y difusión.
La seguridad
depende de secreto de la clave, no del algoritmo por lo que:
- Opera sobre un bloque de texto plano de n bits para producir un texto cifrado de n bits. Típicamente, la longitud de un bloque es de 64 bits.
- Pueden adaptarse para funcionar como cifradores de flujo (más generales y mayor aplicabilidad)
- Para que sea reversible (descifrado), cada entrada debe producir un bloque de texto cifrado único
Desventaja
-
Si el tamaño de
bloque es pequeño el sistema es equivalente a un cifrado de sustitución clásico
(vulnerable a un análisis estadístico del texto plano).
Funcionamiento de una
red de Feistel
• Se divide el bloque inicial en dos partes: izquierda (L) y derecha (R).
• A la parte derecha se le aplica una función f que aporte la confusión y
la difusión adecuada. En esta función un lugar importante lo ocupa la clave
(ki), ésta debe permanecer en secreto y sólo la deben conocer el emisor y el
receptor del mensaje.
• El resultado de esta función es aplicado a la parte izquierda del bloque
mediante un XOR
• Se intercambian las dos partes y se itera el proceso, esta vez con los
papeles cambiados.
FIGURA 1.
FUNCIONAMIENTO DE LA RED FEISTEL
Reversibilidad del
algoritmo
El algoritmo debe
ser reversible: supongamos que se trata de una caja negra que tiene como
entrada un bloque y como salida el bloque codificado. Tiene que ser posible
enlazar ese bloque codificado con una caja negra idéntica en estructura
(cambiando las claves lógicamente) que aplicado al bloque codificado nos
devuelva el bloque original.
Ejemplo
El
algoritmo usará bloques de tamaño 8 caracteres.
Tendrá
dos vueltas y en cada vuelta realizará una operación de sustitución S y una
permutación P sobre la 1ª mitad.
Sustitución: Ci = (Mi +1 ) mod 27
Permutación: Pi = P 3241 (el carácter 1º pasa a la 4ª posición en el
criptograma, el 4º a la 3ª, el 2º a la 2ª y el 3º a la 1ª)
Mensaje:
M
= STAR WARS, LA MISIÓN CONTINÚA
FIGURA 2.
EJEMPLO DE CIFRADO FEISTEL
Enlaces
http://www.mediafire.com/?sif0ae6buhzay24
http://goo.gl/JXlKL