0% encontró este documento útil (0 votos)
100 vistas8 páginas

Algoritmos de Cifrado Simétrico

Este documento describe varios algoritmos de cifrado de clave simétrica, incluyendo DES, 3DES, RC5, IDEA y AES. Explica que los algoritmos simétricos usan la misma clave secreta para cifrar y descifrar, y que la seguridad depende de mantener la clave en secreto. También discute los modos de operación como CBC, OFB y CFB que gestionan cómo los algoritmos operan en bloques de datos.

Cargado por

Gioberty Tineo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
100 vistas8 páginas

Algoritmos de Cifrado Simétrico

Este documento describe varios algoritmos de cifrado de clave simétrica, incluyendo DES, 3DES, RC5, IDEA y AES. Explica que los algoritmos simétricos usan la misma clave secreta para cifrar y descifrar, y que la seguridad depende de mantener la clave en secreto. También discute los modos de operación como CBC, OFB y CFB que gestionan cómo los algoritmos operan en bloques de datos.

Cargado por

Gioberty Tineo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Algoritmos de cifrado de clave simétrica

Criptografía : Algoritmos de cifrado de clave simétrica


Sergio De Luz | 4 de noviembre 2010 | 18:15

¿Qué significa cifrar?

Aplicar un algoritmo de cifrado determinado junto con una clave, a una determinada información que se quiere
transmitir confidencialmente.

Dentro del cifrado digital encontramos dos tipos de criptografía: simétrica y asimétrica.

En este artículo hablaremos sobre la Criptografía de clave simétrica

El cifrado mediante clave simétrica significa que dos o más usuarios, tienen una única clave secreta, esta clave será
la que cifrará y descifrará la información transmitida a través del canal inseguro.

Es decir, la clave secreta la debe tener los dos usuarios, y con dicha clave, el usuario A cifrará la información, la
mandará a través del canal inseguro, y a continuación el usuario B descifrará esa información con la MISMA clave
que ha usado el usuario A.

Para que un algoritmo de clave simétrica sea fiable debe cumplir:

- Una vez que el mensaje es cifrado, no se puede obtener la clave de cifrado/descifrado ni tampoco el texto en claro.
- Si conocemos el texto en claro y el cifrado, se debe tardar más y gastar más dinero en obtener la clave, que el
posible valor derivado de la información sustraída (texto en claro).

Debemos tener en cuenta que los algoritmos criptográficos son públicos, por lo que su fortaleza debe depender de
su complejidad interna y de la longitud de la clave empleada para evitar los ataques de fuerza bruta.

La seguridad en clave simétrica reside en la propia clave secreta, y por tanto el principal problema es la distribución
de esta clave a los distintos usuarios para cifrar y descifrar la información. La misión del emisor y receptor es
mantener la clave en secreto. Si cae en manos equivocadas ya no podríamos considerar que la comunicación es
segura y deberíamos generar una nueva clave.

Otro problema reside en que las claves secretas a guardar es proporcional al número de canales seguros que
deseamos mantener. Esto no es un problema en sí, pero debemos administrar bien las llaves para no equivocarnos.
Este problema no se va a presentar en los algoritmos asimétricos porque cada usuario tiene una pareja de claves,
una pública y la otra privada, independientemente del número de canales seguros que queramos establecer.
Únicamente debe proteger la clave privada.

La principal ventaja de los algoritmos simétricos es la velocidad de los algoritmos, y son muy usados para el cifrado
de grandes cantidades de datos. TrueCrypt por ejemplo, usa algoritmos simétricos.
Si alguien se pregunta que cómo podemos transmitir por un medio inseguro la clave simétrica, la respuesta es que
podemos crear unas claves asimétricas y así transmitir la información. Es lo que se hace en el cliente-servidor
OpenVPN.

Os voy a presentar algunos algoritmos de clave simétrica, algunos ya no son seguros pero vamos a ver por qué.

DES (Data Encryption Standard):

Su arquitectura está basada en un sistema monoalfabético, donde un algoritmo de cifrado aplica sucesivas
permutaciones y sustituciones al texto en claro. En un primer momento la información de 64bits se somete a una
permutación inicial, y a continuación se somete a una permutación con entrada de 8 bits, y otra de sustitución de
entrada de 5 bits, todo ello constituido a través de un proceso con 16 etapas de cifrado.

