Criptografía de clave pública: Tutorial

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

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.