Fundamentos de Criptografía: Exploración de Algoritmos Simétricos y Asimétricos

Cifrado por Transposición

e) Cifrado AMSCO

Es una transposición columnar en la que los elementos del texto cifrado son escogidos, alternativamente, como letras simples y pares de letras. Así, la palabra MATEMÁTICAMENTE será cifrada con la clave COPLA como sigue: TTE MIC MAN ATA EME.

f) Cifrado por Transposición por Ruta

Consiste en repartir el mensaje a cifrar en una figura geométrica, normalmente un paralelepípedo, y definir una ruta para leer el mensaje. La complejidad de la ruta determinará la fuerza del cifrado. Pueden establecerse distintas rutas; por ejemplo, para la palabra EUFORICAS se puede ordenar en tres columnas de igual longitud.

Otros Cifrados por Transposición

  • g) Cifrado por permutación de grupos
  • h) Cifrado por permutación por series
  • i) Cifrado por rejillas criptográficas

2.2.5 Algoritmos de Criptografía Simétrica

a) DES (Data Encryption Standard o Estándar de Cifrado de Datos) o DEA (Data Encryption Algorithm)

Es un algoritmo de cifrado por bloques de 64 bits, con clave de 56 bits (se eliminan 8 bits de paridad). Emisor y receptor deben conocer la clave secreta, la que se intercambia habitualmente mediante algoritmos de clave pública. Se usa para cifrar y descifrar mensajes, generar y verificar códigos de autenticación de mensajes (MAC) y para cifrado de un solo usuario (por ejemplo, guardar un archivo en disco). Los ataques se realizan comúnmente con hardware específico que, mediante fuerza bruta, pueden descubrir una clave en pocos días debido al tamaño limitado de la clave.

Fases del Algoritmo DES

  1. Fraccionamiento del texto en bloques de 64 bits (8 bytes).
  2. Permutación inicial de los bloques.
  3. Partición de los bloques en dos partes: izquierda (L) y derecha (R).
  4. Fases de permutación y de sustitución repetidas 16 veces (rondas).
  5. Reconexión de las partes izquierda y derecha, seguida de la permutación inicial inversa.

Puntos Clave del Algoritmo DES

  • Permutación inicial: Reordenamiento inicial de los bits del bloque.
  • División en bloques de 32 bits: El bloque de 64 bits se divide en dos bloques de 32 bits llamados L (Left) y R (Right).
  • Fases de permutación y de sustitución repetidas (Rondas): Los bloques Ln y Rn sufren transformaciones iterativas llamadas rondas. Cada una de las 16 iteraciones realiza transformaciones y sustituciones. El resultado de cada iteración Ti es la concatenación de las partes Li y Ri, es decir, Ti = Li || Ri (1 ≤ i ≤ 16).
  • Reconexión de bloques izquierdo y derecho (Permutación inicial inversa): Al final de las 16 iteraciones, los dos bloques L16 y R16 se vuelven a conectar y se someten a una permutación final (inversa de la inicial), con la que se obtiene el texto cifrado de 64 bits.

b) Triple-DES (3DES)

Se cifra tres veces utilizando el algoritmo DES. Esto se puede hacer de varias maneras:

  • DES-EEE3: Tres cifrados DES consecutivos con tres claves distintas (K1, K2, K3).
  • DES-EDE3: Tres operaciones DES con la secuencia cifrar-descifrar-cifrar, utilizando tres claves diferentes (K1, K2, K3).
  • DES-EEE2 y DES-EDE2: Similar a los anteriores, pero la primera y tercera operación emplean la misma clave (K1 = K3).

Dependiendo del método elegido, el grado de seguridad varía; el método más seguro es el DES-EDE3 (o DES-EEE3 si se usan tres claves independientes).

c) AES (Advanced Encryption Standard)

Es un algoritmo de cifrado por bloques que se ha convertido en el estándar de cifrado simétrico actual, reemplazando al DES. Soporta tamaños de bloque de 128 bits y tamaños de clave de 128, 192 y 256 bits.

d) RC2 (Ron’s Code o Rivest’s Cipher 2)

Es un algoritmo de cifrado por bloques con clave de tamaño variable. Trabaja con bloques de 64 bits y es aproximadamente tres veces más rápido que el DES en implementaciones de software. Si se eligen claves de mayor tamaño, es más seguro que el DES ante ataques de fuerza bruta.