El algoritmo DES usa una clave simétrica de 64bits, los 56 primeros bits son empleados para el cifrado, y los 8 bits
restantes se usan para comprobación de errores durante el proceso. La clave efectiva es de 56 bits, por tanto,
tenemos 2⁵⁶ combinaciones posibles, por lo que la fuerza bruta se hace casi imposible.

Ventajas:

- Es uno de los sistemas más empleados y extendidos, por tanto es de los más probados.
- Implementación sencilla y rápida.

Inconvenientes:

- No se permite una clave de longitud variable, es decir, no se puede aumentar para tener una mayor seguridad.
- Es vulnerable al criptoanálisis diferencial (2⁴⁷ posibilidades) siempre que se conozco un número suficiente de
textos en claro y cifrados.
- La longitud de clave de 56 bits es demasiado corta, y por tanto vulnerable. Actualmente DES ya no es un estándar,
debido a que en 1999 fue roto por un ordenador.

3DES (Triple Data Encryption Standard)

Se basa en aplicar el algoritmo DES tres veces, la clave tiene una longitud de 128 bits. Si se cifra el mismo bloque
de datos dos veces con dos llaves diferentes (de 64 bits), aumenta el tamaño de la clave.

El 3DES parte de una llave de 128 bits, que es divida en dos llaves, A y B.

Al recibir los datos, aplicamos el algoritmo DES con la llave A, a continuación se repite con la llave B y luego otra vez
con la llave A (de nuevo).

3DES aumenta de forma significativa la seguridad del sistema de DES, pero requiere más recursos del ordenador.

Existe una variante del 3DES, conocida como DES-EDE3, con tres claves diferentes y una longitud de 192bits,
consiguiendo un sistema mucho más robusto.

RC5

Se aplican operaciones XOR sobre los datos, pudiendo ser de 32, 64 o 128 bits. Permite diferentes longitudes de
clave, y un número variable de iteraciones (la seguridad del cifrado aumenta exponencialmente cuanto mayor
número de iteraciones), también funciona como un generador de número aleatorios, sumándoles a los bloques de
texto rotados mediante la XOR.
IDEA (International Data Encriptión Algorithm)

Aplica una clave de 128 bits sin paridad a bloques de datos de 64 bits, y se usa tanto para cifrar como para descifrar.

Se alteran los datos de entrada en una secuencia de iteraciones parametrizadas, con el objetivo de producir bloques
de salida de texto cifrado de 64 bits. IDEA combina operaciones matemáticas como XOR, sumas con acarreo de
módulo 2¹⁶ y multiplicaciones de módulo 2¹⁶+1, sobre bloques de 16 bits.

Según numerosos expertos criptográficos, IDEA es el mejor algoritmo de cifrado de datos existente en la actualidad
ya que existen 2¹²⁸ claves privadas que probar mediante el ataque de fuerza bruta.

AES (Advanced Encryption Standard)

Este algoritmo es el más conocido entre los usuarios de routers, ya que WPA opera con AES como método de
cifrado. Este cifrado puede implementar tanto en sistemas hardware como en software. El sistema criptográfico AES
opera con bloques y claves de longitudes variable, hay AES de 128bits, de 192 bits y de 256 bits.

El resultado intermedio del cifrado constituye una matriz de bytes de cuatro filas por cuatro columnas. A esta matriz
se le vuelve a aplicar una serie de bucles de cifrado basado en operaciones matemáticas (sustituciones no lineales
de bytes, desplazamiento de filas de la matriz, combinaciones de las columnas mediante multiplicaciones lógicas y
sumas XOR en base a claves intermedias).

Seguridad de AES:

AES tiene 10 rondas para llaves de 128 bits, 12 rondas para llaves de 192 bits y 14 rondas para llaves de 256 bits.
En el año 2006, los mejores ataques conocidos fueron el 7 rondas para claves de 128 bits, 8 rondas para llaves de
192 bits, y 9 rondas para claves de 256 bits.

Algunos criptógrafos muestran preocupación sobre la seguridad del AES. Ellos creen que el margen entre el número
de rondas especificado en el cifrador y los mejores ataques conocidos es muy pequeño.

