PDF Redes de Comunicaciones en PDF.
Subsecciones

9.2 Algoritmos

Como hemos comentado existen tres tipos básicos de algoritmos:

9.2.1 Cifrado simétrico (DES, 3DES, AES, RCx e IDEA)

Los algoritmos informáticos de cifrado simétrico se basan principalmente en la trasposición de bloques (block cipher) de bits en base a claves binarias.

9.2.1.1 DES y 3DES

El algoritmo DES (Data Encryption Standard) creado en 1976 requiere una clave de 64 bits, de los cuales utiliza únicamente 56 bits siendo los otros 8 un control de paridad.

Para mejorar la seguridad se creo Triple DES (TDES o 3DES), que consiste en utilizar tres veces DES, cifrando y/o descifrando con una, dos o tres claves diferentes. Así DES-EEE1 cifra tres veces con la misma clave, mientras que DES-EDE3 cifra-descifra-cifra con tres claves diferentes (al usar para descifrar una clave diferente que para cifrar, en realidad se complica el cifrado). Las variantes más seguras son DES-EEE3 y DES-EDE354.

Si se utilizan 3 claves diferentes la longitud de la clave usada es de 168 bits (56x3) pero la seguridad efectiva55 es de 112 bits.

3DES es un algoritmo seguro pero lento, que permitió seguir utilizando dispositivos creados para DES. Sin embargo está siendo sustituido por AES (Advanced Encryption Standard).

9.2.1.2 AES

AES (Advanced Encryption Standard) es uno de los algoritmos más utilizados, ya que se convirtió en estándar en 2002. Utiliza un tamaño de bloque de 128 bits y claves de 128, 192 o 256 bits. AES es rápido tanto por software como por hardware, es relativamente sencillo de implementar y requiere poca memoria en el proceso.

9.2.1.3 RCx

RC4 (Rivest Cipher o Rons Code) era el algoritmo de cifrado por software más utilizado en parte por ser el algoritmo utilizado por SSL y WEP. Este algoritmo utiliza un sistema de cifrado de flujo (stream cipher) no de trasposición de bloques. Esto hace que sea rápido y sencillo. Sin embargo este algoritmo es fácilmente atacable si la clave de flujo (keystream) no se descarta, o no es aleatoria o cambia en relación a la clave anterior o se usa varias veces la misma.

Utiliza una clave de entre 40 y 256 bits y no se recomienda su uso ya que no aporta seguridad suficiente.

RC4 ha sido sustituido por RC5 y RC6 que utilizan trasposición de bloques. RC6 utiliza un tamaño de bloque de 128 bits y claves de 128, 192 o 256 bits (como AES), aunque puede parametrizarse con otros valores.

ARCFour (Alleged RC4) es un algoritmo libre al parecer compatible con RC4 (algoritmo patentado y cerrado).

9.2.1.4 IDEA

IDEA (International Data Encryption Algorithm) es un algoritmo de trasposici ón de bloques de 64 bits con clave de 128 bits. Se usa en PGPv2 (Pretty Good Privacy) y es opcional en OpenPGP dado que está sujeto a licencia en algunos paises.

9.2.2 Cifrado asimétrico (RSA, ElGamal, DSA y ECDSA)

El esquema propuesto por Diffie-Hellman en 1976 era un modelo teórico. La primera realización robusta del modelo Diffie-Hellman apareció en 1978 (RSA78: Rivest-Shamir-Adleman 1978).

El algoritmo de cifrado RSA es reversible, es decir, además de permitir cifrar con la clave pública y descifrar con la privada, permite cifrar con la clave privada y descifrar con la pública. Así se puede utilizar tanto para obtener confidencialidad (cifrando con la clave pública del destinatario) como para firmar (cifrando con la clave privada del emisor).

La primera versión de RSA (RSA base) no es suficientemente segura. En cambio RSA Security publica los PKCS (Public Key Cryptography Standards)56 que definen los detalles de las implementaciones de RSA, y esquemas criptográficos de seguridad, incluyendo certificados, etc.

Se basa en la función me mod n=s con amplias restricciones para cada parámetro utilizado.

La clave pública se compone de n (n=pq) y e (e=mínimo común múltiplo(p-1,q-1)). La clave privada es un número d que cumple de4#41 (mod 5#5(n))57 (p y q son números primos grandes).