e) RC4

Es un algoritmo de cifrado de flujo (stream cipher) con tamaño de clave variable y operaciones a nivel de byte. Se basa en el uso de una permutación aleatoria y tiene un periodo estimado de más de 10100. Además, es un algoritmo de ejecución rápida en software. Se emplea para cifrado de ficheros y para cifrar la comunicación en protocolos como SSL/TLS.

f) RC5

Es un algoritmo parametrizable con tamaño de bloque variable (32, 64 o 128 bits), tamaño de clave variable (0 a 2048 bits) y número de rondas variable (0 a 255). Los valores más comunes de los parámetros son 64 o 128 bits para el tamaño de bloque. Fue diseñado en 1994 por Ron Rivest. El RC5 tiene 3 rutinas: expansión de la clave, cifrado y descifrado. En la primera rutina, la clave proporcionada por el usuario se expande para llenar una tabla de subclaves cuyo tamaño depende del número de rondas.

g) IDEA (International Data Encryption Algorithm)

Es un algoritmo de cifrado por bloques iterativo que opera sobre bloques de 64 bits. La clave es de 128 bits y el cifrado precisa 8 rondas complejas. El algoritmo funciona de la misma forma para cifrar que para descifrar (excepto en el cálculo de las subclaves). Es fácilmente implementable en hardware y software, aunque algunas de las operaciones que realiza no son eficientes en software, por lo que su eficiencia es similar a la del DES.

h) SAFER (Secure And Fast Encryption Routine)

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 rondas, pero se recomienda un mínimo de seis. El algoritmo original fue considerado inmune al criptoanálisis lineal y diferencial.

i) Blowfish

Es un algoritmo de cifrado por bloques de 64 bits desarrollado por Bruce Schneier. Es un algoritmo de tipo red de Feistel y cada ronda consiste en una permutación que depende de la clave y una sustitución que depende de la clave y los datos. Todas las operaciones se basan en operaciones XOR (o exclusivas) sobre palabras de 32 bits. La clave tiene tamaño variable (con un máximo de 448 bits) y se emplea para generar varios vectores de subclaves. Este algoritmo está diseñado para procesadores de 32 bits y es mucho más rápido que el DES. Es considerado seguro, aunque se han descubierto algunas claves débiles.

2.3 Criptografía Asimétrica

La criptografía asimétrica utiliza dos claves complementarias llamadas clave privada y clave pública. Ambas claves pertenecen a una entidad (por ejemplo, el remitente o receptor del mensaje). La clave pública puede ser conocida y distribuida a múltiples personas, mientras que la clave privada debe permanecer secreta y bajo el control exclusivo de su propietario. Este par de claves solo puede ser generado una vez de forma única.

Componentes: Texto claro, Texto cifrado, Clave pública, Clave privada, Algoritmo de cifrado, Algoritmo de descifrado.

Concepto y Variantes

Existen dos variantes principales de uso:

  • Cifrado con clave pública (Confidencialidad): El emisor usa la clave pública del receptor para cifrar el mensaje. Una vez cifrado, solo la clave privada del receptor podrá descifrar este mensaje. Esto garantiza la confidencialidad del mensaje, asegurando que solo el destinatario previsto pueda leerlo.
  • Cifrado con clave privada (Autenticación / Firma Digital): El emisor (propietario del par de claves) usa su clave privada para cifrar el mensaje (o un resumen del mismo). Cualquiera puede descifrarlo utilizando la clave pública del emisor. Esto logra la identificación y autenticación del emisor, demostrando que el mensaje proviene de quien posee la clave privada (concepto de firma electrónica).

Fundamentos Matemáticos

Se basa en funciones matemáticas unidireccionales (fáciles de calcular en una dirección pero computacionalmente inviables de invertir sin información adicional) y problemas matemáticos difíciles de resolver, tales como:

  • Factorización de números primos grandes.
  • Cálculo del logaritmo discreto.
  • El problema de la mochila (knapsack problem), especialmente en variantes con ‘trampa’.

Ramas Principales: Cifrado y Firmas Digitales

