Criptografía Simétrica por Bloques
Este
tipo de criptografía está basado
en el diseño propuesto por Horst Feistel
en los años 70.
Diseño de Feistel
Un bloque de tamaño N bits comúnmente N=64 ó 128 bits se divide en dos bloques de tamaño N/2, A y B. A partir de aquí comienza el proceso de cifrado y consiste en aplicar una función unidireccional (muy difícil de invertir) a un bloque B y a una subllave k1 generada a partir de la llave secreta. Se mezclan el bloque A con el resultado de la función mediante un XOR. Se permutan los bloques y se repite el proceso n veces. Finalmente se unen los dos bloques en el bloque original. Como se ilustra en la figura 11.
Algunos de los sistemas criptográficos que utilizan esta filosofía son:
Algoritmo |
Bloque (bits) |
Llave (bits) |
Vueltas |
Lucifer |
128 |
128 |
16 |
DES |
64 |
56 |
16 |
Loki |
64 |
64 |
16 |
CAST |
64 |
64 |
8 |
Blowfish |
64 |
Variable |
16 |
Tabla 1. Algoritmos de cifrado de bloque
A lo largo de la historia de la criptografía moderna se han usado diversos métodos de cifrado, siendo el más usado el Estándar de Cifrado de Datos por sus siglas en ingles DES (Data Encryption Standard). El problema con este estándar es el tamaño de su llave: 56 bits, para tratar de corregir esto se propuso el triple DES que únicamente aplica 3 veces el DES, cifrando, descifrando y cifrando con llaves diferentes de tamaño 56 bits, incrementando el tamaño de la llave hasta 168 bits.
A finales de 2001 surge, a partir de un concurso, un nuevo estándar para el cifrado de datos. A este algoritmo conocido como Rijndael se le dio el nombre de Estándar Avanzado de Cifrado o AES (Advanced Encryption Standar). Este algoritmo no sigue la filosofía de Feistel, pero es un cifrador de bloques. Sus características son:
Algoritmo |
Bloque (bits) |
Llave (bits) |
Vueltas |
Rijndael |
128 |
128 ó más |
flexible |
Tabla 2. Características del AES
Los cifrador por bloques, como se puede observar en las tablas anteriores, operan con bloques de tamaño fijo, a menudo de 64 o 128 bits. Para cifrar mensajes de mayor tamaño se usan diferentes modos de operación. Estos modos de cifrado son el ECB (Electronic codebook) libro de códigos electrónico, CBC (Cipher-block chaining) cifrado en bloque encadenado, OFB (Output Feedback) cifrado realimentado y CFB (Cipher Feedback) salida realimentada, aseguran la confidencialidad, pero no aseguran la integridad del mensaje.
Criptografía Simétrica de Flujo
Este tipo de criptografía se basa en hacer un cifrado bit a bit, esto se logra usando la operación XOR, representada con Å. Se utiliza un algoritmo determinístico que genera una secuencia pseudoaletoria de bits que junto con los bits del mensaje se van cifrando utilizando a operación XOR. (Figura 12).
Algunos ejemplos de este tipo de criptografía son RC4 (usado en redes inalámbricas), A5 (usado en telefonía celular).
Criptografía Asimétrica
Si se observa la figura 13, que ilustra la idea de criptografía de llave pública, se puede ver claramente que no existe simetría en ella, ya que de un lado de la figura se cifra o descifra con una llave pública y en el otro lado con una privada. De este hecho es de donde la criptografía asimétrica debe su nombre.
Es importante destacar que para este tipo de criptografía lo que se cifra con una llave se puede descifrar con la otra llave. Es decir, yo puedo cifrar con la llave pública y descifrar con la privada y viceversa. Esto es de gran ayuda ya que el número de llaves que debo de poseer se reduce considerablemente. Si alguien quisiera enviar un mensaje cifrado a n personas, necesitaría haber n llaves públicas una de cada persona, pero si n personas le quiere enviar un mensaje cifrado sólo es necesario que los demás conozcan su llave pública. Así, sólo tengo que preocuparme de que la llave pública sea de la persona que dice ser. Este es el problema de la criptografía asimétrica, la autenticidad de las llaves públicas.
Algunos ejemplos de este tipo de criptografía son RSA, El Gamal y Curvas Elípticas.
Solución al problema de intercambio de llaves secretas usando criptografía asimétrica: se supone que alguien va a enviar la llave secreta k a una persona para que puedan cifrar entre ellos mensajes. Lo que se hace es que se toma la llave pública de la persona a la que se le va a enviar el mensaje y se cifra con un sistema asimétrico la llave secreta, esto implica que sólo la persona poseedora de la llave privada pueda descifrar lo que se está enviando y con ello tener la llave secreta, tal y como se muestra en la figura 14.
|