Otra preocupación es la estructura de AES. A diferencia de la mayoría de cifradores de bloques, AES tiene una
descripción matemática muy ordenada.

Recordemos que AES es usado en los cifrados wireless de los routers de los hogares como método de cifrado (no
clave) ya que en los routers podemos usar una clave estática o una dinámica mediante un servidor Radius.

AES también es usado por OpenSSL y por supuesto en OpenVPN (ya que usa las librerías OpenSSL).

Los algoritmos de cifrado de bloque como AES separan el mensaje en trozos de tamaño fijo, por ejemplo de 64 o
128 bits. La forma en que se gestionan estos bloques de mensaje, se denomina “modo de cifrado”.

Por ejemplo, existe el AES-CBC, AES-CFB y AES-OFB, os voy a explicar qué es exactamente esto que aparece en
las librerías OpenSSL.

CBC (Cipher-block chaining): a cada bloque de texto plano se le aplica la operación XOR con el bloque cifrado
anterior antes de ser cifrado. De esta forma, cada bloque de texto cifrado depende de todo el texto en claro
procesado hasta este punto. Como no se dispone de un texto cifrado con el que combinar el primer bloque, se usa
un vector de inicialización IV (número aleatorio que puede ser públicamente conocido). La desventaja es que el
cifrado es de forma secuencial y por tanto no puede ser paralelizado.
OFB (Output feedback): se generan bloques de flujo de claves, que son operados con XOR y el texto en claro para
obtener el texto cifrado. Al igual que con otras unidades de flujo de cifrado, al intercambiar un bit en el texto cifrado
produce texto cifrado con un bit intercambiado en el texto plano en la misma ubicación. También se usa un vector de
inicialización para el primer bloque.

CFB (Cipher feedback): se hace igual que en OFB, pero para producir el keystream cifra el último bloque de
cifrado, en lugar del último bloque del keystream como hace OFB. Un bit erróneo en el texto cifrado genera 1+64/m
bloques de texto claro incorrectos (siendo m la longitud del flujo en el que se divide el bloque). El cifrado no puede
ser paralelizado, sin embargo el descifrado sí.

Hasta aquí hemos llegado con los algoritmos de cifrado de clave simétrica. Ya sabéis sus ventajas e inconvenientes,
los tipos de cifrados que hay y los modos de cifrar la información.

Criptografía : Algoritmos de cifrado de clave asimétrica


Sergio De Luz | 16 de noviembre 2010 | 12:00

¿Qué significa cifrar?

Aplicar un algoritmo de cifrado determinado junto con una clave, a una determinada información que se quiere
transmitir confidencialmente.

Dentro del cifrado digital encontramos dos tipos de criptografía: simétrica y asimétrica.

En este artículo hablaremos sobre la Criptografía de clave asimétrica

La criptografía de clave asimétrica también es conocida como cable pública, emplea dos llaves diferentes en cada
uno de los extremos de la comunicación.

Cada usuario tendrá una clave pública y otra privada. La clave privada tendrá que ser protegida y guardada por el
propio usuario, será secreta y no la deberá conocer nadie. La clave pública será accesible a todos los usuarios del
sistema de comunicación.

Los algoritmos asimétricos están basados en funciones matemáticas fáciles de resolver en un sentido, pero muy
complicadas realizarlo en sentido inverso a menos que se conozca la llave.

Las claves públicas y privadas se generan simultáneamente y están ligadas la una a la otra. Esta relación debe ser
muy compleja para que resulte muy difícil que obtengamos una a partir de la otra.

Las parejas de claves tienen funciones diversas y muy importantes, entre las que destacan:
- Cifrar la información.
- Asegurar la integridad de los datos transmitidos.
- Garantizar la autenticidad del emisor.

Cifrado con clave asimétrica

Si una persona con una pareja de claves cifra un mensaje con la llave privada, ese mensaje sólo podrá ser
descifrado con la llave pública asociada. Y si se cifra con la pública, se descifra con la privada.

Si ciframos un mensaje con la cable privada, no podremos descifrarlo con la propia llave privada, deberemos usar la
pública.

Como hemos contado en el Artículo de Criptografía : Algoritmos de cifrado de clave simétrica, el cifrado simétrico
aporta confidencialidad (sólo podrá leer el mensaje el destinatario).

