Algoritmos


El método de encriptación y desencriptación es llamado Cifrado. Algunos métodos criptográficos se basan en el anonimato de los algoritmos de encriptación; tales algoritmos son de interes histórico y no son adecuados para las necesidades del mundo real. En lugar de anonimato de los algoritmos por si solos, todos los algoritmos modernos basan su seguridad en la utilización Llaves; y un mensaje solo puede ser desencriptado si la llave utilizada para desencriptar coincide con la utilizada para encriptar.

Hay dos clases de algoritmos de encriptación basados en llaves, Algoritmos Simétricos (o de llave privada) y Algoritmos Asimétricos (o de llave pública). La diferencia es que los algoritmos simétricos utilizan la misma clave para encriptar y desencriptar (o la llave de desencriptación es derivable de la llave de encriptación), mientras que los algoritmos asimétricos utilizan una llave distinta para la encriptación y para la desencriptación, y ninguna de las llaves puede ser derivada a partir de la otra.


Los algoritmos simétricos pueden ser divididos en Cifrado de Flujo y Cifrado de Bloques. El cifrado po flujo encripta un texto plano bit a bit, mientras que el cifrado por bloques toma un número de bits (generalmente 64 bit en cifrados modernos), y lo encriptan como una unidad simple. Muchos cifrados simétricos son descritos en la página de algoritmos.

El cifrado asimétrico (también llamado algoritmos de clave pública) permiten que la llave de encriptación sea pública (incluso puede ser publicada en sitios web), permitiendo que cualquiera pueda encriptar con la llave, mientras que el receptor apropiado (quien conoce la llave de desencriptación privada) puede desencriptar el mensaje. La llave de encriptación también es llamada Llave Pública y la llave de desencriptación Llave Privada. La seguridad suministrada por este cifrado se basa en en mantener la confidencialidad de la llave privada.

Los algoritmos criptográficos modernos no son mas cifrados de lápiz y papel. Se han desarrollado algoritmos criptográficos potentes para ser ejecutados con computadoras o dispositivos especiales de hardware o, en muchas aplicaciones, la criptografía es hecha mediante software.
Generalmente, los algoritmos simétricos son mas rápidos de ejecutar en las computadoras que los asimétricos.
En la práctica a menudo son utilizados juntos, así un algoritmo de llave pública es utilizado para encriptar una llave generada al azar, y esta llave es utilizada para encriptar el mensaje actual utilizando un algoritmo simétrico. Esto es conocido como Encriptación Híbrida.

La descripción de muchos algorítmos se encuentran disponibles en forma pública, en librerías científicas, oficinas de patentes, o en internet. Probablemente el algoritmo de cifrado simétrico mas difundido y estudiado es el DES (Estandar de Encriptación de Datos). Como consecuencia del incremento del poder de procesamiento de las computadoras, la versión básica del DES ya no puede ser considerada suficientemente segura. Por consiguiente un nuevo, y mas poderoso cifrado denominado AES (Estandar Avanzado de Encriptación) fue estandarizado en el año 2000. Es probable que reemplace al DES como el algoritmo de encriptaciión simétrico mas utilizado.

CRIPTOSISTRMAS DE CLAVE SECRETA

Denominamos criptosistema de clave secreta (de clave privada, de clave única o simétrico) a aquel criptosistema en el que la clave de cifrado, , puede ser calculada a partir de la de descifrado, , y viceversa. En la mayoría de estos sistemas, ambas claves coinciden, y por supuesto han de mantenerse como un secreto entre emisor y receptor: si un atacante descubre la clave utilizada en la comunicación, ha roto el criptosistema. 
Criptosistemas de clave privada o simétricos: Criptosistemas en los cuales emisor y receptor comparten una única clave. Es decir, el receptor podrá descifrar el mensaje recibido si y solo si conoce la clave con la cual el emisor ha cifrado el mensaje.

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.

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.



No hay comentarios:

Publicar un comentario