Tabla de Contenidos

Up

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:

Ejemplos de Algoritmos Simétricos:

Texto Original: SECRET
Clave: 123456
Texto Cifrado: (cifrado usando DES)
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:

Ejemplos de Algoritmos Asimétricos:

  Clave Pública: (clave pública RSA)
  Texto Original: SECRET
  Texto Cifrado: (cifrado usando clave pública RSA)
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:

  * Clave AES generada.
  * Clave AES cifrada con la clave pública RSA del receptor.
  * Clave AES cifrada enviada al receptor.

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