Cifrado por Bloques
La criptografía simétrica (o privada) es el sistema de criptografía más antiguo. Se utiliza desde los tiempos de Julio Cesar hasta la actualidad.
Se caracteriza por usar la misma clave para encriptar y desencriptar.
Toda la seguridad está basada en la privacidad de esta clave secreta, llamada simétrica porque es la misma para el emisor y el receptor.
Cifrado de producto
Los algoritmos de cifrado simétricos se apoyan en los conceptos de confusión (tratar de ocultar la relación que existe entre el texto claro, el texto cifrado y la clave, es decir, realizar sustituciones simples) y difusión (trata de repartir la influencia de cada bit del mensaje original
lo más posible entre el mensaje cifrado, es decir, realizar permutaciones) 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.
Principios de cifrado convencional
Un esquema de cifrado tiene 5 ingredientes:
• Texto “en claro”
• Algoritmo de cifrado
• Clave secreta
• Texto cifrado
• Algoritmo de descifrado
La seguridad depende de secreto de la clave, no del algoritmo
Estrategia de ataque:
• Solo texto cifrado y algoritmo
• Texto claro conocido
Fundamentos
• 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
Redes Feistel
Horst Feistel fue uno de los primeros no militares investigadores en el campo de la criptografía.
En 1973 se publicó un artículo llamado “Cryptography and Computer Privacy” en la revista llamada “Scientific American”, en el que trató de cubrir los aspectos más importantes de la máquina de cifrado e introdujo lo que hoy se conoce como la "Red de Feistel”.
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 (autoreversivilidad). 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.
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.
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.
Funcionamiento de una Red 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.
El último intercambio no se suele hacer, o si se hace (por ejemplo con una implementación mediante iteración) se deshace. Normalmente se toma un número de rondas mayor o igual a tres y suele ser par. La red de 16 rondas mostrada corresponde a la utilizada por el sistema DES, también es la que utiliza Blowfish.
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

Bibliografía
Handbook of Applied Cryptography, A. Menezes, P. van Oorschot, S. Vanstone
Libro electrónico de seguridad informática y criptografía, Dr. Jorge Ramió Aguirre, Dr. Josep María Miret Biosca
Enlaces de internet.
• www.schneier.com/blowfish.html
• www.kriptopolis.com
• www.rsasecurity.com
• www.monografias.com/trabajos20/cifrado-en-bloques/cifradoen- bloques.shtml.
• http://cs-exhibitions.uni-klu.ac.at/index.php?id=261.
• http://es.knowledger.de/0105290/CifraDeFeistel.
• http://spi1.nisu.org/recop/al01/alberto/tema2.html.
No hay comentarios:
Publicar un comentario