Algoritmos de cifrado y sus aplicaciones
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 11,94 KB
IDEA (INTERNATIONAL DATA ENCRYPTION ALGORITHM)
Descripción del Algoritmo: El algoritmo IDEA consta de ocho rondas. Dividiremos el bloque X a codificar, de 64 bits, en cuatro partes X1, X2, X3 y X4 de 16 bits. Denominaremos Ki a cada una de las 52 subclaves de 16 bits que vamos a necesitar. Las operaciones que llevaremos a cabo en cada ronda son las siguientes:
- Multiplicar X1 por K1.
- Sumar X2 con K2.
- Sumar X3 con K3.
- Multiplicar X4 por K4.
- Hacer un XOR entre los resultados del paso 1 y el paso 3.
- Hacer un XOR entre los resultados del paso 2 y el paso 4.
- Multiplicar el resultado del paso 5 por K5.
- Sumar los resultados de los pasos 6 y 7.
- Multiplicar el resultado del paso 8 por K6.
- Sumar los resultados de los pasos 7 y 9.
- Hacer un XOR entre los resultados de los pasos 1 y 9.
- Hacer un XOR entre los resultados de los pasos 3 y 9.
- Hacer un XOR entre los resultados de los pasos 2 y 10.
- Hacer un XOR entre los resultados de los pasos 4 y 10.
La salida de cada iteración serán los cuatro sub-bloques obtenidos en pasos 11, 12, 13 y 14, que serán la entrada a la siguiente ronda, en la que usaremos las siguientes seis subclaves, hasta un total de 48. Al final se intercambian los dos bloques centrales (en realidad con eso deshacemos el intercambio que llevamos a cabo en los pasos 12 y 13). Después de la octava iteración, se realiza la siguiente transformación:
- Multiplicar X1 por K49.
- Sumar X2 con K50.
- Sumar X3 con K51.
- Multiplicar X4 por K52.
Aplicaciones
- Los datos de audio y vídeo para la televisión por cable, televisión de pago, videoconferencia, educación a distancia, TV de negocio, VoIP.
- Datos financieros y comerciales sensibles.
- Correo electrónico a través de redes públicas.
- Enlaces de transmisión vía módem, router o ATM enlace, la tecnología GSM.
- Las tarjetas inteligentes.
Debilidades
- Una clase de claves débiles, las que responden al esquema: 0000 0000 0*00 0000 0000 000* **** *000 que un atacante podría identificar en un ataque con texto en claro elegido.
- Para la generación de claves, método de generación de las subclaves es muy regular, lo que puede ser una debilidad del algoritmo.
- En 2012, se rompió IDEA utilizando un ataque de narrow-bicliques. Un ataque biclique es una variante del método de criptoanálisis de encuentro en el medio (MITM). Dado que biclique cryptanalysis se basa en ataques MITM, es aplicable tanto a cifrados de bloque como a funciones hash (iteradas).
SECURE AND FAST ENCRYPTION ROUTINE (SAFER)
Es un algoritmo de cifrado por bloques no propietario. Está orientado a bytes y emplea un tamaño de bloque de 64 bits y claves de 64 (SAFER K-64) o 128 bits (SAFER K-128). Tiene un número variable de rotaciones, pero es recomendable emplear como mínimo 6. El algoritmo original fue considerado inmune al criptoanálisis lineal y diferencial, pero Knudsen descubrió una debilidad en el generador de claves y el algoritmo fue modificado (SAFER SK-64 y SAFER SK-128).
SAFER utiliza ocho rondas. El primer paso para una ronda es aplicar la primera subclave de la ronda a los ocho bytes del bloque. La operación mediante la cual cada byte de la subclave se aplica a cada byte del bloque depende de qué byte se utiliza: la secuencia es: XOR, add, add, XOR, XOR, add, add, XOR.
Aplicaciones
- Tarjeta Electrónica: SAFER fue implementado en tarjetas electrónicas y el prototipo era 2.5 veces más rápido y optimizado que las tarjetas implementas con el algoritmo Data Encryption Estándar (DES).
- Bluetooth: Una variación del algoritmo de SAFER fue usado en el cifrado por bloque de BLUETOOTH.
- Investigación: El algoritmo SAFER y sus variaciones aún se siguen usando en algunos proyectos de investigación, aunque su rendimiento es inferior al resto de algoritmos modernos.
Debilidades:
El criptoanálisis temprano de SAFER K-64 mostró que SAFER K-64 podría considerarse inmune al criptoanálisis diferencial y lineal cuando el número de rondas es mayor que seis. Sin embargo, Knudsen descubrió una debilidad en el programa clave de SAFER K-64 y pronto siguió un nuevo programa clave para la familia de cifrados de SAFER.
BLOWFISH
Es un algoritmo de cifrado por bloques simétrico. Este algoritmo está compuesto por 18 semiclaves (K) y 4 cajas (subtitution boxes S). Es un proceso relativamente simple y altamente seguro ya que a la fecha no se conoce ningún tipo de criptoanálisis efectivo contra este algoritmo de cifrado.
La función F, la cual se encarga de sustituir los valores resultantes de las operaciones XOR utilizando las cajas de sustitución (subtitution boxes). La función F divide el grupo de 32bits en 4 grupos de 8bits el bloque a y bloque b se buscan en las cajas sustitución (representadas con la letra "S" en el diagrama), el valor representado por el primer octeto de la primer caja se suma al valor representado del segundo octeto de la segunda caja y al resultado se saca el módulo de 2³², posteriormente a este resultado se aplica una operación XOR con el valor representado por el tercer bloque en la tercer caja y al resultado de esto se le suma el valor representado por el cuarto octeto en la cuarta caja y al final se vuelve a aplicar el módulo 2³².
Planificación de claves
Es la inicialización del arreglo de las subclaves haciéndolas dependiente de la clave de usuario. Estos valores serán las subclaves para el proceso de encriptacion y desencriptacion con Blowfish por lo tanto deben calcularse antes de comenzar a cifrar o descifrar mensajes propios.
Aplicaciones
- Encriptación de data de usuarios en la nube.
- Encriptación masiva.
- Generación Aleatoria de bit.
- Cifrado de Paquetes.
- Hashing.
Debilidades
- La clave no debe cambiar constantemente.
- Si es para comunicaciones de N personas se necesitan claves para cada pareja.
ALGORITMOS ASIMÉTRICOS (trabajo)
1-RSA
El problema matemático en que se basa RSA es la factorización de números primos. El sistema criptográfico con clave pública RSA es un algoritmo asimétrico cifrador de bloques. Cuando se envía un mensaje, el emisor busca la clave pública de cifrado del receptor y una vez que dicho mensaje llega al receptor, éste se ocupa de descifrarlo usando su clave oculta. Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento se basa en el producto de dos números primos grandes (mayores que 10^100) elegidos al azar para conformar la clave de descifrado. Emplea expresiones exponenciales en aritmética modular. La seguridad de este algoritmo radica en que no hay maneras rápidas conocidas de factorizar un número grande en sus factores primos utilizando computadoras tradicionales.
Cifrado: Claves públicas n = 33 y k = 7. Mensaje original = 14 = P, E = Mensaje privado, Proceso: utilizamos la ecuación P^k=E(mod n), 14^7= E(mod 33)= 105413504. 105413504 / 33 = 3194348.606, 105413504-(3194348.606*33)=20. Se recomienda utilizar números de por lo menos 1024 bits, es decir, 128 dígitos decimales para el cálculo de las claves que además han de ser primos.
Aplicaciones:
- Autenticación de mensajes.
- Firmar un documento.
- Certificados digitales.
Debilidades:
- Computación cuántica: computadoras cuánticas con qubits.
- Hardware: frustrar el sistema de seguridad mediante la variación de voltaje de la alimentación en el dispositivo de la clave privada.
2-DIFFIE HELLAMN
Permite acordar una clave secreta entre 2 máquinas a través de un canal inseguro y enviando únicamente dos mensajes que será empleada para el cifrado de una sesión.
Funcionalidad:
- Se establecen un primo “p” y un generador g ∈ Z*p. Estos dos valores (“g” y “p”) son públicos. Siendo Z* el conjunto de los enteros menores que “p”, que son primos relativos de éste y además es un grupo bajo la multiplicación módulo “p”.
- A escoge x ∈ Zp-1 al azar, calcula X = g^x (mod p), y envía X a B.
- B escoge y ∈ Zp-1 al azar, calcula Y = g^y (mod p), y encía Y a A.
- A calcula K = (g^y mod p)^x mod p.
- B calcula K = (g^x mod p)^y mod p.
- Siendo la clave “K”.
Ataques: p sea un número primo grande de 200 o más dígitos, activo; hombre en el medio. Para mejorar: control de tiempos, autenticación previa de ambas partes, autenticación del contenido, usar un tercero.
3-CURVAS ELÍPTICAS: ecuación de Weierstrass
y^2=x^3+Ax+B, problema del logaritmo discreto en curvas elípticas. El logaritmo discreto de g en base b es la operación inversa a la potenciación: si g=b^k, entonces k=Log(b)g. En el caso de nuestro grupo, tendríamos b=i, k=0,1,2,3: [5]. El problema está cuando el grupo es muy grande. En nuestro caso, el número n es pequeño, de forma que he podido generar los elementos g como b^k (k=1,2,3,4). Si quiero saber cuál es el logaritmo discreto de -i no tengo más que mirar en la tabla y leer “i^3=-i”, de forma que la respuesta que busco es k=3. Pero, ¿y si el número n es muy grande? Por ejemplo n es 2^100, entonces tengo un gran problema pues se tendría que calcular g, g^2, g^3 … hasta g^(2^100).
Aplicaciones
ECC ha sido apenas usada hasta ahora, pero el hecho de que requiere claves más pequeñas que otros sistemas de clave pública lo hacen un buen candidato para aplicaciones donde los requisitos de tamaño de memoria son más exigentes, como por ejemplo en sistemas de identificación mediante tarjetas.
Debilidades
En cualquier caso, el hecho es que la ECC es mucho más compleja que el sistema RSA, tiene más incertidumbres y puede que nos dé más de una sorpresa. También es bastante lento, al menos en su implementación inicial.
4-CIFRADO DE EXTREMO A EXTREMO
Es un sistema de comunicación donde solo los usuarios que se comunican pueden leer los mensajes. En principio, evita que los espías potenciales, incluidos los proveedores de telecomunicaciones, los proveedores de Internet e incluso el proveedor del servicio de comunicación, puedan acceder a las claves criptográficas necesarias para descifrar la conversación.
Aplicaciones
- TextSecure: se usó encriptación de extremo a extremo para asegurar la transmisión de mensajes instantáneos, mensajes grupales, archivos adjuntos, mensajes a otros usuarios.
- Signal
- Silence
- Telegram
Debilidades
- Ataque de hombre en medio: un intruso puede hacerse pasar por un destinatario del mensaje (durante el intercambio de claves o sustituyendo su clave pública por la del destinatario), de modo que los mensajes se cifren con una clave conocida por el atacante.
- Autenticación: la mayoría de los protocolos de encriptación de extremo a extremo incluyen algún tipo de autenticación de punto final específicamente para evitar ataques MITM.
- Seguridad de punto final: los principales intentos de aumentar la seguridad de los puntos finales han sido aislar la generación de claves, el almacenamiento y las operaciones criptográficas en una tarjeta inteligente.
Conclusiones
Los algoritmos de cifrado desempeñan un papel fundamental en la seguridad de la información. IDEA, SAFER, Blowfish, RSA, Diffie Hellman y las curvas elípticas son solo algunos ejemplos de algoritmos utilizados para proteger datos sensibles en diferentes aplicaciones. Es importante tener en cuenta las debilidades y vulnerabilidades de cada algoritmo, así como implementar medidas adicionales de seguridad para garantizar la confidencialidad y autenticidad de la información.