Dos principales aplicaciones de la criptografía de clave pública son:

  • a) Cifrado de clave pública: Un mensaje cifrado con la clave pública de un destinatario A no puede ser descifrado por nadie (incluyendo al que lo cifró), excepto por A, el dueño de la clave privada correspondiente. Su función principal es garantizar la confidencialidad del mensaje.
  • b) Firmas digitales: Un mensaje firmado con la clave privada del emisor puede ser verificado por cualquier persona que tenga acceso a la clave pública de dicho emisor. La verificación confirma que el mensaje fue firmado por alguien con acceso a la clave privada (autenticación) y que el mensaje no ha sido alterado (integridad). Se utiliza para garantizar la autenticidad e integridad del mensaje.

Requisitos de los Algoritmos Asimétricos

Los algoritmos de cifrado y descifrado asimétricos deben cumplir lo siguiente:

  1. Es computacionalmente simple para una entidad (receptor B) generar el par de claves (pública PUb y privada PRb).
  2. Es computacionalmente simple para un emisor A, conociendo la clave pública del receptor (PUb) y el mensaje a ser cifrado (X), generar el texto cifrado Y = E(PUb, X).
  3. Es computacionalmente simple para el receptor B descifrar el texto cifrado (Y) usando su clave privada (PRb) para recuperar el mensaje original: X = D(PRb, Y) = D(PRb, E(PUb, X)).
  4. Es computacionalmente imposible para un adversario, conociendo la clave pública PUb, determinar la clave privada PRb.
  5. Es computacionalmente imposible para un adversario, conociendo la clave pública PUb y un texto cifrado Y, recuperar el mensaje original X.
  6. Las dos claves (pública y privada) pueden ser aplicadas en operaciones complementarias (como cifrado/descifrado o firma/verificación) en cualquier orden funcional (ej: D(PRb, E(PUb, X)) = X y D(PUb, E(PRb, X)) = X, aunque la segunda operación corresponde a firma y no a cifrado de confidencialidad).

2.3.1 Gestión de Confiabilidad: Modelos de Certificación

Modelos previos de certificación para establecer la confianza en las claves públicas:

  • a) Infraestructura de Clave Pública (PKI – Public Key Infrastructure): Hay una o varias entidades emisoras de certificados (Autoridades de Certificación o CA – Certification Authority) que certifican la autenticidad de la clave pública y los atributos del usuario, a través de su firma digital sobre un certificado.
  • b) Red de Confianza (Web of Trust): Cada nodo es un usuario final y cada uno decide el conjunto de claves públicas en las que confía, basándose en las validaciones de otros usuarios en los que ya confía (modelo usado por PGP).
  • c) Criptografía Basada en Identidad (IBC – Identity-Based Cryptography): Existe un Generador de Claves Privadas (PKG – Private Key Generator) que verifica la identidad del usuario y genera la clave privada correspondiente a la identidad pública del usuario (ej. su email).
  • d) Criptografía Basada en Certificados (CBC – Certificate-Based Cryptography): Cada usuario posee una clave privada y otra pública. La clave pública se envía a una Autoridad de Certificación para su validación y emisión de certificado (similar a PKI tradicional).
  • e) Criptografía Sin Certificados (CLC – Certificateless Cryptography): Utiliza un Centro Generador de Claves (KGC – Key Generator Center) que genera una clave parcial. El usuario combina esta clave parcial con un valor secreto propio para generar su clave privada completa y su clave pública correspondiente.

Niveles de Confianza

Según la autoridad que interviene en el proceso (PKG, KGC o CA) y su capacidad de suplantación:

  • Nivel 1: La autoridad (PKG en IBC) calcula las claves secretas de los usuarios y puede hacerse pasar por cualquier usuario sin ser detectado.
  • Nivel 2: La autoridad (KGC en CLC) no puede calcular las claves secretas completas de los usuarios, pero podría hacerse pasar por un usuario bajo ciertas condiciones o ataques (dependiendo del esquema específico).
  • Nivel 3: La autoridad (CA en PKI y CBC) no puede calcular las claves secretas de los usuarios y tampoco puede hacerse pasar por un usuario sin ser detectado (la confianza se basa en la integridad de la CA y la validez del certificado).

2.3.2 Gestión de Seguridad

En base al segundo principio de Kerckhoffs (la seguridad del sistema debe residir en la clave, no en el secreto del algoritmo), la seguridad se mide principalmente por el tamaño de la clave y el tipo de sistema criptográfico.

