Tabla de Contenidos
Criptografía Simétrica y Asimétrica
La criptografía, fundamental en la protección de datos y la seguridad de las comunicaciones, se divide principalmente en dos categorías: criptografía simétrica y asimétrica. Cada una tiene sus propias características, ventajas y aplicaciones. A continuación, se desarrollan estos conceptos en detalle.
Criptografía Simétrica
Conceptos Clave:
- Clave Única: Utiliza la misma clave para cifrar y descifrar los datos.
- Velocidad: Generalmente más rápida y eficiente que la criptografía asimétrica.
- Confidencialidad: La seguridad depende de mantener la clave secreta.
- Aplicaciones Comunes: Cifrado de datos en disco, comunicación segura en redes privadas.
Ejemplos de Algoritmos Simétricos:
- DES (Data Encryption Standard): Algoritmo de cifrado simétrico de bloque con una longitud de clave de 56 bits.
Texto Original: SECRET Clave: 123456 Texto Cifrado: (cifrado usando DES)
- AES (Advanced Encryption Standard): Algoritmo de cifrado simétrico de bloque que puede usar claves de 128, 192 o 256 bits.
Texto Original: SECRET Clave: 1234567890ABCDEF1234567890ABCDEF Texto Cifrado: (cifrado usando AES)
Ejemplo de Uso de AES en Python:
from Crypto.Cipher import AES import os def encrypt_AES_GCM(msg, secretKey): aesCipher = AES.new(secretKey, AES.MODE_GCM) ciphertext, authTag = aesCipher.encrypt_and_digest(msg) return (ciphertext, aesCipher.nonce, authTag) secretKey = os.urandom(32) # Use a secure random key of 256 bits msg = b'SECRET' (ciphertext, nonce, authTag) = encrypt_AES_GCM(msg, secretKey) print(f'Ciphertext: {ciphertext}')
Recursos:
Criptografía Asimétrica
Conceptos Clave:
- Par de Claves: Utiliza un par de claves, una pública y una privada. La clave pública cifra los datos y la clave privada los descifra.
- Seguridad: La clave privada debe mantenerse secreta, mientras que la clave pública puede distribuirse libremente.
- Aplicaciones Comunes: Firmas digitales, intercambio de claves, cifrado de emails.
Ejemplos de Algoritmos Asimétricos:
- RSA (Rivest-Shamir-Adleman): Algoritmo de cifrado asimétrico ampliamente utilizado para la transmisión segura de datos.
Clave Pública: (clave pública RSA) Texto Original: SECRET Texto Cifrado: (cifrado usando clave pública RSA)
- ECC (Elliptic Curve Cryptography): Utiliza curvas elípticas para proporcionar un alto nivel de seguridad con claves más pequeñas.
Clave Pública: (clave pública ECC) Texto Original: SECRET Texto Cifrado: (cifrado usando clave pública ECC)
Ejemplo de Uso de RSA en Python:
from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP import binascii key = RSA.generate(2048) public_key = key.publickey().export_key() private_key = key.export_key() msg = b'SECRET' rsa_public_key = RSA.import_key(public_key) cipher = PKCS1_OAEP.new(rsa_public_key) ciphertext = cipher.encrypt(msg) print(f'Ciphertext: {binascii.hexlify(ciphertext)}') rsa_private_key = RSA.import_key(private_key) cipher = PKCS1_OAEP.new(rsa_private_key) plaintext = cipher.decrypt(ciphertext) print(f'Plaintext: {plaintext}')
Recursos:
Comparación entre Criptografía Simétrica y Asimétrica
| Característica | Criptografía Simétrica | Criptografía Asimétrica |
| Clave | Única (misma para cifrar y descifrar) | Par de claves (pública y privada) |
| Velocidad | Más rápida | Más lenta |
| Seguridad | Depende de la secrecía de la clave | Depende de la seguridad de la clave privada |
| Uso Común | Cifrado de datos en reposo, VPN | Firmas digitales, intercambio de claves |
| Tamaño de Clave | Más corto (128-256 bits) | Más largo (1024-4096 bits) |
Aplicaciones Combinadas
En la práctica, ambos tipos de criptografía a menudo se utilizan juntos para aprovechar las fortalezas de cada uno. Un ejemplo común es el uso de criptografía asimétrica para el intercambio seguro de una clave simétrica, que luego se utiliza para cifrar grandes volúmenes de datos de manera eficiente.
Ejemplo de Protocolo Híbrido:
- Intercambio de Claves: Utilizando RSA para intercambiar una clave AES.
* Clave AES generada. * Clave AES cifrada con la clave pública RSA del receptor. * Clave AES cifrada enviada al receptor.
- Cifrado de Datos: Utilizando AES para cifrar los datos con la clave
compartida.
* Datos cifrados usando la clave AES. * Datos cifrados enviados al receptor.
Recursos:
Conclusión
La comprensión de la criptografía simétrica y asimétrica es fundamental para asegurar la información en entornos digitales. Mientras que la criptografía simétrica es eficiente para el cifrado de grandes volúmenes de datos, la criptografía asimétrica proporciona un mecanismo seguro para el intercambio de claves y la autenticación. Juntas, estas técnicas forman la base de muchas aplicaciones y protocolos de seguridad modernos.
Recursos Adicionales
- Cryptography Overview (Geeks for Geeks)