El algoritmo RSA es ampliamente utilizado en la protección de las comunicaciones en internet. Un ejemplo concreto es su uso en el protocolo HTTPS, que cifra la comunicación entre un usuario y un servidor web.
Cómo funciona en HTTPS:
Un usuario accede a un sitio web seguro (ejemplo: banca en línea).
El servidor envía su clave pública mediante un certificado SSL/TLS.
El navegador cifra un mensaje con la clave pública y lo envía al servidor.
Solo el servidor, con su clave privada, puede descifrar el mensaje y establecer una conexión segura.
Este proceso garantiza la privacidad y seguridad de la información transmitida en internet.
Caso práctico de aplicación RSA:
Para este ejemplo usaremos python en google colab, muy práctico para conocer su funcionamiento.
Paso 1: Instalación de la librería necesaria e importarlas
Paso 2: Generar un par de Claves RSA
El primer paso en el código como tal es generar un par de claves RSA de 2048 bits:
Aquí, "keyPair" almacena tanto la clave pública como la privada.
Paso 3: Guardar las claves en archivos
Se procede a guardar las claves en dos archivos para su uso posterior.
- La clave privada se guarda en rsa.
- La clave pública se guarda en rsa.pub.
- Se usa el formato PEM, que es un estándar para representar claves criptográficas.
Paso 4: Cifrado de un mensaje con clave pública
Para cifrar un mensaje, primero lo convertimos en bytes y luego usamos la clave pública.
Explicación:
1. Se convierte el mensaje en bytes.
2. Se lee la clave pública desde el archivo rsa.pub.
3. Se usa "PKCS1_OAEP" para mejorar la seguridad del cifrado RSA.
4. Se cifra el mensaje y se guarda en "encrypted_text.txt"
Paso 5: Descifrado del mensaje con la clave privada
Ahora, para descifrar el mensaje, necesitamos la clave privada.
Explicación:
1. Se lee la clave privada desde el archivo "rsa".
2. Se recupera el mensaje cifrado desde "encrypted_text.txt".
3. Se usa "PKCS1_OAEP" para descifrar el mensaje con la clave privada.
4. Se muestra el mensaje original en pantalla.
CONCLUSIÓN
Este código demuestra cómo funciona el cifrado y descifrado RSA en Python con pycryptodome. Se generan las claves, se guarda la clave pública y privada en archivos, se cifra un mensaje con la clave pública y se descifra con la clave privada.
Casos de uso de RSA:
- Seguridad en comunicaciones (como HTTPS).
- Autenticación digital y firmas electrónicas.
- Protección de datos en bases de datos y sistemas de mensajería.
Link del código en google colab por Arlex Saavedra: https://colab.research.google.com/drive/1g-Y1-btpN6ltmNZdL0Z9_o370kfbKKJe?usp=sharing
Comentarios
Publicar un comentario