Algoritmo de cifrado Feistel
Algoritmo de cifrado Feistel
Es un método de cifrado en bloque diseñado por Horst
Feistel, también se le conoce como Red Feistel o Cadena de Feistel, una gran
cantidad de cifrado por bloques lo utilizan, siendo el mas conocido el
algoritmo Data Encryption Standard (DES).
Esta estructura presenta unas características muy interesantes
entre las que destaca que la codificación y la decodificación.Para descifrar
bastará con aplicar el mismo algoritmo, pero con las Ki en orden inverso.
Feistel propuso aproximar el cifrado de sustitución simple
utilizando el concepto de cifrado producto:
- Consiste en realizar dos o más operaciones básicas de cifrado en secuencia
- El resultado final es criptográficamente más fuerte que los cifrados componentes.
La propuesta de Feistel es alternar sustituciones y
permutaciones
Algoritmo
Este algoritmo se denomina simétrico por rondas, es decir,
realiza siempre las mismas operaciones un número determinado de veces
(denominadas rondas). Los pasos de la red de Feistel son entre algunos más:
1.
Se selecciona una cadena, N, normalmente de 64 o
128 bits, y se la divide en dos subcadenas, L y R, de igual longitud (N/2)
2.
Se toma una función, F, y una clave Ki
3.
Se realizan una serie de operaciones complejas
con F y Ki y con L o R.
4.
La cadena obtenida se cambia por la cadena con
la que no se han realizado operaciones, y se siguen haciendo las rondas.
Otra forma de ver como se hace el cifrado:
Para el descifrado las operaciones que hay que realizar son:
El algorito de Feistel se muestra en la siguiente imgen:
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.
Referencias:
http://ovandojoseantonio.blogspot.com/2013/09/cifrado-feistel.html
https://es.wikipedia.org/wiki/Cifrado_de_Feistel
https://es.wikipedia.org/wiki/Cifrado_de_Feistel
Comentarios
Publicar un comentario