Dado un número cualquiera m (el mensaje a cifrar) se obtiene el número c (mensaje cifrado) c4#4me (mod n). A partir de c (mensaje cifrado), d (clave privada) y n (parte de la clave pública) se puede obtener m (el mensaje original sin cifrar) mediante m4#4cd (mod n).

El cifrado ElGamal (1984) es otra implementación, pero se basa en logaritmos discretos. Se utiliza en GPG y PGP.

DSA (Digital Signature Algorithm) es un algoritmo de clave asimétrica no reversible adoptado en 1993 para el estándar DSS (Digital Signature Standard)58. Como su nombre indica, sirve para firmar, no para cifrar información -dado que no es reversible-. Se basa en la dificultad de calcular logaritmos discretos en campos finitos -métodos de Schnorr y ElGamal-.

DSA primero selecciona un algoritmo de resumen (generalmente uno de la familia SHA) y una longitud de clave (inicialmente un múltiplo de 64 entre 512 y 1024, pero actualmente 1024, 2048 o 3072).

Utiliza la función g = h(p-1)/q mod p y y = gx mod p con varias restricciones sobre los parámetros, siendo (p,q,g,y) la clave pública y (x) la clave privada.

ECDSA (Elliptic Curve DSA) es una variante de DSA que utiliza CCE. En teoría es mucho más seguro que DSA y genera firmas del mismo tamaño.

9.2.3 Resumen (CRC-32, MD5 y SHA)

No son realmente algoritmos de cifrado sino que generan un resumen (Digest, Hash o Checksum) que permite verificar la integridad del fichero o mensaje pero no permite obtener el original59. Los principales son: MD5 (Message-Digest 5) y SHA (Secure Hash Algorithm). Tanto SHA-1 como MD5 descienden de MD4.

A este resumen a veces se le llama firma de fichero lo que puede llevar a confusión con los algoritmos de firma electrónica, que incluyen cifrado y estampado de tiempo.

MD5 (Message-Digest algorithm 5) es una función de resumen ampliamente difundida que genera resúmenes de 128 bits, expresada habitualmente como un número hexadecimal de 32 digitos. Actualmente se pueden generar colisiones arbitrariamente60 por lo que está empezando a ser sustituido.

Los algoritmos SHA (Secure Hash Algorithm) son un conjunto de funciones (SHA-0, SHA-1 y SHA-2). SHA-1 es la versión más empleada y se utiliza entre otros en SSL y TLS, PGP, SSH, S/MIME e IPSec. SHA-1 genera resúmenes de 160 bits y se han encontrado debilidades teóricas.

Por su parte SHA-2 utiliza un algoritmo muy similar a SHA-1 pero genera resúmenes de tamaño variable conociendose las variantes como SHA-224, SHA-256, SHA-384 y SHA-512. Debido a las debilidades teóricas expuestas en SHA-1, y por tanto SHA-1, está en desarrollo SHA-3.



Notas al pie

... DES-EDE354
Se puede observar que DES-EDE1 equivale a DES.
... efectiva55
Se dice que un algoritmo tiene una seguridad efectiva de N bits si un ataque por fuerza bruta necesitaría del orden de 2n intentos para tener éxito.
... Standards)56
PKCS#1 (v 2.1) define el esquema RSA; PKCS#3 (v. 1.4) define el intercambio DH. Hasta PKCS#15 (algunos obsoletos) que definen varios esquemas más de seguridad criptográfica.
...57
Relación de congruencia entre de y 1 con módulo 5#5(n). Es decir de mod 5#5(n) = 1 mod 5#5(n).
... Standard)58
Aunque ha sufrido también algunas modificaciones desde entonces.
... original59
P.e. la letra del NIF se calcula a partir del DNI.
... arbitrariamente60
Crear un archivo que genere el mismo resumen y por tanto permita sustituir al archivo original.
2009-05
 
Creative Commons License 2009-05 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los documentos bajo los términos de la licencia
"Reconocimiento-Compartir bajo la misma licencia 3.0 España" de Creative Commons.
Puede ver una copia de esta licencia completa.

Redes de Comunicaciones, LAN, WAN, ISO OSI, IP, Ethernet, IEEE 802.11, Wi-Fi, PDH, RDSI, Frame-Relay, xDSL, CATV, VPN, H.323, SIP, Multimedia