Recently there have been a couple of threads started by people concerned that if they encrypt something to a vendor, like their address in an order, there is the risk that the encrypted file might be used against a buyer if LE manages to get the message. This is a brief explanation of how to encrypt a message that cannot be checked to see who it is encrypted to.For this demonstration I'm going to need a volunteer from the audience. So a big thankyou to Guru who just got volunteered. ;)Firstly there's the address I'm encrypting to Guru in the file address.txt:Mr. L. Cyphre666 Hell's Highway9th CircleHadesSecondly my configuration is set to use my key (0xDD7B4576) as the default key, which is always encrypted to. And thirdly I have Guru's key (0x886855CA) for our demonstration recipient. I'm also using the verbose flag ("-v") so you can see exactly what happens.To encrypt the above address normally the command would be:Quotebash-3.2$ gpg -v -ea -r 886855CA address.txt gpg: using subkey D677EF45 instead of primary key DD7B4576gpg: using subkey 048FB30D instead of primary key 886855CAgpg: No trust check due to `--trust-model always' optiongpg: reading from `address.txt'gpg: writing to `address.txt.asc'gpg: RSA/AES256 encrypted for: "048FB30D Guru "gpg: ELG-E/AES256 encrypted for: "D677EF45 Louis Cyphre "bash-3.2$ Which results in this:Code: [Select]-----BEGIN PGP MESSAGE-----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=0TN2-----END PGP MESSAGE-----Now only Guru and I can decrypt that, but anyone else running it through gpg (with the "gpg -v" option) will see that the message is encrypted to Guru's key and mine. If they have either of our keys in their public keyring then they will see that data matched.When I decrypt the file I am, of course, prompted for my passphrase and with the verbose flag I can see all the keys the message is encrypted to:Quotebash-3.2$ gpg -v address.txt.asc gpg: public key is 048FB30Dgpg: public key is D677EF45gpg: using subkey D677EF45 instead of primary key DD7B4576You need a passphrase to unlock the secret key foruser: "Louis Cyphre "gpg: using subkey D677EF45 instead of primary key DD7B45764096-bit ELG-E key, ID D677EF45, created 2012-06-16 (main key ID DD7B4576)gpg: using subkey 048FB30D instead of primary key 886855CAgpg: encrypted with 4096-bit RSA key, ID 048FB30D, created 2012-05-11 "Guru "gpg: encrypted with 4096-bit ELG-E key, ID D677EF45, created 2012-06-16 "Louis Cyphre "gpg: AES256 encrypted datagpg: original file name='address.txt'bash-3.2$ Now, since I don't want anyone who manages to obtain this message to even know who it is encrypted to, there is an option to conceal that data. That option is the "throw-key" option.Quotebash-3.2$ gpg -v -ea --throw-keyid -r 886855CA address.txt gpg: using subkey D677EF45 instead of primary key DD7B4576gpg: using subkey 048FB30D instead of primary key 886855CAgpg: No trust check due to `--trust-model always' optiongpg: reading from `address.txt'gpg: writing to `address.txt.asc'gpg: RSA/AES256 encrypted for: "048FB30D Guru "gpg: ELG-E/AES256 encrypted for: "D677EF45 Louis Cyphre "bash-3.2$ The encrypting process appears the same, which is as it should be. The output, however, is not:Code: [Select]-----BEGIN PGP MESSAGE-----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=0Wvt-----END PGP MESSAGE-----This shows clearly when the message is decrypted or a decryption attempt is made:Quotebash-3.2$ gpg -v address.txt.asc gpg: public key is 00000000gpg: anonymous recipient; trying secret key DD7B4576 ...gpg: anonymous recipient; trying secret key 195D71B8 ...gpg: public key is 00000000gpg: anonymous recipient; trying secret key D677EF45 ...gpg: okay, we are the anonymous recipient.gpg: encrypted with RSA key, ID 00000000gpg: encrypted with ELG-E key, ID 00000000gpg: AES256 encrypted datagpg: original file name='address.txt'bash-3.2$ The file is decrypted, but we cannot see who the recipients are. Only that there were two recipients, one with an RSA key and one with an Elgamal key (Guru's and mine, respectively).The description of the "throw-key" option in the GPG manual describes exactly what is happening here, why it may be advantageous to use it sometimes and what the major drawback is:QuoteDo not put the keyid into encrypted packets. This option hides the receiver of the message and is a countermeasure against traffic analysis. It may slow down the decryption process because all available secret keys are tried.When decrypting a message which has been encrypted with "throw-key" GPG will try every secret key in the secret keyring in sequence until either a match is found or all keys have been tried.NOTE: People with lots of secret keys will find this very annoying if it is used too much. Silk Road, however, is a fine example of where using the option may be of real benefit with some messages.I recommend everyone attempt to decrypt the two messages above, regardless of whether or not you've got my key or Guru's key in your public keyrings. Compare the output GPG generates and remember, if it were LE doing this they would not even be able to determine the recipients of the second cipher block.When encrypting an address to include in an order, I recommend combining this with the "for-your-eyes-only" option:Quotegpg -ea --throw-keyid --for-your-eyes-only -r $RECIPIENT_1 -r $RECIPIENT_2 address.txt Now you can encrypt your address to a vendor in the order, but be sure that the information relating to that order cannot be used against you via traffic analysis.