Está en la página 1de 30

Algoritmos simétricos y asimétricos

Funciones del hash criptográfico

Los hash criptográficos se usan para comprobar y garantizar la integridad de los datos. El
hashing se basa en una función matemática unidireccional que es relativamente fácil de
computar, pero mucho más difícil de revertir. El café molido es una buena analogía de una
función unidireccional. Es fácil moler los granos de café, pero es casi imposible volver a unir
todas las partes minúsculas para reconstruir los granos originales. La función de hash
criptográfico puede utilizarse también para verificar la autenticación.
Como se ve en la Figura 1, una función de hash toma un bloque variable de datos binarios, llamado
mensaje, y produce una representación condensada de longitud fija, denominada hash. El hash
resultante, a veces, también se denomina síntesis del mensaje, síntesis o huella digital.
En la Figura 2, los archivos config.txt y config-bk.txt tienen el mismo valor de hash. Esto significa que el
contenido de estos archivos es idéntico. La función de hash criptográfico se aplica en muchas
situaciones diferentes con fines de autenticación de entidades, integridad de los datos y autenticidad de
los datos.
Funcionamiento del hash criptográfico

En matemática, se utiliza la ecuación h= H(x) para explicar cómo funciona un algoritmo de hash. Como
se ve en la figura, la función de hash H toma un valor de entrada x y arroja un valor hash h de cadena
de tamaño fijo.
Una función de hash criptográfica tiene las siguientes propiedades:

 La entrada puede ser de cualquier longitud.


 La salida tiene una longitud fija.
 H(x) es relativamente fácil de calcular para cualquier valor x dado.
 H(x) es unidireccional y no reversible.
 H(x) está libre de colisiones, lo que significa que dos valores diferentes de entrada darán como
resultado valores diferentes de hash.
MD5 y SHA

Las funciones de hash se utilizan para garantizar la integridad de un mensaje. Garantizan que los datos
no hayan cambiado accidental o intencionalmente.

En la Figura 1, el remitente envía una transferencia de USD 100 a Alex. El emisor quiere asegurarse de
que el mensaje no se modifique en su recorrido hasta el receptor.
Existen tres funciones de hash muy conocidas:

•MD5 con síntesis de 128 bits: desarrollada por Ron Rivest y utilizada en una variedad de
aplicaciones de Internet, MD5 es una función unidireccional que produce un mensaje hash de 128 bits,
como se ve en la Figura 2. MD5 se considera un algoritmo obsoleto y se debe evitar o usar solamente
cuando no haya mejores alternativas disponibles. Se recomienda utilizar SHA-2 en su lugar.
•SHA-1: fue desarrollada por el National Institute of Standards and Technology (NIST) de EE. UU. en
1994 y es muy similar a la función de hash MD5, como se ve en la Figura 3. Existen numerosas
versiones. SHA-1 crea un mensaje hash de 160 bits y es un poco más lento que MD5. SHA-1 tiene
defectos conocidos y es un algoritmo obsoleto.

•SHA-2: desarrollado por el NIST, incluye SHA-224 (224 bits), SHA-256 (256 bits), SHA-384
(384 bits) y SHA-512 (512 bits). SHA-256, SHA-384 y SHA-512 son algoritmos de última generación
y deben utilizarse siempre que sea posible.
Cifrado

Hay dos clases de encriptación utilizadas para brindar confidencialidad de los datos. Estas
dos clases se diferencian en cómo utilizan las claves:

•Algoritmos de encriptación simétrica: los algoritmos de encriptación utilizan la misma clave para
encriptar y desencriptar los datos. Se basan en la premisa de que cada participante de la comunicación
conoce la clave precompartida.

•Algoritmos de encriptación asimétrica: los algoritmos de encriptación utilizan diferentes claves para
encriptar y desencriptar los datos. Se basan en la premisa de que los dos participantes de la
comunicación no han compartido previamente un secreto y deben establecer un método seguro para
hacerlo. Estos algoritmos requieren muchos recursos y son más lentos para ejecutar.
Cifrado simétrico

Los algoritmos simétricos utilizan la misma clave precompartida para encriptar y desencriptar datos.
Antes de que ocurra cualquier comunicación encriptada, el emisor y el receptor conocen la clave
precompartida, también llamada clave secreta.
Algoritmos de encriptación simétrica

Los algoritmos de encriptación suelen clasificarse del siguiente modo:

