0% encontró este documento útil (0 votos)
10 vistas4 páginas

Práctica RSA: Cifrado con Python y CyberChef

El documento describe una práctica de RSA que simula una comunicación segura entre grupos mediante la generación de pares de claves RSA, cifrado y descifrado de mensajes utilizando Python y CyberChef. Incluye instrucciones detalladas para implementar ambas técnicas, así como reflexiones sobre el uso de cifrado simétrico y la importancia de mantener la clave privada segura. Se enfatizan las ventajas y desventajas de cada enfoque en la práctica.

Cargado por

83espajuge
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas4 páginas

Práctica RSA: Cifrado con Python y CyberChef

El documento describe una práctica de RSA que simula una comunicación segura entre grupos mediante la generación de pares de claves RSA, cifrado y descifrado de mensajes utilizando Python y CyberChef. Incluye instrucciones detalladas para implementar ambas técnicas, así como reflexiones sobre el uso de cifrado simétrico y la importancia de mantener la clave privada segura. Se enfatizan las ventajas y desventajas de cada enfoque en la práctica.

Cargado por

83espajuge
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Práctica de RSA - Tecnologías de Seguridad

Objetivo:

Simular una comunicación segura entre grupos, donde cada grupo genera su par de claves RSA,

cifra un mensaje con la clave pública del receptor y lo descifra con su propia clave privada. Se

realizará usando dos enfoques: Python y CyberChef.

Duración estimada: 90 minutos

Parte I: Implementación con Python


1. Generar par de claves RSA

from [Link] import rsa


from [Link] import serialization

private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)


public_key = private_key.public_key()

with open("clave_privada.pem", "wb") as f:


[Link](private_key.private_bytes(
encoding=[Link],
format=[Link],
encryption_algorithm=[Link]()
))

with open("clave_publica.pem", "wb") as f:


[Link](public_key.public_bytes(
encoding=[Link],
format=[Link]
))

2. Cifrar mensaje con la clave pública del otro grupo

from [Link] import hashes


from [Link] import padding

with open("clave_publica_receptor.pem", "rb") as f:


public_key_receptor = serialization.load_pem_public_key([Link]())

mensaje = b"Coordenadas de extracción: 00°N, 78°W a las 23:00"

mensaje_cifrado = public_key_receptor.encrypt(
mensaje,
[Link](
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)

with open("mensaje_cifrado.bin", "wb") as f:


[Link](mensaje_cifrado)

3. Descifrar mensaje recibido con clave privada

with open("clave_privada.pem", "rb") as f:


private_key = serialization.load_pem_private_key([Link](), password=None)

with open("mensaje_cifrado_recibido.bin", "rb") as f:


mensaje_cifrado = [Link]()

mensaje_descifrado = private_key.decrypt(
mensaje_cifrado,
[Link](
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)

print("Mensaje descifrado:", mensaje_descifrado.decode())


Parte II: Implementación con CyberChef

CyberChef es una herramienta web visual para realizar operaciones criptográficas.

URL: [Link]

1. Generar par de claves RSA

- Abre CyberChef: [Link]

- Busca y arrastra la operación 'Generate RSA Key Pair' al panel de recetas.

- Configura:

- Key size: 2048

- Encoding: PEM

- Haz clic en 'Run Recipe'.

- Guarda la clave pública y privada (copiar y pegar en archivos separados).

- Intercambia SOLO la clave pública con otro grupo.

2. Cifrar mensaje con la clave pública del receptor

- Borra las recetas anteriores.

- Escribe tu mensaje secreto en el área de entrada (inferior).

- Arrastra la operación 'Encrypt with RSA' al panel.

- Configura:

- Public key: pega la clave pública del otro grupo.

- Scheme: RSAES-PKCS1-v1_5

- Encoding: Base64

- Haz clic en 'Run Recipe'.

- Copia el resultado y guárdalo como 'mensaje_cifrado.txt'.

3. Descifrar mensaje recibido con clave privada

- Borra cualquier receta anterior.

- Pega el mensaje cifrado recibido en el área de entrada.

- Arrastra la operación 'Decrypt with RSA' al panel.

- Configura:

- Private key: pega tu clave privada.


- Scheme: RSAES-PKCS1-v1_5

- Encoding: Base64

- Haz clic en 'Run Recipe' y obtendrás el mensaje descifrado.

Reflexión final:

- ¿Qué hubiera pasado si usaban cifrado simétrico?

- ¿Por qué es fundamental no compartir la clave privada?

- ¿Qué ventajas y desventajas encuentras en cada método (Python vs CyberChef)?

También podría gustarte