Introducción a los algoritmos simétricos

Los algoritmos simétricos también conocidos como algoritmos de clave secreta se usan ampliamente en el cifrado de datos masivos o flujo de datos. Este es un tipo de algoritmo criptográfico que cifra y descifra los datos utilizando la misma clave (lo que hace que este algoritmo sea simétrico). Se llama clave secreta porque la clave utilizada se mantiene en secreto por los sistemas que participan en el proceso de cifrado y descifrado. El cifrado realizado por este algoritmo no es fácil de romper si la persona que intenta descifrar no tiene la clave secreta, tendrían que usar técnicas avanzadas para romperlo. Estos algoritmos son generalmente de naturaleza muy rápida, lo que es una razón más por la que se usan cuando existe la necesidad de cifrar grandes cantidades de datos. La figura 1.a representa el cifrado de clave simétrica básica:

Figura 1.a Cifrado de clave simétrica

Tipos de algoritmos simétricos

Los algoritmos ampliamente simétricos se clasifican en dos

  • Bloquear
  • Corriente

Algoritmos de bloque

Los algoritmos de bloque encriptan los datos bloque por bloque (muchos bytes). Bloque se refiere al conjunto de bits especificado y estos bits se alteran / encriptan usando una clave secreta. Hay un inconveniente con los algoritmos de bloqueo que es, supongamos que vamos a cifrar los datos de flujo de red, estos datos son retenidos por el sistema de cifrado en sus componentes de memoria. Esta retención de datos se realiza cuando el sistema realmente espera bloques completos de datos. Este tiempo de espera puede conducir a una brecha de seguridad que puede comprometer la seguridad e integridad de los datos. Para evitar esta amenaza, podemos reducir el bloqueo y fusionar los datos con el bloque de datos previamente cifrado hasta que se reciban más bloques, en términos simples, esta técnica se denomina retroalimentación. Este algoritmo solo se cifrará si se recibe el bloque completo.

Algoritmos de flujo

En los algoritmos In-Stream, los datos se cifran byte a byte y, a veces, incluso bit a bit. En el caso del algoritmo de flujo, el sistema no retiene los datos en la memoria, por lo tanto, se puede decir que esto es mucho más seguro en comparación con el algoritmo de bloqueo, ya que los datos no se retienen en el sistema sin cifrado.

Además, hay varios tipos de algoritmos de cifrado de los pocos que se enumeran a continuación.

  • DES y Triple DES
  • RC2
  • Blowfish

DES y Triple DES

DES significa un estándar de cifrado de datos que toma un texto plano de 64 bits y lo cifra en un texto cifrado de 64 bits y lo descifra de nuevo con la ayuda de una clave de 56 bits. En DES, el proceso de cifrado comienza con una etapa de permutación inicial donde tomará la entrada como datos de 64 bits y los permutará de una manera predefinida. Seguido de la permutación inicial es que 16 rondas de cifrado Feistel (un cifrado Feistel toma la entrada y la divide en dos partes y realiza el cifrado en una sola parte) donde cada ronda utilizará una clave de cifrado de 48 bits diferente. Para fines de cifrado y descifrado, utiliza un cifrado y revierte el algoritmo de cifrado. Finalmente, los datos pasan por la etapa final de permutación para recuperar el texto cifrado. Similar a DES Triple DES no es más que cifrado DES repetido 3 veces. La figura 2.a muestra la arquitectura genérica del algoritmo DES.

Arquitectura genérica del algoritmo DES

RC2

Este es un algoritmo de cifrado de bloques donde al principio los datos se dividen en un tamaño de bloque de 8 bytes y estos bloques se procesan por separado. Este algoritmo fue ampliamente utilizado en los años 90. El cifrado Rc2 utiliza una clave de usuario secreta cuyo tamaño puede variar de un byte a 128 bytes. Toma esta clave de usuario secreta y utiliza un algoritmo de expansión de clave y cifra los datos. Este algoritmo está diseñado de tal manera que puede implementarse fácilmente en microprocesadores de 16 bits. Aquí no hay rondas de Feistel, en cambio, los datos se someten a 18 rondas de mezcla y maceración. La figura 2.b muestra la arquitectura genérica del algoritmo RC2.

Arquitectura genérica del algoritmo RC2

Blowfish

Este es un algoritmo asimétrico que reemplaza a DES. Aquí el tamaño de bloque utilizado es de 64 bits y los tamaños de clave van de 32 a 448 bits. El cifrado con pez globo consiste principalmente en dos etapas

  • Función redonda
  • Operación de salida

La función redonda realiza los siguientes pasos

  1. Blanqueamiento de teclas, donde se toma la porción izquierda de los datos de entrada y se realiza una operación OR exclusiva sobre ellos.
  2. En el segundo paso, usa cajas S, estas cajas S asignan datos de 8 bits a 32 bits y la salida se combina con una combinación de operaciones de suma y XOR
  3. Los dos pasos anteriores combinados se conocen como la función F. Con la salida de la función F y el lado derecho de los datos de entrada, se realiza la operación XOR.
  4. El paso final implica el intercambio de la salida.

La función de salida venera el intercambio final y realiza el blanqueamiento de salida. La salida de esta función es un texto cifrado blowfish. El descifrado con blowfish implica el uso de la misma estructura que el cifrado, ya que utiliza un cifrado Feistel, pero las claves redondas deben usarse en orden inverso. La principal ventaja de este algoritmo es que está disponible en el dominio público para que sea fácilmente accesible. Los inconvenientes son básicamente que es un poco lento generar las claves y si el tamaño del bloque es pequeño es vulnerable a los ataques.

Aplicaciones de algoritmos simétricos

Algunos de los lugares donde se utiliza el algoritmo de cifrado simétrico son

  • Las transacciones con tarjeta se utilizan para evitar robos de identidad y transacciones fraudulentas.
  • Para confirmar la identidad del mensajero.
  • Hashing y generación de números aleatorios
  • Cifrado de base de datos

Conclusión: algoritmos simétricos

Los algoritmos simétricos son mucho más rápidos y eficientes en comparación con los algoritmos asimétricos. Esta es una razón más por la que se usan en el cifrado masivo. Pero su inconveniente es que la gestión de claves es muy exhaustiva, por lo tanto, el mantenimiento a gran escala es una tarea tediosa, donde necesitamos tener una seguridad de alto grado, para lograr esto debemos haber mantenido el ciclo de vida de la clave generada usando el sistema separado . Por lo tanto, siempre debemos usar el cifrado adecuado para evitar cualquier ataque a nuestros datos.

Artículos recomendados

Esta es una guía de algoritmos simétricos. Aquí discutimos la Introducción y los Tipos de Algoritmos Simétricos junto con DES y Triple DES. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. ¿Qué es WebSocket?
  2. Seguridad de aplicaciones web
  3. Carrera en Desarrollo Web
  4. Carreras en diseño web
  5. Bloqueo de modos de operación de cifrado
  6. Ejemplos de algoritmo C ++