La criptografía asimétrica proporciona autenticidad, integridad y no repudio.

Para que un algoritmo sea considerado seguro debe cumplir:

- Si se conoce el texto cifrarlo, debe resultar muy difícil o imposible extraer el texto en claro y la clave privada.
- Si se conoce el texto en claro y el cifrado, debe resultar más costoso obtener la clave privada que el texto en claro.
- Si los datos han sido cifrados con la clave pública, sólo debe existir una clave privada capaz de descifrarlo, y
viceversa.

La ventaja del cifrado asimétrico sobre el simétrico radica en que la clave pública puede ser conocida por todo el
mundo (no así la privada) sin embargo en el cifrado simétrico deben conocer la misma clave los dos usuarios (y la
clave debe hacerse llegar a cada uno de los distintos usuarios por el canal de comunicación).

Cifrado con clave de sesión

El principal inconveniente es la lentitud, el empleo de este tipo de llaves ralentiza el proceso de cifrado. La solución a
esto es usar el cifrado asimétrico como el simétrico (como hace IPSec o SSL).

Creamos la clave del algoritmo simétrico, la ciframos con la clave pública del receptor, enviamos los datos cifrados
por el canal inseguro, y a continuación el receptor descifrará los datos mediante tu llave privada. Entonces podrán
empezar a comunicarse mediante el cifrado simétrico (mucho más rápidos).

En las VPN como OpenVPN TLS/SSL la clave de sesión, que es conocida por los usuarios, se regenera cada cierto
tiempo para incrementar la seguridad.

Desafío-Respuesta

Podemos comprobar que el emisor es realmente quien dice ser, para ello enviamos un texto al emisor y éste la
cifrará con su clave privada, el emisor nos enviará el texto cifrado y nosotros desciframos la clave ya que tenemos la
clave pública del emisor, y comparamos que el mensaje obtenido sea el mismo que enviamos anteriormente.

Si alguien se hace pasar por el emisor real, no tendría la clave privada y el desafío no hubiera resultado satisfactorio.

Firma digital
La firma digital permite al receptor de un mensaje que el origen es auténtico, también podremos comprobar si el
mensaje ha sido modificado. Falsificar una firma digital es casi imposible a no ser que conozcan la clave privada del
que firma (y ya hemos dicho anteriormente que la clave privada debe estar guardada y que no la debe saber nadie).

Hay dos fases para la realización de la firma digital:

- Proceso de firma: el emisor cifra los datos con la clave privada y lo manda al receptor.
- Verificar la firma: el receptor descifra los datos usando la clave pública de el emisor y comprueba que la
información coincide con los datos originales (si coincide es que no se ha modificado).

En las firmas digitales se hace uso de las funciones HASH como MD5 o SHA-1 ya que como hemos comentado
anteriormente, el cifrado asimétrico es lento.

Podéis encontrar qué son las funciones Hash Aquí: Criptografía : Algoritmos de autenticación (hash)

El emisor aplicará la función hash al mensaje original para obtener la huella digital. A continuación se cifra la huella
con la clave privada y se envía al destinatario para que la descifre. El destinatario también aplicará la función hash a
sus datos y comparará los resultados (la que ha obtenido y la que ha recibido). Así podrá comprar que la información
no ha sido alterada.

Si alguien altera los datos, la huella digital será diferente.

Con todo esto hemos cumplido:

- Autenticidad (el emisor es quien dice ser).


- Integridad (el mensaje no ha sido modificado).
- No repudio (el emisor no puede negar haber enviado el mensaje al receptor).

Si queremos introducir la confidencialidad basta que el emisor cifre el mensaje original con la clave pública del
receptor.

Algoritmos de cifrado de clave asimétrica

Tenemos dos algoritmos principales, el Diffie-Hellman y el famoso RSA.

Diffie-Hellman

No es un algoritmo simétrico propiamente dicho, se usa para generar una clave privada simétrica a ambos extremos
de un canal de comunicación inseguro. Se emplea para obtener la clave secreta con la que posteriormente cifrar la
información, junto con un algoritmo de cifrado simétrico.

Su seguridad radica en la dificultad de calcular el logaritmos discreto de números grandes.