•Cifrado por bloques: los cifrados por bloques transforman un bloque de longitud fija de texto sin formato
en un bloque común de texto cifrado de 64 o 128 bits, como se ve en la Figura 1. Los cifrados por bloques
más comunes incluyen DES (con un tamaño de bloque de 64 bits) y AES (con un tamaño de bloque de
128 bits).
•Cifrados de flujo: los cifrados de flujo encriptan el texto sin formato de a un byte o un bit, como se ve
en la Figura 2. Los cifrados de flujo son, básicamente, un cifrado por bloques con un tamaño de bloque
de un byte o bit. Los cifrados de flujo suelen ser más rápidos que los cifrados por bloques, debido a
que los datos se encriptan continuamente. Algunos ejemplos del cifrado de flujo son RC4 y A5, que se
utiliza para encriptar comunicaciones de telefonía celular GSM. También es posible usar el estándar de
encriptación de datos (DES, Data Encryption Standard) en el modo de cifrado de flujo.
Entre los algoritmos de cifrado simétricos se incluyen los siguientes:

•Estándar de encriptación de datos (DES): este es un algoritmo de encriptación simétrica antiguo y


obsoleto. Puede utilizarse en el modo de cifrado de flujo, pero suele funcionar en el cifrado por bloques
mediante la encriptación de datos en tamaños de bloque 64 bits. En la Figura 3 de resume DES.
•3DES (DES triple): esta es una versión más reciente del DES, pero repite el proceso de algoritmo
de DES tres veces. Exige más recursos informáticos que DES. El algoritmo básico se ha comprobado
muy bien en el campo durante más de 35 años y, por lo tanto, se considera muy confiable cuando se
implementa con claves de duración muy breve. En la Figura 4, se resume 3DES.
•Estándar de encriptación avanzada (AES): basado en el cifrado Rijndael, es un algoritmo de
encriptación simétrica popular y recomendado. Ofrece nueve combinaciones de longitud de clave y
bloque utilizando una longitud de clave variable de 128, 192 o 256 bits para encriptar los bloques de
datos que son de 128, 192 o 256 bits de largo. AES es un algoritmo seguro y más eficiente que 3DES.
En la Figura 5, se resume AES. El modo de contador de AES (AES-CTR) es el algoritmo de
encriptación preferido para SSHv2. Puede utilizar cualquiera de las longitudes de clave de AES, como
AES256-CTR.
•Algoritmo de encriptación optimizado por software (SEAL, Software-Optimized Encryption
Algorithm): SEAL es una alternativa de algoritmo rápido de encriptación simétrica para usar en lugar
de DES, 3DES y AES. Es un cifrado de flujo que utiliza una clave de encriptación de 160 bits. SEAL
tiene un impacto menor en la CPU en comparación con otros algoritmos basados en software, pero
todavía se considera en fase de prueba. En la Figura 6, se resume SEAL.
•Cifrados de Rivest (RC, Rivest Cipher): algoritmos de serie (incluye RC2, RC4, RC5 y RC6) que
desarrolló Ron Rivest. Se han desarrollado numerosas variantes, pero RC4 es la de uso más frecuente.
RC4 es un cifrado de flujo y se utiliza para proteger el tráfico web de SSL y TLS. En la figura 7, se
resumen los algoritmos de RC.
Algoritmos de cifrado asimétrico

Los algoritmos asimétricos, también llamados algoritmos de claves públicas, están diseñados para que la
clave de encriptación y la de desencriptación sean diferentes, como se ve en la Figura 1. En cualquier plazo
razonable, no es posible calcular la clave de desencriptación a partir de la clave de encriptación, y
viceversa.
Uso de firmas digitales

Las firmas digitales son una técnica matemática utilizada para proporcionar tres servicios básicos de
seguridad.
Las firmas digitales se utilizan comúnmente en las siguientes dos situaciones:

•Firma de código: se utiliza para fines de integridad y autenticación de datos. La firma de código se
utiliza para verificar la integridad de los archivos ejecutables descargados del sitio web de un proveedor.
También utiliza certificados digitales firmados para autenticar y verificar la identidad de un sitio.

•Certificados digitales: estos son similares a una tarjeta de identificación virtual y se usan para
autenticar la identidad del sistema con un sitio web de un proveedor, además de establecer una conexión
encriptada para intercambiar datos confidenciales.
Se utilizan tres algoritmos del Estándar de firmas digitales (Digital Signature Standard, DSS) para
generar y verificar firmas digitales:

•Algoritmo de firma digital (DSA, Digital Signature Algorithm): DSA es el estándar original para
generar pares de claves públicas y privadas, y para generar y verificar firmas digitales. En la Figura 3,
se resume el DSA.

•Algoritmo de Rivest-Shamir-Adelman (RSA): RSA es un algoritmo asimétrico que se utiliza


comúnmente para generar y verificar firmas digitales. En la Figura 4, se resume el RSA.

•Algoritmo de firma digital de curva elíptica (ECDSA, Elliptic Curve Digital Signature Algorithm):
ECDSA es una nueva variante de DSA y proporciona autenticación de firma digital e imposibilidad de
negación, con el beneficio agregado de eficiencia informática, tamaños de firma pequeños y ancho de
banda mínimo.

También podría gustarte