Mientras que en el cifrado simétrico, claves de 128 o 256 bits se consideran seguras actualmente, en el cifrado asimétrico se requieren claves mucho más largas debido a la naturaleza de los problemas matemáticos subyacentes. Se recomiendan claves públicas de al menos 2048 bits (para RSA o Diffie-Hellman) para un nivel de seguridad comparable.

2.3.3 Algoritmos Asimétricos Comunes

  • RSA (Rivest-Shamir-Adleman)
  • Diffie-Hellman (intercambio de claves, no cifrado directo)
  • DSA (Digital Signature Algorithm)
  • ElGamal
  • Criptografía de Curva Elíptica (ECC – Elliptic Curve Cryptography)
  • Criptosistema de Merkle-Hellman (basado en el problema de la mochila, mayormente roto)
  • Goldwasser-Micali (probabilístico)
  • Goldwasser-Micali-Rivest (GMR)
  • Cifrado de Extremo a Extremo (End-to-End Encryption – E2EE): No es un algoritmo en sí, sino un sistema que aplica cifrado (usualmente híbrido: asimétrico para claves, simétrico para datos) de forma que solo los puntos finales de la comunicación pueden descifrar.

Estudio Detallado: Algoritmo Triple DES (3DES)

Funcionalidad Base (DES)

  • Se divide el bloque inicial de 64 bits en dos partes: Izquierda (L) y Derecha (R).
  • A la parte derecha (R) se le aplica una función f que involucra expansión, sustitución (S-Boxes) y permutación, combinada con una subclave (Ki) derivada de la clave principal. Esta función aporta confusión y difusión.
  • El resultado de la función f se combina mediante una operación XOR con la parte izquierda (L).
  • Se intercambian las dos partes (la nueva L es la antigua R, la nueva R es el resultado del XOR) y se itera el proceso durante 16 rondas.

Operación de Triple DES

Triple DES aplica el algoritmo DES tres veces consecutivas sobre el mismo bloque de texto plano. Utiliza dos o tres claves externas independientes (de 56 bits efectivos cada una). Las expresiones que representan el cifrado y descifrado más comunes (modo EDE) son:

  • Cifrado: C = EK3(DK2(EK1(M)))
  • Descifrado: M = DK1(EK2(DK3(C)))

Donde M es el mensaje, C es el texto cifrado, E es la función de cifrado DES, D es la función de descifrado DES, y K1, K2, K3 son las claves.

Tipos de 3DES (Variantes de Clave)

Consiste en aplicar DES tres veces. Las variantes principales difieren en cómo se usan las claves:

  • Opción 1 (DES-EDE3 / Keying option 1): Se usan tres claves distintas (K1, K2, K3). Fortaleza efectiva de 168 bits.
  • Opción 2 (DES-EDE2 / Keying option 2): Se usan dos claves distintas (K1 y K2), con K3 = K1. Fortaleza efectiva de 112 bits. Es la variante más comúnmente implementada.
  • Opción 3 (DES-EEE3 / Keying option 3): Se usan tres claves distintas, pero con tres cifrados (E-E-E). Menos común. Si K1=K2=K3, equivale a DES simple.

Aplicaciones

Aunque superado en rendimiento y seguridad por AES, 3DES todavía se encuentra en uso en sistemas heredados, especialmente en:

  • Sistemas de pago electrónico.
  • Estándares de tarjetas de crédito (EMV).
  • Algunas implementaciones de protocolos de comunicación segura como SSL/TLS (aunque se está eliminando gradualmente).

Debilidades

  • Tamaño de bloque pequeño (64 bits): Lo hace vulnerable a ciertos ataques (como Sweet32) cuando se cifran grandes cantidades de datos con la misma clave. Esencialmente, después de cifrar 232 bloques, es probable que ocurran colisiones.
  • Rendimiento: Es significativamente más lento que AES, especialmente en software.
  • Compatibilidad con DES: Si las tres claves (o las dos claves en la opción 2) son iguales (K1=K2=K3), el sistema se reduce a DES simple, perdiendo la seguridad adicional.
  • Fortaleza efectiva: Aunque usa claves de 168 o 112 bits nominales, ataques como el meet-in-the-middle reducen la fortaleza efectiva teórica (aunque sigue siendo computacionalmente caro romperlo por fuerza bruta). La fortaleza de 112 bits (Opción 2) es la más relevante en la práctica.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.