El problema de este algoritmos es que no proporciona autenticación, no puede validar la identidad de los usuarios,
por tanto si un tercer usuario se pone en medio de la “conversación” también se le facilitaría las claves y por tanto
podría establecer comunicaciones con el emisor y el receptor suplantando las identidades.

RSA

Este algoritmo se basa en la pareja de claves, pública y privada de las que ya hemos hablado antes. La seguridad
de este algoritmo radica en el problema de la factorización de números enteros.

Ventajas:
- Resuelve el problema de la distribución de las llaves simétricas (cifrado simétrico).
- Se puede emplear para ser utilizado en firmas digitales.

Desventajas:

- La seguridad depende de la eficiencia de los ordenadores.


- Es más lento que los algoritmos de clave simétrica.
- La clave privada debe ser cifrada por algún algoritmo simétrico.

Algoritmos de autenticación (o hash)

Los más conocidos y usados son MD5 y el SHA-1. Son algoritmos que a partir de un bloque de entrada, generan
otro bloque de salida de una longitud fija determinada.

Puedes leer más sobre algoritmos de autenticación aquí:

Criptografía : Algoritmos de autenticación (hash)

Hasta aquí hemos llegado con los algoritmos de cifrado de clave asimétrica. Ya sabéis sus ventajas e
inconvenientes y los dos tipos de algoritmos que hay.

Criptografía : Algoritmos de autenticación (hash)


Sergio De Luz | 9 de noviembre 2010 | 14:00

¿Qué es una función Hash?

Una función hash es método para generar claves o llaves que representen de manera casi unívoca a un documento
o conjunto de datos. Es una operación matemática que se realiza sobre este conjunto de datos de cualquier longitud,
y su salida es una huella digital, de tamaño fijo e independiente de la dimensión del documento original. El contenido
es ilegible.

Es posible que existan huellas digitales iguales para objetos diferentes, porque una función hash, en el caso del
SHA-1 tiene 160bits, y los posibles objetos a resumir no tienen un tamaño límite.

A partir de un hash o huella digital, no podemos recuperar el conjunto de datos originales. Los más conocidos son el
MD5 y el SHA-1. Cifrar una huella digital se conoce como firma digital.

Requisitos que deben cumplir las funciones hash:

- Imposibilidad de obtener el texto original a partir de la huella digital.


- Imposibilidad de encontrar un conjunto de datos diferentes que tengan la misma huella digital (aunque como hemos
visto anteriormente es posible que este requisito no se cumpla).
- Poder transformar un texto de longitud variable en una huella de tamaño fijo (como el SHA-1 que es de 160bits).
- Facilidad de empleo e implementación.

Ejemplos de funciones Hash

MD5

Es una función hash de 128 bits. Como todas las funciones hash, toma unos determinados tamaños a la entrada, y
salen con una longitud fija (128bits).

El algoritmo MD5 no sirve para cifrar un mensaje. La información original no se puede recuperar ya que hay pérdida
de datos. MD5 es usado para firmas digitales como veremos próximamente en REDESzone.net

SHA-1

Es parecido al famoso MD5, pero tiene un bloque de 160bits en lugar de los 128bits del MD5. La función de
compresión es más compleja que la función de MD5. SHA-1 es más lento que MD5 porque el número de pasos son
de 80 (64 en MD5) y porque tiene mayor longitud que MD5 (160bits contra 128bits). Lo que convierte a SHA-1 más
robusto y seguro, totalmente apto para VPN’s por ejemplo.

SHA-2

Las principales diferencias con SHA-1 radica en en su diseño y que los rangos de salida han sido incrementados y
podemos encontrar:

SHA-224, SHA-256, SHA-384, y SHA-512

El más seguro, es el que mayor salida de bits tiene, el SHA-512, que tiene 80 rondas (pasos), como el SHA-1 pero
se diferencia de éste en:

- Tamaño de salida 512 por los 160 de SHA-1.


- Tamaño del bloque, tamaño de la palabra y tamaño interno que es el doble que SHA-1.

Como ocurre con todos los cifrados y hash, cuanto más seguro, más lento su procesamiento y uso, debemos
encontrar un equilibrio entre seguridad y velocidad.

También podría gustarte