Criptografía de clave pública: Tutorial

7 lug 2023 1 min di lettura
Criptografía de clave pública: Tutorial

Introducción

La criptografía de clave pública, también conocida como criptografía asimétrica, es un método de cifrado que utiliza dos claves relacionadas matemáticamente, una de las cuales se mantiene privada y la otra se hace pública. Este tutorial mostrará cómo usar la criptografía de clave pública para cifrar y descifrar un mensaje en Python.

Paso 1: Instalación de las bibliotecas necesarias

Primero, deberá instalar la biblioteca de 'criptografía' de Python. Puedes hacer esto usando el administrador de paquetes pip:

pip install cryptography

Paso 2: Generación de un par de claves

El primer paso en el proceso de cifrado es la generación de un par de claves (pública y privada).

from cryptography.hazmat.primitives.asymmetric import rsa
 from cryptography.hazmat.primitives import serialization

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

 public_key = private_key.public_key()

Paso 3: Serialización de clave pública

La clave pública se puede compartir con cualquier persona, por lo que es posible que deba serializarse en un formato que se pueda compartir.

public_pem = public_key.public_bytes(
 encoding=serialization.Encoding.PEM,
 format=serialization.PublicFormat.SubjectPublicKeyInfo,
 )

Paso 4: Cifrado del mensaje

Ahora que tenemos una clave pública, podemos usar esa clave para cifrar un mensaje.

from cryptography.hazmat.primitives import hashes
 from cryptography.hazmat.primitives.asymmetric import padding

 message = b"A secret message"
 encrypted = public_key.encrypt(
 message,
 padding.OAEP(
 mgf=padding.MGF1(algorithm=hashes.SHA256()),
 algorithm=hashes.SHA256(),
 label=None
 )
 )

Paso 5: Descifrado de mensajes

Finalmente, podemos usar la clave privada para descifrar el mensaje.

original_message = private_key.decrypt(
 encrypted,
 padding.OAEP(
 mgf=padding.MGF1(algorithm=hashes.SHA256()),
 algorithm=hashes.SHA256(),
 label=None
 )
 )

 print(original_message)

Conclusión

En conclusión, la criptografía de clave pública es una técnica poderosa y segura para garantizar que los mensajes se puedan compartir de forma segura entre las partes. Recuerde que la clave privada debe mantenerse en secreto y protegida, mientras que la clave pública puede distribuirse libremente.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.