Muy buen dia dejare aqui una guia express para utilizar GPG, Aqui doy por entendido que ya lo tienen instalado en su sistema.
Crear una llave paso por paso:gpg --full-gen-key --expert
Con este comando podremos crear una llave paso a paso, personalmente recomiendo una llave ed25519 ya que son llaves pequeñas, seguras para los estandadres modernos y muy rapidas de generar/firmar/cifrar
Para generar una llave ed25519 hay que seleccionar las opciones:
Luego
Y el detalle de la expieracion de la key se lo dejo al criterio de cada quien.
NOTA IMPORTANTE, el proceso te va a pedir un password, Trata de que sea un password que recuerdes muy bien y de preferencia tenerlo respaldado, ya que si lo pierdes no habra manera de recuperar tu llave privada.Listar llaves privadasEsta es la llave que recien generamos solo con las llaves que aparecen en esta lista podremos firmar y cifrar documentos
Listar llaves publicasEsta es una lista de todas las llaves publicas que estan guardardas, generalmente solo aparece nuestra llave publica, pero si ya hemos importado la llave publica de alguien mas, esta tambien aparecera listada.
Importar llaves publicas de alguien masgpg --import their_public_key.asc
en el archivo
their_public_key.asc (Que podria tener cualquier otro nombre) se encuentra la llave publica de otra persona y la podremos importar a nuestra lista para en el futuro poder cifrar mensajes que solo el destinatario pueda leer.
Pudes tratar de impotar mi llave publica, guarda el siguiente texto en un archivo de texto y luego importarlo con el comando anterior:
Mi llave publica es:
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZSGE8hYJKwYBBAHaRw8BAQdAVaD+e9jobVYRJtg0hs/FOaED+2U3WRMoNmzU
fVXrvaO0IWFsYmVydG9ic2QgPGFsYmVydG9ic2RAZ21haWwuY29tPoiQBBMWCAA4
FiEEcPyyF88mxDTnyu++7UQ4Plx1G84FAmUhhPICGwMFCwkIBwIGFQoJCAsCBBYC
AwECHgECF4AACgkQ7UQ4Plx1G87l+gD/QS6Pc9lafJIpl4v1sOJOG8nr5zg8/gep
lKx5evXvXMMBAOFupEvid0juHvIowTA090jophE49NNGuoJRw3FAGjgFuDgEZSGE
8hIKKwYBBAGXVQEFAQEHQCthQ0Ma0WnygqMLe9zBU9TZ4Blc0/nbBPBWKHWcTjdL
AwEIB4h4BBgWCAAgFiEEcPyyF88mxDTnyu++7UQ4Plx1G84FAmUhhPICGwwACgkQ
7UQ4Plx1G87wHQEAi8xRkg0MgFdVXXzIxckSdblvb5HV0un96fmBPZo1WOwA/0Xn
jyqFAOn1bvQrgo3oxN7sOjfpsaKhUaupv7/yvNMM
=GFvH
-----END PGP PUBLIC KEY BLOCK-----
Exportar tu llave publica o la de alguien masgpg --export --armor "Name or Email or KEY ID" > public_key.asc
Con este comando podras exportar tu llave publica o la de alguin mas (Previamente tu ya deberia de haberla importado).
Nota que la salida es redirigida a un archivo de texto public_key.asc.
Firmar un archivo de Textogpg --clearsign --local-user "Name or Email or KEY ID" -o signed_message.txt message.txt
Si quieres firmar un archivo de texto para autenticar que tu lo generaste o demotrar que tu tienes el control de determinada llave privada utiliza el comando anterior.
Al archivo a firmar es menssage.txt y el archivo resultando es signed_message.txt
menssage.txt
albert0bsd signing a message for bitcointalk post on Oct 7, 2023
signed_message.txt
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
albert0bsd signing a message for bitcointalk post on Oct 7, 2023
-----BEGIN PGP SIGNATURE-----
iHUEARYIAB0WIQRw/LIXzybENOfK777tRDg+XHUbzgUCZSGILAAKCRDtRDg+XHUb
zhKvAQDLvqt3wEhiIK+P5umf5HJNqgPDchgndg8JRLHWsC5U2QD/fv8FEQZQr75K
68BsHna/htaTBMOnfPOuZGYJzmr4WQE=
=1C8J
-----END PGP SIGNATURE-----
Verificar un mensaje de texto firmadogpg --verify signed_message.txt
Puedes verificar mi mensaje firmado o el de alguien mas con el comando anterior
gpg: Signature made Mon Oct 9 07:46:40 2023 CST
gpg: using EDDSA key 70FCB217CF26C434E7CAEFBEED44383E5C751BCE
gpg: Good signature from "albertobsd <...>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 70FC B217 CF26 C434 E7CA EFBE ED44 383E 5C75 1BCE
Haz caso omiso del warning lo que nos interesa es:
gpg: Signature made Mon Oct 9 07:46:40 2023 CST
gpg: using EDDSA key 70FCB217CF26C434E7CAEFBEED44383E5C751BCE
Primary key fingerprint: 70FC B217 CF26 C434 E7CA EFBE ED44 383E 5C75 1BCE
Si la llave coincide con la llave esperada entonces la persona que firmo el mensaje tiene control sobre la llave privada ligada al mismo.
Cifrar un mensaje para que solo pueda ser visto por un solo destinatariogpg --encrypt --recipient "Recipient Name or Email or KEY ID" --armor --local-user "Recipient Name or Email or KEY ID" -o encrypted_message.asc message.txt
El archivo de entrada es message.txt y el de salida es encrypted_message.asc
Aqui pueden cifrar un mensaje para mi y si lo puedo descifrar les mandarare un mensaje para que lo descifren ustedes, si hacen esto solo respondan a este mensaje con el mensaje cifrado, no se olviden de publicar su llave publica tambien, aqui o de preferencia en el siguiente hilo:
https://foro.elhacker.net/criptografia/pgpgpg_public_key_database_guarda_tu_llave_publica_aqui-t518947.0.htmlDescifrar un mensaje Que te enviarongpg --decrypt encrypted_message.asc
No hay mucho que decir, si tu tienes la llave privada asociada a la llave publica que se utilizo como destinatario del mensaje cifrado, entonces tu seras capas de descifrar el mensaje.
Y por ultimo
Respaldar tu llave privadagpg --export-secret-keys "Recipient Name or Email or KEY ID" > backup-key.asc
Es sumamente importante que respaldes tu llave privada en un archivo y este lo copies a una o dos unidades USB, el archivo backup tiene el mismo password que utilizaste la cuando lo creaste, asi que tambien es importante que respaldes este password ya que sin el PERDERAS el acceso a tu llave privada