Algoritmos de cifrado y firmas digitales

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 9,91 KB

SECURE AND FAST ENCRYPTION ROUTINE (SAFER)

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 implementadas 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. Desencriptación: A diferencia de la mayoría de los otros algoritmos de bloque, SAFER se invierte al hacer el reverso de cada paso, en orden inverso, sin la posibilidad de lograr el mismo resultado simplemente por alguna alteración de las subclaves utilizadas. El reverso del método de mezclar pares de bytes es el siguiente: para obtener el primer byte anterior, reste el segundo byte nuevo del primer byte nuevo. El segundo byte antiguo es el segundo byte nuevo menos el primer byte anterior, que equivale al doble del segundo byte nuevo menos el primer byte nuevo.

BLOWFISH

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 32 bits en 4 grupos de 8 bits. El bloque a y bloque b se buscan en las cajas de 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 encriptación y desencriptación con Blowfish por lo tanto deben calcularse antes de comenzar a cifrar o descifrar mensajes propios.

Aplicaciones:

  • Encriptación de datos de usuarios en la nube
  • Encriptación masiva
  • Generación Aleatoria de bits
  • Cifrado de Paquetes
  • Hashing

Debilidades:

  • La clave no debe cambiar constantemente.
  • Si es para comunicaciones de N personas se necesitan claves para cada pareja.

Desencriptación: Se hace de la misma manera que la encriptación solo que P1,...,P18 son usados en orden inverso.

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 pueden factorizar números grandes en tiempo polinómico, lo que podría romper la seguridad de RSA.
  • Hardware: un atacante puede frustrar el sistema de seguridad mediante la variación de voltaje de la alimentación en el dispositivo de la clave privada.

2-DIFFIE HELLMAN:

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:

  1. 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”.
  2. A escoge x ∈ Zp-1 al azar, calcula X = g^x (mod p), y envía X a B.
  3. B escoge y ∈ Zp-1 al azar, calcula Y = g^y (mod p), y encía Y a A.
  4. A calcula K = (g^y mod p)^x mod p.
  5. B calcula K = (g^x mod p)^y mod p.
  6. Siendo la clave “K”.

Ataques:

  • Control de tiempos.
  • Autenticación previa de ambas partes.
  • Autenticación del contenido.
  • Usar un tercero.

3-CURVAS ELÍPTICAS:

La ecuación de Weierstrass para curvas elípticas es y^2 = x^3 + Ax + B. El problema del logaritmo discreto en curvas elípticas es la operación inversa a la potenciación: si g = b^k, entonces k = Log(b)g. 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: La ECC es mucho más compleja que el sistema RSA y puede tener más incertidumbres. También es bastante lenta 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
  • Signal
  • Silence
  • Telegram
  • WhatsApp

Debilidades:

  • Ataque de hombre en medio.
  • Autenticación.
  • Seguridad de punto final.

5-MERKLE HELLMAN:

Es un criptosistema asimétrico que sirve solo para cifrado. La clave pública se usa solo para cifrar y la clave privada se usa solo para descifrar. Generación de claves: las claves están compuestas por secuencias super crecientes. Cifrado: se eligen los elementos de la secuencia difícil que correspondan a bits en 1 del mensaje. Luego se suman los elementos así elegidos y el resultado es el texto cifrado. Descifrado: el multiplicador y el módulo usado para transformar la clave privada en la clave pública también pueden ser usados para transformar el texto cifrado en la suma de los elementos que conforman la subsecuencia super creciente.

Aplicaciones:

  • Encriptación de datos en la nube
  • Encriptación masiva
  • Generación aleatoria de bits
  • Cifrado de paquetes
  • Hashing

Debilidades:

  • El sistema puede ser roto bajo ciertas circunstancias.
  • El problema de la mochila puede ser resuelto en O(n) operaciones.

6-GOLDWASSER-MICALI-RIVEST:

Es un esquema de firma robusto contra el ataque de mensaje elegido adaptativo llamado GMR. Ningún adversario que recibe firmas por primera vez a los mensajes de su elección puede crear una firma de un solo mensaje adicional.

Firma Digital: Es el resultado del valor hash de un mensaje con la clave privada del usuario.

Procedimientos:

  • Permutación de pares sin garras.
  • Mapeo sin prefijo.
  • Árbol de autenticación.

Entradas relacionadas: