⚪
Cryptography
  • Inicio
  • Encoding / Codificación
    • Introducción
    • Binary
    • Hexadecimal (Base16)
    • ASCII
    • Unicode & UTF
    • Base64
    • URL encoding
  • Hashing
    • Introducción
    • Suma de verificación (checksum)
    • Passwords
    • Salt
  • Encriptación / Cifrado
    • Sustitución
    • Simétrico
    • Asimétrico
Con tecnología de GitBook
En esta página
  • Descripción
  • GNU Privacy Guard (GPG)
  • OpenSSL

¿Te fue útil?

  1. Encriptación / Cifrado

Asimétrico

Descripción

Los cifrados asimétricos, también conocidos como cifrados de clave pública, se caracterizan por utilizar dos claves, una clave pública y otra privada. Cabe señalar que ambas claves están conectadas entre sí, siendo la clave pública la responsable del cifrado y la clave privada del descifrado. El destinatario genera ambas claves y comunica solo la clave pública al emisor del mensaje quien, por su parte, tiene ahora la opción de cifrar el mensaje utilizando la clave pública del destinatario.

Imaginemos que Alice quiere enviar un mensaje cifrado a Bob. Antes de que Alice envíe el mensaje, Bob generará un par de claves asimétricas. Este par de claves consta de dos claves, una clave pública, que Bob puede distribuir libre y ampliamente, y una clave privada, que Bob debe mantener en total confidencialidad.

Bob envía su clave pública a Alice. No necesita preocuparse por la seguridad del canal de comunicación, porque el secreto no es un requisito para las claves públicas. Una vez que Alice tenga la clave pública de Bob, estará lista para cifrar su mensaje y lo hará usando la clave pública de Bob. Alice envía el mensaje a Bob y Bob ahora puede usar su clave privada para descifrarlo.

Clave o llave es equivalente. Existiendo por tanto clave o llave privada y clave o llave pública.

GNU Privacy Guard (GPG)

# Generar un par de claves pública y privada
gpg --gen-key

# Exportar clave pública 
gpg --output example-public.asc --armor --export <uid>

# Encriptar / cifrar
echo "<text>" > asymmetric.txt
gpg --output asymmetric.gpg --recipient <uid> --encrypt asymmetric.txt

# Desencriptar / descifrar
gpg --decrypt asymmetric.gpg

OpenSSL

Generar un par de claves RSA.

# Generar un par de claves RSA (2048 bit)
openssl genrsa -out key.pem 2048
## clave privada
cat key.pem
## clave publica (visualizar)
openssl rsa -in key.pem -pubout
## clave publica (guardar en archivo)
openssl rsa -in key.pem -pubout > key_pub.pem

Encriptar y desencriptar.

# Generar un par de claves RSA (2048 bit)
openssl genrsa -out key.pem 2048
openssl rsa -in key.pem -pubout > key_pub.pem

# Encriptar / cifrar
echo "<text>" > asymmetric.txt
openssl pkeyutl -encrypt -inkey key_pub.pem -pubin -in asymmetric.txt -out asymmetric.enc

# Desencriptar / descifrar
openssl pkeyutl -decrypt -inkey key.pem -in asymmetric.enc > decrypted.txt
AnteriorSimétrico

Última actualización hace 6 meses

¿Te fue útil?