Each of Alice and Bob is using gpg just to protect his/her own personal files and not using it as a way to send encrypted text to others. Alice has generated a key (gpg --gen-key) that she uses to encrypt/decrypt her personal files (gpg --encrypt --recipient="Alice Personal" alice.secrets.txt and gpg --decrypt alice.secrets.txt.gpg). She knows that in order to read and write to alice.secrets.txt.gpg in her another computer, she needs to export her key (both public key and private key) to her second computer, using commands like:

gpg --armor --export "Alice Personal" > alice.personal.public.key.txt
gpg --armor --export-secret-key "Alice Personal" > alice.personal.private.key.txt


gpg --import alice.personal.public.key.txt
gpg --import alice.personal.private.key.txt

So she decides to put her encrypted personal files (alice.secrets.txt.gpg) and her key (alice.personal.public.key.txt and alice.personal.private.key.txt) on a cloud sync service for convenience. Because alice.personal.private.key.txt is on cloud, a third party who may get access to her files on cloud has access to the first of the following two, but not the second.

  • something she has: alice.personal.private.key.txt

  • something she knows: the passphrase to unlock the secret key

She's giving up protecting the first in return for convenience.

On the other hand, Bob uses symmetric encryption to protect his secrets (gpg --symmetric bob.secrets.txt and gpg --decrypt bob.secrets.txt.gpg). He also puts his encrypted personal files on a cloud service. To read and write to bob.secrets.txt.gpg on his another computer, he just needs to successfully recall his passphrase.

Maybe Alice and bob should just use Truecrypt or Boxcryptor. Anyway, question is, are Alice's secrets as safe as Bob's secrets provided that their passphrases are equally good?

2 Answers 2


Alice's approach is ever so slightly safer than Bob's. Every encrypted file gets a new symmetric key, which means that:

  • You'll have to break the symmetric key separately for each file instead of once, and those keys are usually easier to break than proper RSA keys (lower key space for higher performance, as we can't lose time with every new message, be it a document or a connection, and RSA doesn't have to be efficient one the key is generated as we usually use it to cypher a symmetric key used for the rest of the document).
  • You might avoid attacks when both the cyphered and uncyphered documents are know. If Eve knows has the original of document and the version encrypted for Alice, it might make it easier to find the key and use it for all other documents.
  • You might avoid attacks made available by knowing many encrypted messages, which could be similar to what we already know with RSA and low exponents.

As per GPG documentation:

  • To encrypt a document the option --encrypt is used. You must have the public keys of the intended recipients.
  • To decrypt a message the option --decrypt is used. You need the private key to which the message was encrypted.

In the scenario you have described Alices secret are not protected from being overwritten by Mallory because to encrypt files only her public key is required and this is not password protected. Her private key is only required for decrypting files.

So Mallory could create malicious encrypted files that Alice can successfully decrypt before realizing they have been tampered with.

If Alice chooses not to share her public key then her secrets are only as safe as the symmetric encryption algorithm and passphrase used to protect her private key. (Remember Alice is automatically using symmetric encryption to protect her private key with a passphrase)

  • 2
    This assumes Alice only encrypts her file and doesn't sign them. Jul 6, 2012 at 11:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.