Notas de Luis

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:

  • 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

computing/hacking/hack_roadmap/hack_roadmap-2.2.b.txt · Última modificación: por 127.0.0.1