New answers tagged


PGP key formats are defined in RFC 4880. Specifically, section 5.5. The private key format includes the public key and quite a bit of other information in unencrypted form. It might be easier to add another layer of encryption on top of that before you use steganography.


Yes, PGP allows different-sized subkeys and subkeys are not derived of the main key, so it is possible to have the earlier key be a subkey of the new one. How to do it is off topic here, but this should get you started if you use GnuPG.


As fgrieu noted in his answer using sign-then-encrypt is probably the best way of handling encrypted & signed messages. However when the OpenPGP format in RFC 4880 is studied it seems that it uses both PKCS#1 v1.5 padding and CBC mode encryption. Both schemes are vulnerable to padding oracle attacks. So it is important to make sure the software is not ...


Yes, PGP's sketch as in the question is sound by today's textbooks on cryptography, and reasonable from a computer security standpoint. Applying digital signature then encryption (critically: including on the signature) does provide data integrity and confidentiality for the message. PGP's way of doing things has the characteristic that one able to decipher ...


and encryption does not provide data integrity. You might want to read up on authenticated encryption. However, even if that isn't used it's still not a big problem for if an attacker corrupts the encrypted text the cleartext produced the by corrupted ciphertext cannot be authenticated, i.e. the signature will be corrupted or the hashes won't be equal.


The OpenPGP message you posted is a signature, not a key. As it was issued by GnuPG, I assume you're using GnuPG anyway. To export your public key, run gpg --armor --export [key-id]. --armor wraps the output in a base64-like encoding (like the signature block you provided in your question), otherwise you'll get binary output. If you don't know your key-id, ...


OpenPGP is a hybrid cryptosystem. The actual message is encrypted applying a symmetric cipher like AES with a random session key. This session key again is encrypted using a public/private key cryptography algorithm like RSA. This is mostly because symmetric encryption is much faster than public/private key cryptography, especially for large messages. As the ...


Exchanging full RSA keys can be very inconvenient, as they consist of very long numbers. In the OpenPGP ASCII-armored version, my public key (without any user IDs and certifications!) already is very long stream: mQQNBFDaK/sBIADm2gjnw7aPoNIoCy7gj85btwZU+zGkvtGonznlLrXELdU6zR3u VHNCn9vAl6OoU32r+suFvGdX+7MjiPbGKwJFOvICpAVh6bV55+hdqJbS02cpPmJH 1BrrUAmm6ZVEybGd+...

Top 50 recent answers are included