Annotation of pgp/doc/pgpdoc2.txt, revision 1.1.1.2

1.1       root        1:                     Phil's Pretty Good Software
                      2:                               Presents
                      3: 
                      4:                                 ===
                      5:                                 PGP
                      6:                                 ===
                      7: 
                      8:                         Pretty Good Privacy
                      9:                 Public Key Encryption for the Masses
                     10: 
                     11: 
                     12:                      -------------------------
                     13:                           PGP User's Guide
                     14:                      Volume II: Special Topics
                     15:                      -------------------------
                     16:                         by Philip Zimmermann
1.1.1.2 ! root       17:                          Revised 14 Jun 93
1.1       root       18: 
                     19: 
1.1.1.2 ! root       20:                     PGP Version 2.3a - 1 Jul 93
1.1       root       21:                             Software by
                     22:                          Philip Zimmermann
                     23:                                 with
                     24:           Branko Lankester, Hal Finney, and Peter Gutmann
                     25: 
                     26: 
                     27: 
                     28: 
                     29: Synopsis:  PGP uses public-key encryption to protect E-mail and data
                     30: files.  Communicate securely with people you've never met, with no
                     31: secure channels needed for prior exchange of keys.  PGP is well
                     32: featured and fast, with sophisticated key management, digital
                     33: signatures, data compression, and good ergonomic design.
                     34: 
                     35: 
                     36: Software and documentation (c) Copyright 1990-1993 Philip Zimmermann. 
                     37: For information on PGP licensing, distribution, copyrights, patents,
                     38: trademarks, liability limitations, and export controls, see the
                     39: "Legal Issues" section.
                     40: 
                     41: 
                     42: Contents
                     43: ========
                     44: 
                     45: Quick Overview
                     46: Special Topics
                     47:   Selecting Keys via Key ID
                     48:   Separating Signatures from Messages
                     49:   Decrypting the Message and Leaving the Signature on it
                     50:   Sending ASCII Text Files Across Different Machine Environments
                     51:   Leaving No Traces of Plaintext on the Disk
                     52:   Displaying Decrypted Plaintext on Your Screen
                     53:   Making a Message For Her Eyes Only
                     54:   Preserving the Original Plaintext Filename
                     55:   Editing Your User ID or Pass Phrase
                     56:   Editing the Trust Parameters for a Public Key
                     57:   Checking If Everything is OK on Your Public Key Ring
                     58:   Verifying a Public Key Over the Phone
                     59:   Using PGP as a Unix-style Filter
                     60:   Suppressing Unneccessary Questions:  BATCHMODE
                     61:   Force "Yes" Answer to Confirmation Questions:  FORCE
                     62:   PGP Returns Exit Status to the Shell
                     63:   Environmental Variable for Pass Phrase
                     64:   Setting Configuration Parameters: CONFIG.TXT
                     65:     TMP - Directory Pathname for Temporary Files
                     66:     LANGUAGE - Foreign Language Selector
                     67:     MYNAME - Default User ID for Making Signatures
                     68:     TEXTMODE - Assuming Plaintext is a Text File
                     69:     CHARSET - Specifies Local Character Set for Text Files
                     70:     ARMOR - Enable ASCII Armor Output
                     71:     ARMORLINES - Size of ASCII Armor Multipart Files
                     72:     KEEPBINARY - Keep Binary Ciphertext Files After Decrypting
                     73:     COMPRESS - Enable Compression
                     74:     COMPLETES_NEEDED - Number of Completely Trusted Introducers Needed
                     75:     MARGINALS_NEEDED - Number of Marginally Trusted Introducers Needed
                     76:     CERT_DEPTH - How Deep May Introducers Be Nested
                     77:     BAKRING - Filename for Backup Secret Keyring
                     78:     PAGER - Selects Shell Command to Display Plaintext Output
                     79:     SHOWPASS - Echo Pass Phrase to User
                     80:     TZFIX - Timezone Adjustment
                     81:     CLEARSIG - Enable Signed Messages to be Encapsulated as Clear Text
                     82:     VERBOSE - Quiet, Normal, or Verbose Messages
                     83:     INTERACTIVE - Ask for Confirmation for Key Adds
                     84:   Protecting Against Bogus Timestamps
                     85:   A Peek Under the Hood
                     86:     Random Numbers
                     87:     PGP's Conventional Encryption Algorithm
                     88:     Data Compression
                     89:     Message Digests and Digital Signatures
                     90:   Compatibility with Previous Versions of PGP
                     91: Vulnerabilities
                     92:   Compromised Pass Phrase and Secret Key
                     93:   Public Key Tampering
                     94:   "Not Quite Deleted" Files
                     95:   Viruses and Trojan Horses
                     96:   Physical Security Breach
                     97:   Tempest Attacks
                     98:   Exposure on Multi-user Systems
                     99:   Traffic Analysis
                    100:   Cryptanalysis
                    101: Legal Issues
                    102:   Trademarks, Copyrights, and Warranties
                    103:   Patent Rights on the Algorithms
                    104:   Licensing and Distribution
                    105:   Export Controls
                    106: Computer-Related Political Groups
                    107: Recommended Readings
                    108: To Contact the Author
                    109: Appendix A:  Where to Get PGP
                    110: 
                    111: 
                    112: Quick Overview
                    113: =============
                    114: 
                    115: Pretty Good(tm) Privacy (PGP), from Phil's Pretty Good Software, is a
                    116: high security cryptographic software application for MSDOS, Unix,
                    117: VAX/VMS, and other computers.  PGP combines the convenience of the
                    118: Rivest-Shamir-Adleman (RSA) public key cryptosystem with the speed of
                    119: conventional cryptography, message digests for digital signatures,
                    120: data compression before encryption, good ergonomic design, and
                    121: sophisticated key management. 
                    122: 
                    123: This volume II of the PGP User's Guide covers advanced topics about
                    124: PGP that were not covered in the "PGP User's Guide, Volume I:
                    125: Essential Topics".  You should first read the Essential Topics
                    126: volume, or this manual won't make much sense to you.  Reading this
                    127: Special Topics volume is optional.
                    128: 
                    129: 
                    130: 
                    131: Special Topics
                    132: ===============
                    133: 
                    134: 
                    135: Selecting Keys via Key ID
                    136: -------------------------
                    137: 
                    138: In all commands that let the user type a user ID or fragment of a
                    139: user ID to select a key, the hexadecimal key ID may be used instead. 
                    140: Just use the key ID, with a prefix of "0x", in place of the user ID. 
                    141: For example:
                    142: 
                    143:     pgp -kv 0x67F7
                    144: 
                    145: This would display all keys that had 67F7 as part of their key IDs.
                    146: 
                    147: This feature is particularly useful if you have two different keys
                    148: from the same person, with the same user ID.  You can unambiguously
                    149: pick which key you want by specifying the key ID.
                    150: 
                    151: 
                    152: Separating Signatures from Messages
                    153: -----------------------------------
                    154: 
                    155: Normally, signature certificates are physically attached to the text
                    156: they sign.  This makes it convenient in simple cases to check
                    157: signatures.  It is desirable in some circumstances to have signature
                    158: certificates stored separately from the messages they sign.  It is
                    159: possible to generate signature certificates that are detached from
                    160: the text they sign.  To do this, combine the 'b' (break) option with
                    161: the 's' (sign) option.  For example:
                    162: 
                    163:     pgp -sb letter.txt
                    164: 
                    165: This example produces an isolated signature certificate in a file
                    166: called "letter.sig".  The contents of letter.txt are not appended to
                    167: the signature certificate.
                    168: 
                    169: After creating the signature certificate file (letter.sig in the
                    170: above example), send it along with the original text file to the
                    171: recipient.  The recipient must have both files to check the signature
                    172: integrity.  When the recipient attempts to process the signature
                    173: file, PGP notices that there is no text in the same file with the
                    174: signature and prompts the user for the filename of the text. Only
                    175: then can PGP properly check the signature integrity.  If the
                    176: recipient knows in advance that the signature is detached from the
                    177: text file, she can specify both filenames on the command line:
                    178: 
                    179:     pgp letter.sig letter.txt
                    180: or: pgp letter letter.txt
                    181: 
                    182: PGP will not have to prompt for the text file name in this case.
                    183: 
                    184: A detached signature certificate is useful if you want to keep the
                    185: signature certificate in a separate certificate log.  A detached
                    186: signature of an executable program is also useful for detecting a
                    187: subsequent virus infection.  It is also useful if more than one party
                    188: must sign a document such as a legal contract, without nesting
                    189: signatures.  Each person's signature is independent.
                    190: 
                    191: If you receive a ciphertext file that has the signature certificate
                    192: glued to the message, you can still pry the signature certificate
                    193: away from the message during the decryption.  You can do this with
                    194: the -b option during decrypt, like so:
                    195: 
                    196:     pgp -b letter
                    197: 
                    198: This decrypts the letter.pgp file and if there is a signature in it,
                    199: PGP checks the signature and detaches it from the rest of the
                    200: message, storing it in the file letter.sig.
                    201: 
                    202: 
                    203: Decrypting the Message and Leaving the Signature on it
                    204: ------------------------------------------------------
                    205: 
                    206: Usually, you want PGP to completely unravel a ciphertext file,
                    207: decrypting it and checking the nested signature if there is one,
                    208: peeling away the layers until you are left with only the original
                    209: plaintext file.
                    210: 
                    211: But sometimes you want to decrypt an encrypted file, and leave the
                    212: inner signature still attached, so that you are left with a decrypted
                    213: signed message.  This may be useful if you want to send a copy of a
                    214: signed document to a third party, perhaps re-enciphering it.  For
                    215: example, suppose you get a message signed by Charlie, encrypted to
                    216: you.  You want to decrypt it, and, leaving Charlie's signature on it,
                    217: you want to send it to Alice, perhaps re-enciphering it with Alice's
                    218: public key.  No problem.  PGP can handle that.
                    219: 
                    220: To simply decrypt a message and leave the signature on it intact,
                    221: type:
                    222: 
                    223:     pgp -d letter
                    224: 
                    225: This decrypts letter.pgp, and if there is an inner signature, it is
                    226: left intact with the decrypted plaintext in the output file.
                    227: 
                    228: Now you can archive it, or maybe re-encrypt it and send it to someone
                    229: else.
                    230: 
                    231: 
                    232: 
                    233: Sending ASCII Text Files Across Different Machine Environments
                    234: --------------------------------------------------------------
                    235: 
                    236: You may use PGP to encrypt any kind of plaintext file, binary 8-bit
                    237: data or ASCII text.  Probably the most common usage of PGP will be for
                    238: E-mail, when the plaintext is ASCII text.  
                    239: 
                    240: ASCII text is sometimes represented differently on different
                    241: machines.  For example, on an MSDOS system, all lines of ASCII text
                    242: are terminated with a carriage return followed by a linefeed.  On a
                    243: Unix system, all lines end with just a linefeed.  On a Macintosh, all
                    244: lines end with just a carriage return.  This is a sad fact of life.
                    245: 
                    246: Normal unencrypted ASCII text messages are often automatically
                    247: translated to some common "canonical" form when they are transmitted
                    248: from one machine to another.  Canonical text has a carriage return
                    249: and a linefeed at the end of each line of text.  For example, the
                    250: popular KERMIT communication protocol can convert text to canonical
                    251: form when transmitting it to another system.  This gets converted
                    252: back to local text line terminators by the receiving KERMIT.  This
                    253: makes it easy to share text files across different systems.
                    254: 
                    255: But encrypted text cannot be automatically converted by a
                    256: communication protocol, because the plaintext is hidden by
                    257: encipherment.  To remedy this inconvenience, PGP lets you specify
                    258: that the plaintext should be treated as ASCII text (not binary data)
                    259: and should be converted to canonical text form before it gets
                    260: encrypted.  At the receiving end, the decrypted plaintext is
                    261: automatically converted back to whatever text form is appropriate for
                    262: the local environment.
                    263: 
                    264: To make PGP assume the plaintext is text that should be converted to
                    265: canonical text before encryption, just add the "t" option when
                    266: encrypting or signing a message, like so:
                    267: 
                    268:    pgp -et message.txt her_userid
                    269: 
                    270: This mode is automatically turned off if PGP detects that the
                    271: plaintext file contains what it thinks is non-text binary data.
                    272: 
                    273: For PGP users that use non-English 8-bit character sets, when PGP 
                    274: converts text to canonical form, it may convert data from the local
                    275: character set into the LATIN1 (ISO 8859-1 Latin Alphabet 1) character
                    276: set, depending on the setting of the CHARSET parameter in the PGP
                    277: configuration file.  LATIN1 is a superset of ASCII, with extra
                    278: characters added for many European languages.
                    279: 
                    280: 
                    281: 
                    282: Leaving No Traces of Plaintext on the Disk
                    283: ------------------------------------------
                    284: 
                    285: After PGP makes a ciphertext file for you, you can have PGP
                    286: automatically overwrite the plaintext file and delete it, leaving no
                    287: trace of plaintext on the disk so that no one can recover it later
                    288: using a disk block scanning utility.  This is useful if the plaintext
                    289: file contains sensitive information that you don't want to keep
                    290: around.
                    291: 
                    292: To wipe out the plaintext file after producing the ciphertext file,
                    293: just add the "w" (wipe) option when encrypting or signing a message,
                    294: like so:
                    295: 
                    296:     pgp -esw message.txt her_userid
                    297: 
                    298: This example creates the ciphertext file "message.pgp", and the 
                    299: plaintext file "message.txt" is destroyed beyond recovery.
                    300: 
                    301: Obviously, you should be careful with this option.  Also note that
                    302: this will not wipe out any fragments of plaintext that your word
                    303: processor might have created on the disk while you were editing the
                    304: message before running PGP.  Most word processors create backup
                    305: files, scratch files, or both.  Also, it overwrites the file only
                    306: once, which is enough to thwart conventional disk recovery efforts,
                    307: but not enough to withstand a determined and sophisticated effort to
                    308: recover the faint magnetic traces of the data using special disk
                    309: recovery hardware.
                    310: 
                    311: 
                    312: 
                    313: Displaying Decrypted Plaintext on Your Screen
                    314: ---------------------------------------------
                    315: 
                    316: To view the decrypted plaintext output on your screen (like the
                    317: Unix-style "more" command), without writing it to a file, use the -m
                    318: (more) option while decrypting:
                    319: 
                    320:      pgp -m ciphertextfile
                    321: 
                    322: This displays the decrypted plaintext display on your screen one
                    323: screenful at a time.
                    324: 
                    325: 
                    326: 
                    327: Making a Message For Her Eyes Only
                    328: ----------------------------------
                    329: 
                    330: To specify that the recipient's decrypted plaintext will be shown
                    331: ONLY on her screen and cannot be saved to disk, add the -m option:
                    332: 
                    333:      pgp -sem message.txt her_userid
                    334: 
                    335: Later, when the recipient decrypts the ciphertext with her secret key
                    336: and pass phrase, the plaintext will be displayed on her screen but
                    337: will not be saved to disk.  The text will be displayed as it would if
                    338: she used the Unix "more" command, one screenful at a time.  If she
                    339: wants to read the message again, she will have to decrypt the
                    340: ciphertext again.
                    341: 
                    342: This feature is the safest way for you to prevent your sensitive
                    343: message from being inadvertently left on the recipient's disk.  This
                    344: feature was added at the request of a user who wanted to send
                    345: intimate messages to his lover, but was afraid she might accidentally
                    346: leave the decrypted messages on her husband's computer.
                    347: 
                    348: 
                    349: 
                    350: Preserving the Original Plaintext Filename
                    351: ------------------------------------------
                    352: 
                    353: Normally, PGP names the decrypted plaintext output file with a name
                    354: similar to the input ciphertext filename, but dropping the 
                    355: extension.  Or, you can override that convention by specifying an
                    356: output plaintext filename on the command line with the -o option.
                    357: For most E-mail, this is a reasonable way to name the plaintext file,
                    358: because you get to decide its name when you decipher it, and your
                    359: typical E-mail messages often come from useless original plaintext
                    360: filenames like "to_phil.txt".  
                    361: 
                    362: But when PGP encrypts a plaintext file, it always saves the original
                    363: filename and attaches it to the plaintext before it compresses and
                    364: encrypts the plaintext.  Normally, this hidden original filename is
                    365: discarded by PGP when it decrypts, but you can tell PGP you want to
                    366: preserve the original plaintext filename and use it as the name of
                    367: the decrypted plaintext output file.  This is useful if PGP is used
1.1.1.2 ! root      368: on files whose names are important to preserve.
1.1       root      369: 
                    370: To recover the original plaintext filename while decrypting, add 
                    371: the -p option, like so:
                    372: 
                    373:      pgp -p ciphertextfile
                    374: 
                    375: I usually don't use this option, because if I did, about half of my
                    376: incoming E-mail would decrypt to the same plaintext filenames of
                    377: "to_phil.txt" or "prz.txt".
                    378: 
                    379: 
                    380: 
                    381: Editing Your User ID or Pass Phrase
                    382: -----------------------------------
                    383: 
                    384: Sometimes you may need to change your pass phrase, perhaps because
                    385: someone looked over your shoulder while you typed it in.  
                    386: 
                    387: Or you may need to change your user ID, because you got married and
                    388: changed your name, or maybe you changed your E-mail address.  Or
                    389: maybe you want to add a second or third user ID to your key, because
                    390: you may be known by more than one name or E-mail address or job
                    391: title.  PGP lets you attach more than one user ID to your key, any
                    392: one of which may be used to look up your key on the key ring.
                    393: 
1.1.1.2 ! root      394: To edit your own userid or pass phrase for your secret key:
1.1       root      395: 
                    396:      pgp -ke userid [keyring]
                    397: 
                    398: PGP prompts you for a new user ID or a new pass phrase.
                    399: 
1.1.1.2 ! root      400: The optional [keyring] parameter, if specified, must be a public
        !           401: keyring, not a secret keyring.  The userid field must be your own
        !           402: userid, which PGP knows is yours because it appears on both your
        !           403: public keyring and your secret keyring.  Both keyrings will be
        !           404: updated, even though you only specified the public keyring.
        !           405: 
1.1       root      406: 
                    407: 
                    408: Editing the Trust Parameters for a Public Key
                    409: ---------------------------------------------
                    410: 
                    411: Sometimes you need to alter the trust parameters for a public key on
                    412: your public key ring.  For a discussion on what these trust
                    413: parameters mean, see the section "How Does PGP Keep Track of Which
                    414: Keys are Valid?" in the Essential Topics volume of the PGP User's
                    415: Guide.
                    416: 
                    417: To edit the trust parameters for a public key:
                    418: 
                    419:      pgp -ke userid [keyring]
                    420: 
1.1.1.2 ! root      421: The optional [keyring] parameter, if specified, must be a public
        !           422: keyring, not a secret keyring.
        !           423: 
1.1       root      424: 
                    425: 
                    426: Checking If Everything is OK on Your Public Key Ring
                    427: ----------------------------------------------------
                    428: 
                    429: Normally, PGP automatically checks any new keys or signatures on your
                    430: public key ring and updates all the trust parameters and validity
                    431: scores.  In theory, it keeps all the key validity status information
                    432: up to date as material is added to or deleted from your public key
                    433: ring.  But perhaps you may want to explicitly force PGP to perform a
                    434: comprehensive analysis of your public key ring, checking all the
                    435: certifying signatures, checking the trust parameters, updating all
                    436: the validity scores, and checking your own ultimately-trusted key
                    437: against a backup copy on a write-protected floppy disk.  It may be a
                    438: good idea to do this hygienic maintenance periodically to make sure
                    439: nothing is wrong with your public key ring.  To force PGP to perform
                    440: a full analysis of your public key ring, use the -kc (key ring check)
                    441: command:
                    442: 
                    443:      pgp -kc
                    444: 
                    445: You can also make PGP check all the signatures for just a single
                    446: selected public key by:
                    447: 
                    448:      pgp -kc userid [keyring]
                    449: 
                    450: For further information on how the backup copy of your own key is
                    451: checked, see the description of the BAKRING parameter in the
                    452: configuration file section of this manual.
                    453: 
                    454: 
                    455: 
                    456: Verifying a Public Key Over the Phone
                    457: -------------------------------------
                    458: 
                    459: If you get a public key from someone that is not certified by anyone
                    460: you trust, how can you tell if it's really their key?  The best way
                    461: to verify an uncertified key is to verify it over some independent
                    462: channel other than the one you received the key through.  One
                    463: convenient way to tell, if you know this person and would recognize
                    464: them on the phone, is to call them and verify their key over the
                    465: telephone.  Rather than reading their whole tiresome (ASCII-armored)
                    466: key to them over the phone, you can just read their key's
                    467: "fingerprint" to them.  To see this fingerprint, use the -kvc
                    468: command:
                    469: 
                    470:      pgp -kvc userid [keyring]
                    471: 
                    472: This will display the key with the 16-byte digest of the public key
                    473: components.  Read this 16-byte fingerprint to the key's owner on the
                    474: phone, while she checks it against her own, using the same -kvc
                    475: command at her end.  
                    476: 
                    477: You can both verify each other's keys this way, and then you can sign
                    478: each other's keys with confidence.  This is a safe and convenient way
                    479: to get the key trust network started for your circle of friends.
                    480: 
                    481: 
                    482: 
                    483: Using PGP as a Unix-style Filter
                    484: --------------------------------
                    485: 
                    486: Unix fans are accustomed to using Unix "pipes" to make two
                    487: applications work together.  The output of one application can be
                    488: directly fed through a pipe to be read as input to another
                    489: application.  For this to work, the applications must be capable of
                    490: reading the raw material from "standard input" and writing the
                    491: finished output to "standard output".  PGP can operate in this mode.
                    492: If you don't understand what this means, then you probably don't need
                    493: this feature.
                    494: 
                    495: To use a Unix-style filter mode, reading from standard input and
                    496: writing to standard output, add the -f option, like so:
                    497: 
                    498:      pgp -feast her_userid <inputfile >outputfile
                    499: 
                    500: This feature makes it easier to make PGP work with electronic mail
                    501: applications.
                    502: 
                    503: When using PGP in filter mode to decrypt a ciphertext file, you may
                    504: find it useful to use the PGPPASS environmental variable to hold the
                    505: pass phrase, so that you won't be prompted for it.  The PGPPASS
                    506: feature is explained below.
                    507: 
                    508: 
                    509: 
                    510: Suppressing Unneccessary Questions:  BATCHMODE
                    511: ----------------------------------------------
                    512: 
                    513: With the BATCHMODE flag enabled on the command line, PGP will not ask
                    514: any unneccessary questions or prompt for alternate filenames.  Here
                    515: is an example of how to set this flag:
                    516: 
                    517:     pgp +batchmode cipherfile 
                    518: 
                    519: This is useful for running PGP non-interactively from Unix shell
                    520: scripts or MSDOS batch files.  Some key management commands still
                    521: need user interaction even when BATCHMODE is on, so shell scripts may
                    522: need to avoid them.  
                    523: 
                    524: BATCHMODE may also be enabled to check the validity of a signature on
                    525: a file.  If there was no signature on the file, the exit code is 1. 
                    526: If it had a signature that was good, the exit code is 0.
                    527: 
                    528: 
                    529: Force "Yes" Answer to Confirmation Questions:  FORCE
                    530: ----------------------------------------------------
                    531: 
                    532: This command-line flag makes PGP assume "yes" for the user response
                    533: to the confirmation request to overwrite an existing file, or when
                    534: removing a key from the keyring via the -kr command.  Here is an
                    535: example of how to set this flag:
                    536: 
                    537:     pgp +force cipherfile 
                    538: or:
                    539:     pgp -kr +force Smith
                    540: 
                    541: This feature is useful for running PGP non-interactively from a Unix
                    542: shell script or MSDOS batch file.
                    543: 
                    544: 
                    545: 
                    546: PGP Returns Exit Status to the Shell
                    547: ------------------------------------
                    548: 
                    549: To facilitate running PGP in "batch" mode, such as from an MSDOS
                    550: ".bat" file or from a Unix shell script, PGP returns an error exit
                    551: status to the shell.  An exit status code of zero means normal exit,
                    552: while a nonzero exit status indicates some kind of error occurred.
                    553: Different error exit conditions return different exit status codes to
                    554: the shell.
                    555: 
                    556: 
                    557: 
                    558: Environmental Variable for Pass Phrase
                    559: --------------------------------------
                    560: 
                    561: Normally, PGP prompts the user to type a pass phrase whenever PGP 
                    562: needs a pass phrase to unlock a secret key.  But it is possible to
                    563: store the pass phrase in an environmental variable from your
                    564: operating system's command shell.  The environmental variable PGPPASS
                    565: can be used to hold the pass phrase that PGP will attempt to use
                    566: first.  If the pass phrase stored in PGPPASS is incorrect, PGP 
                    567: recovers by prompting the user for the correct pass phrase.
                    568: 
                    569: For example, on MSDOS, the shell command:
                    570: 
                    571:     SET PGPPASS=zaphod beeblebrox for president
                    572: 
                    573: would eliminate the prompt for the pass phrase if the pass phrase
                    574: were indeed "zaphod beeblebrox for president". 
                    575: 
                    576: This dangerous feature makes your life more convenient if you have to
                    577: regularly deal with a large number of incoming messages addressed to
                    578: your secret key, by eliminating the need for you to repeatedly type
                    579: in your pass phrase every time you run PGP.
                    580: 
                    581: I added this feature because of popular demand.  However, this is a
                    582: somewhat dangerous feature, because it keeps your precious pass
                    583: phrase stored somewhere other than just in your brain.  Even worse,
                    584: if you are particularly reckless, it may even be stored on a disk on
                    585: the same computer as your secret key.  It would be particularly
                    586: dangerous and stupid if you were to install this command in a batch
                    587: or script file, such as the MSDOS AUTOEXEC.BAT file.  Someone could
                    588: come along on your lunch hour and steal both your secret key ring and
                    589: the file containing your pass phrase.  
                    590: 
                    591: I can't emphasize the importance of this risk enough.  If you are
                    592: contemplating using this feature, be sure to read the sections
                    593: "Exposure on Multi-user Systems" and "How to Protect Secret Keys from
                    594: Disclosure" in this volume and in the Essential Topics volume of the 
                    595: PGP User's Guide.
                    596: 
                    597: If you must use this feature, the safest way to do it would be to
                    598: just manually type in the shell command to set PGPPASS every time you
                    599: boot your machine to start using PGP, and then erase it or turn off
                    600: your machine when you are done.  And you should definitely never do
                    601: it in an environment where someone else may have access to your
                    602: machine.  Someone could come along and simply ask your computer to
                    603: display the contents of PGPPASS.
                    604: 
                    605: 
                    606: 
                    607: Setting Configuration Parameters: CONFIG.TXT
                    608: ============================================
                    609: 
                    610: PGP has a number of user-settable parameters that can be defined in a
                    611: special configuration text file called "config.txt", in the directory
                    612: pointed to by the shell environmental variable PGPPATH.  Having a
                    613: configuration file enables the user to define various flags and
                    614: parameters for PGP without the burden of having to always define
                    615: these parameters in the PGP command line.
                    616: 
                    617: Configuration parameters may be assigned integer values, character
                    618: string values, or on/off values, depending on what kind of
                    619: configuration parameter it is.  A sample configuration file is
                    620: provided with PGP, so you can see some examples.
                    621: 
                    622: In the configuration file, blank lines are ignored, as is anything
                    623: following the '#' comment character.  Keywords are not
                    624: case-sensitive.  
                    625: 
                    626: Here is a short sample fragment of a typical configuration file:
                    627: 
                    628:    # TMP is the directory for PGP scratch files, such as a RAM disk.
                    629:    TMP = "e:\"    # Can be overridden by environment variable TMP.
                    630:    Armor = on     # Use -a flag for ASCII armor whenever applicable.
                    631:    # CERT_DEPTH is how deeply introducers may introduce introducers.
                    632:    cert_depth = 3
                    633: 
                    634: If some configuration parameters are not defined in the configuration
                    635: file, or if there is no configuration file, or if PGP can't find the
                    636: configuration file, the values for the configuration parameters
                    637: default to some reasonable value.
                    638: 
                    639: Note that it is also possible to set these same configuration
                    640: parameters directly from the PGP command line, by preceding the
                    641: parameter setting with a "+" character.  For example, the following
                    642: two PGP commands produce the same effect:
                    643: 
                    644:      pgp -e +armor=on message.txt smith
                    645: or:  pgp -ea message.txt smith
                    646: 
                    647: 
                    648: The following is a summary of the various parameters than may be
                    649: defined in the configuration file.
                    650: 
                    651: 
                    652: TMP - Directory Pathname for Temporary Files
                    653: --------------------------------------------
                    654: 
                    655: Default setting:  TMP = ""
                    656: 
                    657: The configuration parameter TMP specifies what directory to use for
                    658: PGP's temporary scratch files.  The best place to put them is on a
                    659: RAM disk, if you have one.  That speeds things up quite a bit, and
                    660: increases security somewhat.  If TMP is undefined, the temporary
                    661: files go in the current directory.  If the shell environmental
                    662: variable TMP is defined, PGP instead uses that to specify where the
                    663: temporary files should go.
                    664: 
                    665: 
                    666: LANGUAGE - Foreign Language Selector
                    667: ------------------------------------
                    668: 
                    669: Default setting:  LANGUAGE = "en"
                    670: 
                    671: PGP displays various prompts, warning messages, and advisories to the
                    672: user on the screen.  For example, messages such as "File not found.",
                    673: or "Please enter your pass phrase:".  These messages are normally in
                    674: English.  But it is possible to get PGP to display its messages to
                    675: the user in other languages, without having to modify the PGP
                    676: executable program.
                    677: 
                    678: A number of people in various countries have translated all of PGP's
                    679: display messages, warnings, and prompts into their native languages. 
                    680: These hundreds of translated message strings have been placed in a
                    681: special text file called "language.txt", distributed with the PGP
                    682: release.  The messages are stored in this file in English, Spanish,
                    683: Dutch, German, French, Italian, Russian, Latvian, and Lithuanian. 
                    684: Other languages may be added later.  
                    685: 
                    686: The configuration parameter LANGUAGE specifies what language to
                    687: display these messages in.  LANGUAGE may be set to "en" for English,
                    688: "es" for Spanish, "de" for German, "nl" for Dutch, "fr" for French,
                    689: "it" for Italian, "ru" for Russian, "lt3" for Lithuanian, "lv" for
                    690: Latvian, "esp" for Esperanto.  For example, if this line appeared in
                    691: the configuration file:
                    692: 
                    693:    LANGUAGE = "fr"
                    694: 
                    695: PGP would select French as the language for its display messages.
                    696: The default setting is English.
                    697: 
                    698: When PGP needs to display a message to the user, it looks in the
                    699: "language.txt" file for the equivalent message string in the selected
                    700: foreign language and displays that translated message to the user.
                    701: If PGP can't find the language string file, or if the selected
                    702: language is not in the file, or if that one phrase is not translated
                    703: into the selected language in the file, or if that phrase is missing
                    704: entirely from the file, PGP displays the message in English.
                    705: 
                    706: To conserve disk space, most foreign translations are not included 
                    707: in the standard PGP release package, but are available separately.
                    708: 
                    709: 
                    710: MYNAME - Default User ID for Making Signatures
                    711: ----------------------------------------------
                    712: 
                    713: Default setting:  MYNAME = ""
                    714: 
                    715: The configuration parameter MYNAME specifies the default user ID to
                    716: use to select the secret key for making signatures.  If MYNAME is not
                    717: defined, the most recent secret key you installed on your secret key
                    718: ring will be used.  The user may also override this setting by
                    719: specifying a user ID on the PGP command line with the -u option.
                    720: 
                    721: 
                    722: TEXTMODE - Assuming Plaintext is a Text File
                    723: --------------------------------------------
                    724: 
                    725: Default setting:  TEXTMODE = off
                    726: 
                    727: The configuration parameter TEXTMODE is equivalent to the -t command
                    728: line option.  If enabled, it causes PGP to assume the plaintext is a
                    729: text file, not a binary file, and converts it to "canonical text"
                    730: before encrypting it.  Canonical text has a carriage return and a
                    731: linefeed at the end of each line of text.
                    732: 
                    733: This mode will be automatically turned off if PGP detects that the
                    734: plaintext file contains what it thinks is non-text binary data.
                    735: 
                    736: For VAX/VMS systems, the current version of PGP defaults TEXTMODE=ON.
                    737: 
                    738: For further details, see the section "Sending ASCII Text Files Across
                    739: Different Machine Environments".
                    740: 
                    741: 
                    742: CHARSET - Specifies Local Character Set for Text Files
                    743: ------------------------------------------------------
                    744: 
                    745: Default setting:  CHARSET = NOCONV
                    746: 
                    747: Because PGP must process messages in many non-English languages with
                    748: non-ASCII character sets, you may have a need to tell PGP what local
                    749: character set your machine uses.  This determines what character
                    750: conversions are performed when converting plaintext files to and from
                    751: canonical text format.  This is only a concern if you are in a
                    752: non-English non-ASCII environment.
                    753: 
                    754: The configuration parameter CHARSET selects the local character set. 
                    755: The choices are NOCONV (no conversion), LATIN1 (ISO 8859-1 Latin
                    756: Alphabet 1), KOI8 (used by most Russian Unix systems), ALT_CODES
                    757: (used by Russian MSDOS systems), ASCII, and CP850 (used by most
                    758: western European languages on standard MSDOS PCs).
                    759: 
                    760: LATIN1 is the internal representation used by PGP for canonical text,
                    761: so if you select LATIN1, no conversion is done.  Note also that PGP
                    762: treats KOI8 as LATIN1, even though it is a completely different
                    763: character set (Russian), because trying to convert KOI8 to either
                    764: LATIN1 or CP850 would be futile anyway.  This means that setting
                    765: CHARSET to NOCONV, LATIN1, or KOI8 are all equivalent to PGP.
                    766: 
                    767: If you use MSDOS and expect to send or receive traffic in western
                    768: European languages, set CHARSET = "CP850".  This will make PGP
                    769: convert incoming canonical text messages from LATIN1 to CP850 after
                    770: decryption.  If you use the -t (textmode) option to convert to
                    771: canonical text, PGP will convert your CP850 text to LATIN1 before
                    772: encrypting it.
                    773: 
                    774: For further details, see the section "Sending ASCII Text Files Across
                    775: Different Machine Environments".
                    776: 
                    777: 
                    778: ARMOR - Enable ASCII Armor Output
                    779: ---------------------------------
                    780: 
                    781: Default setting:  ARMOR = off
                    782: 
                    783: The configuration parameter ARMOR is equivalent to the -a command
                    784: line option.  If enabled, it causes PGP to emit ciphertext or keys in
                    785: ASCII Radix-64 format suitable for transporting through E-mail
                    786: channels.  Output files are named with the ".asc" extension.
                    787: 
                    788: If you tend to use PGP mostly for E-mail, it may be a good idea to
                    789: enable this parameter.
                    790: 
                    791: For further details, see the section "Sending Ciphertext Through
                    792: E-mail Channels: Radix-64 Format" in the Essential Topics volume. 
                    793: 
                    794: 
                    795: ARMORLINES - Size of ASCII Armor Multipart Files
                    796: ------------------------------------------------
                    797: 
                    798: Default setting:  ARMORLINES = 720
                    799: 
                    800: When PGP creates a very large ".asc" radix-64 file for sending
                    801: ciphertext or keys through the E-mail, it breaks the file up into
                    802: separate chunks small enough to send through Internet mail
                    803: utilities.  Normally, Internet mailers prohibit files larger than
                    804: about 50000 bytes, which means that if we restrict the number of
                    805: lines to about 720, we'll be well within the limit.  The file chunks
                    806: are named with suffixes ".as1", ".as2", ".as3", ... 
                    807: 
                    808: The configuration parameter ARMORLINES specifies the maximum number
                    809: of lines to make each chunk in a multipart ".asc" file sequence.  If
                    810: you set it to zero, PGP will not break up the file into chunks.
                    811: 
                    812: Fidonet email files usually have an upper limit of about 32K bytes,
                    813: so 450 lines would be appropriate for Fidonet environments.
                    814: 
                    815: For further details, see the section "Sending Ciphertext Through
                    816: E-mail Channels: Radix-64 Format" in the Essential Topics volume.
                    817: 
                    818: 
                    819: KEEPBINARY - Keep Binary Ciphertext Files After Decrypting
                    820: ----------------------------------------------------------
                    821: 
                    822: Default setting:  KEEPBINARY = off
                    823: 
                    824: When PGP reads a ".asc" file, it recognizes that the file is in
                    825: radix-64 format and will convert it back to binary before processing
                    826: as it normally does, producing as a by-product a ".pgp" ciphertext
                    827: file in binary form.  After further processing to decrypt the ".pgp"
                    828: file, the final output file will be in normal plaintext form.
                    829: 
                    830: You may want to delete the binary ".pgp" intermediate file, or you
                    831: may want PGP to delete it for you automatically.  You can still rerun
                    832: PGP on the original ".asc" file.
                    833: 
                    834: The configuration parameter KEEPBINARY enables or disables keeping
                    835: the intermediate ".pgp" file during decryption.
                    836: 
                    837: For further details, see the section "Sending Ciphertext Through
                    838: E-mail Channels: Radix-64 Format" in the Essential Topics volume.
                    839: 
                    840: 
                    841: COMPRESS - Enable Compression
                    842: -----------------------------
                    843: 
                    844: Default setting:  COMPRESS = on
                    845: 
                    846: The configuration parameter COMPRESS enables or disables data
                    847: compression before encryption.  It is used mainly for debugging PGP. 
                    848: Normally, PGP attempts to compress the plaintext before it encrypts
                    849: it.  Generally, you should leave this alone and let PGP attempt to
                    850: compress the plaintext.
                    851: 
                    852: 
                    853: COMPLETES_NEEDED - Number of Completely Trusted Introducers Needed
                    854: ------------------------------------------------------------------
                    855: 
                    856: Default setting:  COMPLETES_NEEDED = 1
                    857: 
                    858: The configuration parameter COMPLETES_NEEDED specifies the minimum
                    859: number of completely trusted introducers required to fully certify a
                    860: public key on your public key ring.  This gives you a way of tuning
                    861: PGP's skepticism.
                    862: 
                    863: For further details, see the section "How Does PGP Keep Track of 
                    864: Which Keys are Valid?" in the Essential Topics volume.
                    865: 
                    866: 
                    867: MARGINALS_NEEDED - Number of Marginally Trusted Introducers Needed
                    868: ------------------------------------------------------------------
                    869: 
                    870: Default setting:  MARGINALS_NEEDED = 2
                    871: 
                    872: The configuration parameter MARGINALS_NEEDED specifies the minimum
                    873: number of marginally trusted introducers required to fully certify a
                    874: public key on your public key ring.  This gives you a way of tuning
                    875: PGP's skepticism.
                    876: 
                    877: For further details, see the section "How Does PGP Keep Track of 
                    878: Which Keys are Valid?" in the Essential Topics volume.
                    879: 
                    880: 
                    881: CERT_DEPTH - How Deep May Introducers Be Nested
                    882: -----------------------------------------------
                    883: 
                    884: Default setting:  CERT_DEPTH = 4
                    885: 
                    886: The configuration parameter CERT_DEPTH specifies how many levels deep
                    887: you may nest introducers to certify other introducers to certify
                    888: public keys on your public key ring.  For example, If CERT_DEPTH is
                    889: set to 1, there may only be one layer of introducers below your own
                    890: ultimately-trusted key.  If that were the case, you would be required
                    891: to directly certify the public keys of all trusted introducers on
                    892: your key ring.  If you set CERT_DEPTH to 0, you could have no
                    893: introducers at all, and you would have to directly certify each and
                    894: every key on your public key ring in order to use it.  The minimum
                    895: CERT_DEPTH is 0, the maximum is 8.
                    896: 
                    897: For further details, see the section "How Does PGP Keep Track of 
                    898: Which Keys are Valid?" in the Essential Topics volume.
                    899: 
                    900: 
                    901: BAKRING - Filename for Backup Secret Keyring
                    902: --------------------------------------------
                    903: 
                    904: Default setting:  BAKRING = ""
                    905: 
                    906: All of the key certification that PGP does on your public key ring
                    907: ultimately depends on your own ultimately-trusted public key (or
                    908: keys).  To detect any tampering of your public key ring, PGP must
                    909: check that your own key has not been tampered with.  To do this, PGP
                    910: must compare your public key against a backup copy of your secret key
                    911: on some tamper-resistant media, such as a write-protected floppy
                    912: disk.  A secret key contains all the information that your public key
                    913: has, plus some secret components.  This means PGP can check your
                    914: public key against a backup copy of your secret key.
                    915: 
                    916: The configuration parameter BAKRING specifies what pathname to use
                    917: for PGP's trusted backup copy of your secret key ring.  On MSDOS, you
                    918: could set it to "a:\secring.pgp" to point it at a write-protected
                    919: backup copy of your secret key ring on your floppy drive.  This check
                    920: is performed only when you execute the PGP -kc option to check your
                    921: whole public key ring.
                    922: 
                    923: If BAKRING is not defined, PGP will not check your own key against
                    924: any backup copy.
                    925: 
                    926: For further details, see the sections "How to Protect Public Keys
                    927: from Tampering" and "How Does PGP Keep Track of Which Keys are
                    928: Valid?" in the Essential Topics volume.
                    929: 
                    930: 
                    931: PAGER - Selects Shell Command to Display Plaintext Output
                    932: ---------------------------------------------------------
                    933: 
                    934: Default setting:  PAGER = ""
                    935: 
                    936: PGP lets you view the decrypted plaintext output on your screen (like
                    937: the Unix-style "more" command), without writing it to a file, if you
                    938: use the -m (more) option while decrypting.  This displays the
                    939: decrypted plaintext display on your screen one screenful at a time.
                    940: 
                    941: If you prefer to use a fancier page display utility, rather than
                    942: PGP's built-in one, you can specify the name of a shell command that
                    943: PGP will invoke to display your plaintext output file.  The
                    944: configuration parameter PAGER specifies the shell command to invoke
                    945: to display the file.  For example, on MSDOS systems, you might want
                    946: to use the popular shareware program "list.com" to display your
                    947: plaintext message.  Assuming you have a copy of "list.com", you may 
                    948: set PAGER accordingly:
                    949: 
                    950:    PAGER = "list"
                    951: 
                    952: However, if the sender specified that this file is for your eyes
                    953: only, and may not be written to disk, PGP always uses its own
                    954: built-in display function.
                    955: 
                    956: For further details, see the section "Displaying Decrypted Plaintext 
                    957: on Your Screen".
                    958: 
                    959: 
                    960: SHOWPASS - Echo Pass Phrase to User
                    961: -----------------------------------
                    962: 
                    963: Default setting:  SHOWPASS = off
                    964: 
                    965: Normally, PGP does not let you see your pass phrase as you type it
                    966: in.  This makes it harder for someone to look over your shoulder
                    967: while you type and learn your pass phrase.  But some typing-impaired
                    968: people have problems typing their pass phrase without seeing what
                    969: they are typing, and they may be typing in the privacy of their own
                    970: homes.  So they asked if PGP can be configured to let them see what
                    971: they type when they type in their pass phrase.
                    972: 
                    973: The configuration parameter SHOWPASS enables PGP to echo your typing 
                    974: during pass phrase entry.
                    975: 
                    976: 
                    977: TZFIX - Timezone Adjustment
                    978: ---------------------------
                    979: 
                    980: Default setting:  TZFIX = 0
                    981: 
                    982: PGP provides timestamps for keys and signature certificates in
                    983: Greenwich Mean Time (GMT), or Coordinated Universal Time (UTC), which
                    984: means the same thing for our purposes.  When PGP asks the system for
                    985: the time of day, the system is supposed to provide it in GMT.  
                    986: 
                    987: But sometimes, because of improperly configured MSDOS systems, the
                    988: system time is returned in US Pacific Standard Time time plus 8
                    989: hours.  Sounds weird, doesn't it?  Perhaps because of some sort of US
                    990: west-coast jingoism, MSDOS presumes local time is US Pacific time,
                    991: and pre-corrects Pacific time to GMT.  This adversely affects the
                    992: behavior of the internal MSDOS GMT time function that PGP calls. 
                    993: However, if your MSDOS environmental variable TZ is already properly
                    994: defined for your timezone, this corrects the misconception MSDOS has
                    995: that the whole world lives on the US west coast.  
                    996: 
                    997: The configuration parameter TZFIX specifies the number of hours to
                    998: add to the system time function to get GMT, for GMT timestamps on
                    999: keys and signatures.  If the MSDOS environmental variable TZ is
                   1000: defined properly, you can leave TZFIX=0.  Unix systems usually
                   1001: shouldn't need to worry about setting TZFIX at all.  But if you are
                   1002: using some other obscure operating system that doesn't know about
                   1003: GMT, you may have to use TZFIX to adjust the system time to GMT. 
                   1004: 
                   1005: On MSDOS systems that do not have TZ defined in the environment, you
                   1006: should make TZFIX=0 for California, -1 for Colorado, -2 for Chicago,
                   1007: -3 for New York, -8 for London, -9 for Amsterdam.  In the summer,
                   1008: TZFIX should be manually decremented from these values.  What a mess.
                   1009: 
                   1010: It would be much cleaner to set your MSDOS environmental variable TZ
                   1011: in your AUTOEXEC.BAT file, and not use the TZFIX correction.  Then
                   1012: MSDOS gives you good GMT timestamps, and will handle daylight savings
                   1013: time adjustments for you.  Here are some sample lines to insert into
                   1014: AUTOEXEC.BAT, depending on your time zone:
                   1015: 
                   1016: For Los Angeles:  SET TZ=PST8PDT
                   1017: For Denver:       SET TZ=MST7MDT
                   1018: For Arizona:      SET TZ=MST7
                   1019:    (Arizona never uses daylight savings time)
                   1020: For Chicago:      SET TZ=CST6CDT
                   1021: For New York:     SET TZ=EST5EDT
                   1022: For London:       SET TZ=GMT0BST
                   1023: For Amsterdam:    SET TZ=MET-1DST
                   1024: For Moscow:       SET TZ=MSK-3MSD
                   1025: For Aukland:      SET TZ=NZT-13
                   1026: 
                   1027: 
                   1028: CLEARSIG - Enable Signed Messages to be Encapsulated as Clear Text
                   1029: ------------------------------------------------------------------
                   1030: 
                   1031: Default setting:  CLEARSIG = off
                   1032: 
                   1033: Normally, unencrypted PGP signed messages have a signature
                   1034: certificate prepended in binary form.  To send this through a 7-bit
                   1035: E-mail channel, radix-64 ASCII armor is applied (see the ARMOR
                   1036: parameter), rendering the message unreadable to casual human eyes,
                   1037: even though the message is not actually encrypted.  The recipient
                   1038: must use PGP to strip the armor off before reading the message.
                   1039: 
                   1040: If the original plaintext message is in text (not binary) form, there
                   1041: is a way to send it through an E-mail channel in such a way that the
                   1042: ASCII armor is applied only to the binary signature certificate, but
                   1043: not to the plaintext message.  This makes it possible to read the
                   1044: signed message with human eyes, without the aid of PGP.  Of course,
                   1045: you still need PGP to actually check the signature.
                   1046: 
                   1047: To enable this feature, set CLEARSIG=ON, and set ARMOR=ON (or use
                   1048: the -a option), and set TEXTMODE=ON (or use the -t option).  For
                   1049: example, you can set CLEARSIG directly from the command line:
                   1050: 
                   1051:      pgp -sta +clearsig=on message.txt
                   1052: 
                   1053: This message representation is analogous to the MIC-CLEAR message type
                   1054: used in Internet Privacy Enhanced Mail (PEM).  It is important to
                   1055: note that since this method only applies ASCII armor to the binary
                   1056: signature certificate, and not to the message text itself, there is
                   1057: some risk that the unarmored message may suffer some accidental
                   1058: molestation while en route.  This can happen if it passes through
                   1059: some E-mail gateway that performs character set conversions, or in
                   1060: some cases extra spaces may be added to or stripped from the ends of
                   1061: lines.  If this occurs, the signature will fail to verify, which may
                   1062: give a false indication of intentional tampering.  But since PEM
                   1063: lives under a similar vulnerability, it seems worth having this
                   1064: feature despite the risks.
                   1065: 
                   1066: Beginning with PGP version 2.2, trailing blanks are ignored on each
                   1067: line in calculating the signature for text in CLEARSIG mode.
                   1068: 
                   1069: 
                   1070: VERBOSE - Quiet, Normal, or Verbose Messages
                   1071: --------------------------------------------
                   1072: 
                   1073: Default setting:  VERBOSE = 1
                   1074: 
                   1075: VERBOSE may be set to 0, 1, or 2, depending on how much detail you
                   1076: want to see from PGP diagnostic messages.  The settings are:
                   1077: 
                   1078: 0 - Display messages only if there is a problem.  Unix fans wanted
                   1079: this "quiet mode" setting.
                   1080: 
                   1081: 1 - Normal default setting.  Displays a reasonable amount of detail
                   1082: in diagnostic or advisory messages.
                   1083: 
                   1084: 2 - Displays maximum information, usually to help diagnose problems
                   1085: in PGP.  Not recommended for normal use.  Besides, PGP doesn't have
                   1086: any problems, right?
                   1087:  
                   1088: 
                   1089: INTERACTIVE - Ask for Confirmation for Key Adds
                   1090: -----------------------------------------------
                   1091: 
                   1092: Default Setting:  INTERACTIVE = off
                   1093: 
                   1094: Enabling this mode will mean that if you add a key file containing
                   1095: multiple keys to your key ring, PGP will ask for confirmation for
                   1096: each key before adding it to your key ring.
                   1097: 
                   1098: 
                   1099: 
                   1100: Protecting Against Bogus Timestamps
                   1101: ===================================
                   1102: 
                   1103: A somewhat obscure vulnerability of PGP involves dishonest users
                   1104: creating bogus timestamps on their own public key certificates and
                   1105: signatures.  You can skip over this section if you are a casual user
                   1106: and aren't deeply into obscure public key protocols.
                   1107: 
                   1108: There's nothing to stop a dishonest user from altering the date and
                   1109: time setting of his own system's clock, and generating his own public
                   1110: key certificates and signatures that appear to have been created at a
                   1111: different time.  He can make it appear that he signed something
                   1112: earlier or later than he actually did, or that his public/secret key
                   1113: pair was created earlier or later.  This may have some legal or
                   1114: financial benefit to him, for example by creating some kind of 
                   1115: loophole that might allow him to repudiate a signature.
                   1116: 
                   1117: A remedy for this could involve some trustworthy Certifying Authority
                   1118: or notary that would create notarized signatures with a trustworthy
                   1119: timestamp.  This might not necessarily require a centralized
                   1120: authority.  Perhaps any trusted introducer or disinterested party
                   1121: could serve this function, the same way real notary publics do now. 
                   1122: A public key certificate could be signed by the notary, and the
                   1123: trusted timestamp in the notary's signature would have some legal
                   1124: significance.  The notary could enter the signed certificate into a
                   1125: special certificate log controlled by the notary.  Anyone can read
                   1126: this log. 
                   1127: 
                   1128: The notary could also sign other people's signatures, creating a
                   1129: signature certificate of a signature certificate.  This would serve
                   1130: as a witness to the signature the same way real notaries do now with
                   1131: paper.  Again, the notary could enter the detached signature
                   1132: certificate (without the actual whole document that was signed) into
                   1133: a log controlled by the notary.  The notary's signature would have a
                   1134: trusted timestamp, which might have greater credibility than the
                   1135: timestamp in the original signature.  A signature becomes "legal" if
                   1136: it is signed and logged by the notary.
                   1137: 
                   1138: This problem of certifying signatures with notaries and trusted
                   1139: timestamps warrants further discussion.  This can of worms will not
                   1140: be fully covered here now.  There is a good treatment of this topic
                   1141: in Denning's 1983 article in IEEE Computer (see references).  There
                   1142: is much more detail to be worked out in these various certifying
                   1143: schemes.  This will develop further as PGP usage increases and other
                   1144: public key products develop their own certifying schemes.
                   1145: 
                   1146: 
                   1147: A Peek Under the Hood
                   1148: =====================
                   1149: 
                   1150: Let's take a look at a few internal features of PGP.
                   1151: 
                   1152: 
                   1153: Random Numbers
                   1154: --------------
                   1155: 
                   1156: PGP uses a cryptographically strong pseudorandom number generator for
                   1157: creating temporary conventional session keys.  The seed file for this
                   1158: is called  "randseed.bin".  It too can be kept in whatever directory
                   1159: is indicated by the PGPPATH environmental variable.  If this random
                   1160: seed file does not exist, it is automatically created and seeded with
                   1161: truly random numbers derived from timing your keystroke latencies.  
                   1162: 
                   1163: This generator reseeds the disk file each time it is used by mixing
                   1164: in new key material partially derived with the time of day and other
                   1165: truly random sources.  It uses the conventional encryption algorithm
                   1166: as an engine for the random number generator.  The seed file contains
                   1167: both random seed material and random key material to key the
                   1168: conventional encryption engine for the random generator.
                   1169: 
                   1170: This random seed file should be at least slightly protected from
                   1171: disclosure, to reduce the risk of an attacker deriving your next or
                   1172: previous session keys.  The attacker would have a very hard time
                   1173: getting anything useful from capturing this random seed file, because
                   1174: the file is cryptographically laundered before and after each use. 
                   1175: Nonetheless, it seems prudent to at least try to keep it from falling
                   1176: into the wrong hands.
                   1177: 
                   1178: If you feel uneasy about trusting any algorithmically derived random
                   1179: number source however strong, keep in mind that you already trust the
                   1180: strength of the same conventional cipher to protect your messages. 
                   1181: If it's strong enough for that, then it should be strong enough to
                   1182: use as a source of random numbers for temporary session keys.  Note
                   1183: that PGP still uses truly random numbers from physical sources
                   1184: (mainly keyboard timings) to generate long-term public/secret key
                   1185: pairs.
                   1186: 
                   1187: 
                   1188: 
                   1189: PGP's Conventional Encryption Algorithm
                   1190: ---------------------------------------
                   1191: 
                   1192: As described earlier, PGP "bootstraps" into a conventional single-key
                   1193: encryption algorithm by using a public key algorithm to encipher the
                   1194: conventional session key and then switching to fast conventional
                   1195: cryptography.  So let's talk about this conventional encryption
                   1196: algorithm.  It isn't the DES.
                   1197: 
                   1198: The Federal Data Encryption Standard (DES) is a good algorithm for
                   1199: most commercial applications.  However, the Government does not trust
                   1200: the DES to protect its own classified data.  Perhaps this is because
                   1201: the DES key length is 56 bits, short enough for a brute force attack
                   1202: with a special purpose machine built from massive numbers of DES
                   1203: chips.  Also, Biham and Shamir have had some success recently on
                   1204: attacking the full 16-round DES.
                   1205: 
                   1206: PGP does not use the DES as its conventional single-key algorithm to
                   1207: encrypt messages.  Instead, PGP uses a different conventional
                   1208: single-key block encryption algorithm, called IDEA(tm).  A future
                   1209: version of PGP may support the DES as an option, if enough users
                   1210: ask for it.  But I suspect IDEA is better than DES.
                   1211: 
                   1212: For the cryptographically curious, the IDEA cipher has a 64-bit block
                   1213: size for the plaintext and the ciphertext.  It uses a key size of 128
                   1214: bits.  It is based on the design concept of "mixing operations from
                   1215: different algebraic groups".  It runs much faster in software than
                   1216: the DES.  Like the DES, it can be used in cipher feedback (CFB) and
                   1217: cipher block chaining (CBC) modes.  PGP uses it in 64-bit CFB mode.
                   1218: 
                   1219: The IPES/IDEA block cipher was developed at ETH in Zurich by James L.
                   1220: Massey and Xuejia Lai, and published in 1990.  This is not a 
                   1221: "home-grown" algorithm.  Its designers have a distinguished
                   1222: reputation in the cryptologic community.  Early published papers on
                   1223: the algorithm called it IPES (Improved Proposed Encryption Standard),
                   1224: but they later changed the name to IDEA (International Data
                   1225: Encryption Algorithm).  So far, IDEA has resisted attack much better
                   1226: than other ciphers such as FEAL, REDOC-II, LOKI, Snefru and Khafre. 
                   1227: And preliminary evidence suggests that IDEA may be more resistant
                   1228: than the DES to Biham & Shamir's highly successful differential
                   1229: cryptanalysis attack.  Biham and Shamir have been examining the IDEA
                   1230: cipher for weaknesses, without success.  Academic cryptanalyst groups
                   1231: in Belgium, England, and Germany are also attempting to attack it, as
                   1232: well as the military services from several European countries.  As
                   1233: this new cipher continues to attract attack efforts from the most
                   1234: formidable quarters of the cryptanalytic world, confidence in IDEA is
                   1235: growing with the passage of time.
                   1236: 
                   1237: A famous hockey player once said, "I try to skate to where I think
                   1238: the puck will be."  A lot of people are starting to feel that the
                   1239: days are numbered for the DES.  I'm skating toward IDEA.
                   1240: 
                   1241: It is not ergonomically practical to use pure RSA with large keys to
                   1242: encrypt and decrypt long messages.  Absolutely no one does it that way
                   1243: in the real world.  But perhaps you are concerned that the whole
                   1244: package is weakened if we use a hybrid public-key and conventional
                   1245: scheme just to speed things up.  After all, a chain is only as strong
                   1246: as its weakest link.  Many people less experienced in cryptography
                   1247: mistakenly believe that RSA is intrinsically stronger than any
                   1248: conventional cipher.  It's not.  RSA can be made weak by using weak
                   1249: keys, and conventional ciphers can be made strong by choosing good
                   1250: algorithms.  It's usually difficult to tell exactly how strong a good
                   1251: conventional cipher is, without actually cracking it.  A really good
                   1252: conventional cipher might possibly be harder to crack than even a
                   1253: "military grade" RSA key.  The attraction of public key cryptography
                   1254: is not because it is intrinsically stronger than a conventional
                   1255: cipher-- its appeal is because it helps you manage keys more
                   1256: conveniently.
                   1257: 
                   1258: 
                   1259: 
                   1260: Data Compression
                   1261: ----------------
                   1262: 
                   1263: PGP normally compresses the plaintext before encrypting it.  It's too
                   1264: late to compress it after it has been encrypted; encrypted data is
                   1265: incompressible.  Data compression saves modem transmission time and
                   1266: disk space and more importantly strengthens cryptographic security.  
                   1267: Most cryptanalysis techniques exploit redundancies found in the
                   1268: plaintext to crack the cipher.  Data compression reduces this
                   1269: redundancy in the plaintext, thereby greatly enhancing resistance to 
                   1270: cryptanalysis.  It takes extra time to compress the plaintext, but 
                   1271: from a security point of view it seems worth it, at least in my 
                   1272: cautious opinion. 
                   1273: 
                   1274: Files that are too short to compress or just don't compress well are
                   1275: not compressed by PGP.  
                   1276: 
                   1277: If you prefer, you can use PKZIP to compress the plaintext before
                   1278: encrypting it.  PKZIP is a widely-available and effective MSDOS
                   1279: shareware compression utility from PKWare, Inc.  Or you can use ZIP,
                   1280: a PKZIP-compatible freeware compression utility on Unix and other
                   1281: systems, available from Jean-Loup Gailly.  There is some advantage in
                   1282: using PKZIP or ZIP in certain cases, because unlike PGP's built-in
                   1283: compression algorithm, PKZIP and ZIP have the nice feature of
                   1284: compressing multiple files into a single compressed file, which is
                   1285: reconstituted again into separate files when decompressed.  PGP will
                   1286: not try to compress a plaintext file that has already been
                   1287: compressed.  After decrypting, the recipient can decompress the
                   1288: plaintext with PKUNZIP.  If the decrypted plaintext is a PKZIP
                   1289: compressed file, PGP automatically recognizes this and advises the 
                   1290: recipient that the decrypted plaintext appears to be a PKZIP file.
                   1291: 
                   1292: For the technically curious readers, the current version of PGP uses
                   1293: the freeware ZIP compression routines written by Jean-loup Gailly,
                   1294: Mark Adler, and Richard B. Wales.  This ZIP software uses
                   1295: functionally-equivalent compression algorithms as those used by
                   1296: PKWare's new PKZIP 2.0.  This ZIP compression software was selected
                   1297: for PGP mainly because of its free portable C source code
                   1298: availability, and because it has a really good compression ratio, and
                   1299: because it's fast.  
                   1300: 
                   1301: Peter Gutmann has also written a nice compression utility called
                   1302: HPACK, available for free from many Internet FTP sites.  It encrypts
                   1303: the compressed archives, using PGP data formats and key rings.  He
                   1304: wanted me to mention that here.
                   1305: 
                   1306: 
                   1307: 
                   1308: Message Digests and Digital Signatures
                   1309: --------------------------------------
                   1310: 
                   1311: To create a digital signature, PGP encrypts with your secret key. 
                   1312: But PGP doesn't actually encrypt your entire message with your secret
                   1313: key-- that would take too long.  Instead, PGP encrypts a "message
                   1314: digest".  
                   1315: 
                   1316: The message digest is a compact (128 bit) "distillate" of your
                   1317: message, similar in concept to a checksum.  You can also think of it
                   1318: as a "fingerprint" of the message.  The message digest "represents"
                   1319: your message, such that if the message were altered in any way, a
                   1320: different message digest would be computed from it.  This makes it
                   1321: possible to detect any changes made to the message by a forger.  A
                   1322: message digest is computed using a cryptographically strong one-way
                   1323: hash function of the message.  It would be computationally infeasible
                   1324: for an attacker to devise a substitute message that would produce an
                   1325: identical message digest.  In that respect, a message digest is much
                   1326: better than a checksum, because it is easy to devise a different
                   1327: message that would produce the same checksum.  But like a checksum,
                   1328: you can't derive the original message from its message digest.  
                   1329: 
                   1330: A message digest alone is not enough to authenticate a message.  The
                   1331: message digest algorithm is publicly known, and does not require
                   1332: knowledge of any secret keys to calculate.  If all we did was attach
                   1333: a message digest to a message, then a forger could alter a message
                   1334: and simply attach a new message digest calculated from the new
                   1335: altered message.  To provide real authentication, the sender has to
                   1336: encrypt (sign) the message digest with his secret key.  
                   1337: 
                   1338: A message digest is calculated from the message by the sender.  The
                   1339: sender's secret key is used to encrypt the message digest and an
                   1340: electronic timestamp, forming a digital signature, or signature
                   1341: certificate.  The sender sends the digital signature along with the
                   1342: message.  The receiver receives the message and the digital
                   1343: signature, and recovers the original message digest from the digital
                   1344: signature by decrypting it with the sender's public key.  The
                   1345: receiver computes a new message digest from the message, and checks
                   1346: to see if it matches the one recovered from the digital signature.  If
                   1347: it matches, then that proves the message was not altered, and it came
                   1348: from the sender who owns the public key used to check the signature.
                   1349: 
                   1350: A potential forger would have to either produce an altered message
                   1351: that produces an identical message digest (which is infeasible), or
                   1352: he would have to create a new digital signature from a different
                   1353: message digest (also infeasible, without knowing the true sender's
                   1354: secret key).
                   1355: 
                   1356: Digital signatures prove who sent the message, and that the message
                   1357: was not altered either by error or design.  It also provides
                   1358: non-repudiation, which means the sender cannot easily disavow his
                   1359: signature on the message.
                   1360: 
                   1361: Using message digests to form digital signatures has other advantages
                   1362: besides being faster than directly signing the entire actual message
                   1363: with the secret key.  Using message digests allows signatures to be
                   1364: of a standard small fixed size, regardless of the size of the actual
                   1365: message.  It also allows the software to check the message integrity
                   1366: automatically, in a manner similar to using checksums.  And it allows
                   1367: signatures to be stored separately from messages, perhaps even in a
                   1368: public archive, without revealing sensitive information about the
                   1369: actual messages, because no one can derive any message content from a
                   1370: message digest.
                   1371: 
                   1372: The message digest algorithm used here is the MD5 Message Digest
                   1373: Algorithm, placed in the public domain by RSA Data Security, Inc.
                   1374: MD5's designer, Ronald Rivest, writes this about MD5:
                   1375: 
                   1376: "It is conjectured that the difficulty of coming up with two messages
                   1377: having the same message digest is on the order of 2^64 operations,
                   1378: and that the difficulty of coming up with any message having a given
                   1379: message digest is on the order of 2^128 operations.  The MD5
                   1380: algorithm has been carefully scrutinized for weaknesses.  It is,
                   1381: however, a relatively new algorithm and further security analysis is
                   1382: of course justified, as is the case with any new proposal of this
                   1383: sort.  The level of security provided by MD5 should be sufficient for
                   1384: implementing very high security hybrid digital signature schemes
                   1385: based on MD5 and the RSA public-key cryptosystem."
                   1386: 
                   1387: 
                   1388: 
                   1389: Compatibility with Previous Versions of PGP
                   1390: ===========================================
                   1391: 
                   1392: I'm sorry, PGP version 2.0 is not compatible with PGP version 1.0.  
                   1393: If you have keys generated with version 1.0, you will have to
                   1394: generate new keys to use with this version.  This version of PGP uses
                   1395: all new algorithms for conventional cryptography, compression, and
                   1396: message digests, as well as using a much better approach to key
                   1397: management.  There were just too many changes to make it compatible
                   1398: with the old format messages, signatures, and keys.  Perhaps we could
                   1399: have provided a special conversion utility to convert old keys into
                   1400: new keys, but we were all tired and wanted to get the new release out
                   1401: the door.  Besides, converting the old keys into new keys would
                   1402: probably create more problems than it would solve, because we have
                   1403: changed to a new recommended uniform style for the user ID that
                   1404: includes the full name and E-mail address in a particular syntax.
                   1405: 
                   1406: There is compatibility from version 2.0 to higher versions.  Because
                   1407: new features are added, older versions may not always be able to
                   1408: handle some files created with newer versions. 
                   1409: 
                   1410: We made some effort to design the internal data structures of this
                   1411: version of PGP to be adaptable to future changes, so that hopefully
                   1412: you will not be required to discard and regenerate your keys in future
                   1413: versions.
                   1414: 
                   1415: 
                   1416: Vulnerabilities
                   1417: ===============
                   1418: 
                   1419: No data security system is impenetrable.  PGP can be circumvented in
                   1420: a variety of ways.  In any data security system, you have to ask
                   1421: yourself if the information you are trying to protect is more
                   1422: valuable to your attacker than the cost of the attack.  This should
                   1423: lead you to protecting yourself from the cheapest attacks, while not
                   1424: worrying about the more expensive attacks.  
                   1425: 
                   1426: Some of the discussion that follows may seem unduly paranoid, but
                   1427: such an attitude is appropriate for a reasonable discussion of
                   1428: vulnerability issues. 
                   1429: 
                   1430: 
                   1431: Compromised Pass Phrase and Secret Key
                   1432: --------------------------------------
                   1433: 
                   1434: Probably the simplest attack is if you leave your pass phrase for
                   1435: your secret key written down somewhere.  If someone gets it and also
                   1436: gets your secret key file, they can read your messages and make
                   1437: signatures in your name.  
                   1438: 
                   1439: Don't use obvious passwords that can be easily guessed, such as the
                   1440: names of your kids or spouse.  If you make your pass phrase a single
                   1441: word, it can be easily guessed by having a computer try all the words
                   1442: in the dictionary until it finds your password.  That's why a pass
                   1443: phrase is so much better than a password.  A more sophisticated
                   1444: attacker may have his computer scan a book of famous quotations to
                   1445: find your pass phrase.  An easy to remember but hard to guess pass
                   1446: phrase can be easily constructed by some creatively nonsensical
                   1447: sayings or very obscure literary quotes.  
                   1448: 
                   1449: For further details, see the section "How to Protect Secret Keys from
                   1450: Disclosure" in the Essential Topics volume of the PGP User's Guide.
                   1451: 
                   1452: 
                   1453: Public Key Tampering
                   1454: --------------------
                   1455: 
                   1456: A major vulnerability exists if public keys are tampered with.  This
                   1457: may be the most crucially important vulnerability of a public key
                   1458: cryptosystem, in part because most novices don't immediately
                   1459: recognize it.  The importance of this vulnerability, and appropriate
                   1460: hygienic countermeasures, are detailed in the section "How to Protect
                   1461: Public Keys from Tampering" in the Essential Topics volume.    
                   1462: 
                   1463: To summarize:  When you use someone's public key, make certain it has
                   1464: not been tampered with.  A new public key from someone else should be
                   1465: trusted only if you got it directly from its owner, or if it has been
                   1466: signed by someone you trust.  Make sure no one else can tamper with
                   1467: your own public key ring.  Maintain physical control of both your
                   1468: public key ring and your secret key ring, preferably on your own
                   1469: personal computer rather than on a remote timesharing system.  Keep a
                   1470: backup copy of both key rings.
                   1471: 
                   1472: 
                   1473: "Not Quite Deleted" Files
                   1474: -------------------------
                   1475: 
                   1476: Another potential security problem is caused by how most operating
                   1477: systems delete files.  When you encrypt a file and then delete the
                   1478: original plaintext file, the operating system doesn't actually
                   1479: physically erase the data.  It merely marks those disk blocks as
                   1480: deleted, allowing the space to be reused later.  It's sort of like
                   1481: discarding sensitive paper documents in the paper recycling bin
                   1482: instead of the paper shredder.  The disk blocks still contain the
                   1483: original sensitive data you wanted to erase, and will probably
                   1484: eventually be overwritten by new data at some point in the future. 
                   1485: If an attacker reads these deleted disk blocks soon after they have
                   1486: been deallocated, he could recover your plaintext. 
                   1487: 
                   1488: In fact this could even happen accidentally, if for some reason
                   1489: something went wrong with the disk and some files were accidentally
                   1490: deleted or corrupted.  A disk recovery program may be run to recover
                   1491: the damaged files, but this often means some previously deleted files
                   1492: are resurrected along with everything else.  Your confidential files
                   1493: that you thought were gone forever could then reappear and be
                   1494: inspected by whomever is attempting to recover your damaged disk.  
                   1495: Even while you are creating the original message with a word
                   1496: processor or text editor, the editor may be creating multiple
                   1497: temporary copies of your text on the disk, just because of its
                   1498: internal workings.  These temporary copies of your text are deleted
                   1499: by the word processor when it's done, but these sensitive fragments
                   1500: are still on your disk somewhere.  
                   1501: 
                   1502: Let me tell you a true horror story.  I had a friend, married with
                   1503: young children, who once had a brief and not very serious affair. 
                   1504: She wrote a letter to her lover on her word processor, and deleted
                   1505: the letter after she sent it.  Later, after the affair was over, the
                   1506: floppy disk got damaged somehow and she had to recover it because it
                   1507: contained other important documents.  She asked her husband to
                   1508: salvage the disk, which seemed perfectly safe because she knew she
                   1509: had deleted the incriminating letter.  Her husband ran a commercial
                   1510: disk recovery software package to salvage the files.  It recovered
                   1511: the files alright, including the deleted letter.  He read it, which 
                   1512: set off a tragic chain of events.  
                   1513: 
                   1514: The only way to prevent the plaintext from reappearing is to somehow
                   1515: cause the deleted plaintext files to be overwritten.  Unless you know
                   1516: for sure that all the deleted disk blocks will soon be reused, you
                   1517: must take positive steps to overwrite the plaintext file, and also
                   1518: any fragments of it on the disk left by your word processor.  You can
                   1519: overwrite the original plaintext file after encryption by using the
                   1520: PGP -w (wipe) option.  You can take care of any fragments of the
                   1521: plaintext left on the disk by using any of the disk utilities
                   1522: available that can overwrite all of the unused blocks on a disk.  For
                   1523: example, the Norton Utilities for MSDOS can do this.
                   1524: 
                   1525: Even if you overwrite the plaintext data on the disk, it may still be
                   1526: possible for a resourceful and determined attacker to recover the
                   1527: data.  Faint magnetic traces of the original data remain on the disk
                   1528: after it has been overwritten.  Special sophisticated disk recovery
                   1529: hardware can sometimes be used to recover the data.
                   1530: 
                   1531: 
                   1532: Viruses and Trojan Horses
                   1533: -------------------------
                   1534: 
                   1535: Another attack could involve a specially-tailored hostile computer
                   1536: virus or worm that might infect PGP or your operating system.  This
                   1537: hypothetical virus could be designed to capture your pass phrase or
                   1538: secret key or deciphered messages, and covertly write the captured
                   1539: information to a file or send it through a network to the virus's
                   1540: owner.  Or it might alter PGP's behavior so that signatures are not
                   1541: properly checked.  This attack is cheaper than cryptanalytic attacks.
                   1542: 
                   1543: Defending against this falls under the category of defending against
                   1544: viral infection generally.  There are some moderately capable
                   1545: anti-viral products commercially available, and there are hygienic
                   1546: procedures to follow that can greatly reduce the chances of viral
                   1547: infection.  A complete treatment of anti-viral and anti-worm
                   1548: countermeasures is beyond the scope of this document.  PGP has no
                   1549: defenses against viruses, and assumes your own personal computer is a
                   1550: trustworthy execution environment.  If such a virus or worm actually
                   1551: appeared, hopefully word would soon get around warning everyone.  
                   1552: 
                   1553: Another similar attack involves someone creating a clever imitation
                   1554: of PGP that behaves like PGP in most respects, but doesn't work the
                   1555: way it's supposed to.  For example, it might be deliberately crippled
                   1556: to not check signatures properly, allowing bogus key certificates to
                   1557: be accepted.  This "Trojan horse" version of PGP is not hard for an
                   1558: attacker to create, because PGP source code is widely available, so
                   1559: anyone could modify the source code and produce a lobotomized zombie
                   1560: imitation PGP that looks real but does the bidding of its diabolical
                   1561: master.  This Trojan horse version of PGP could then be widely
                   1562: circulated, claiming to be from me.  How insidious.
                   1563: 
                   1564: You should make an effort to get your copy of PGP from a reliable
                   1565: source, whatever that means.  Or perhaps from more than one
                   1566: independent source, and compare them with a file comparison utility.
                   1567: 
                   1568: There are other ways to check PGP for tampering, using digital
                   1569: signatures.  If someone you trust signs the executable version of
                   1570: PGP, vouching for the fact that it has not been infected or tampered
                   1571: with, you can be reasonably sure that you have a good copy.  You
                   1572: could use an earlier trusted version of PGP to check the signature on
                   1573: a later suspect version of PGP.  But this will not help at all if
                   1574: your operating system is infected, nor will it detect if your
                   1575: original copy of PGP.EXE has been maliciously altered in such a way
                   1576: as to compromise its own ability to check signatures.  This test also
                   1577: assumes that you have a good trusted copy of the public key that you
                   1578: use to check the signature on the PGP executable.
                   1579: 
                   1580: 
                   1581: Physical Security Breach
                   1582: ------------------------
                   1583: 
                   1584: A physical security breach may allow someone to physically acquire
                   1585: your plaintext files or printed messages.  A determined opponent
                   1586: might accomplish this through burglary, trash-picking, unreasonable
                   1587: search and seizure, or bribery, blackmail or infiltration of your
                   1588: staff.  Some of these attacks may be especially feasible against
                   1589: grassroots political organizations that depend on a largely volunteer
                   1590: staff.  It has been widely reported in the press that the FBI's
                   1591: COINTELPRO program used burglary, infiltration, and illegal bugging
                   1592: against antiwar and civil rights groups.  And look what happened at
                   1593: the Watergate Hotel.  
                   1594: 
                   1595: Don't be lulled into a false sense of security just because you have
                   1596: a cryptographic tool.  Cryptographic techniques protect data only
                   1597: while it's encrypted-- direct physical security violations can still
                   1598: compromise plaintext data or written or spoken information.  
                   1599: 
                   1600: This kind of attack is cheaper than cryptanalytic attacks on PGP.
                   1601: 
                   1602: 
                   1603: Tempest Attacks
                   1604: ---------------
                   1605: 
                   1606: Another kind of attack that has been used by well-equipped opponents
                   1607: involves the remote detection of the electromagnetic signals from
                   1608: your computer.  This expensive and somewhat labor-intensive attack is
                   1609: probably still cheaper than direct cryptanalytic attacks.  An
                   1610: appropriately instrumented van can park near your office and remotely
                   1611: pick up all of your keystrokes and messages displayed on your
                   1612: computer video screen.  This would compromise all of your passwords,
                   1613: messages, etc.  This attack can be thwarted by properly shielding all
                   1614: of your computer equipment and network cabling so that it does not
                   1615: emit these signals.  This shielding technology is known as "Tempest",
                   1616: and is used by some Government agencies and defense contractors.  
                   1617: There are hardware vendors who supply Tempest shielding commercially,
                   1618: although it may be subject to some kind of Government licensing.  Now
                   1619: why do you suppose the Government would restrict access to Tempest
                   1620: shielding?
                   1621: 
                   1622: 
                   1623: Exposure on Multi-user Systems
                   1624: ------------------------------
                   1625: 
                   1626: PGP was originally designed for a single-user MSDOS machine under
                   1627: your direct physical control.  I run PGP at home on my own PC, and
                   1628: unless someone breaks into my house or monitors my electromagnetic
                   1629: emissions, they probably can't see my plaintext files or secret keys. 
                   1630: 
                   1631: But now PGP also runs on multi-user systems such as Unix and VAX/VMS.
                   1632: On multi-user systems, there are much greater risks of your plaintext
                   1633: or keys or passwords being exposed.  The Unix system administrator or
                   1634: a clever intruder can read your plaintext files, or perhaps even use
                   1635: special software to covertly monitor your keystrokes or read what's
                   1636: on your screen.  On a Unix system, any other user can read your
                   1637: environment information remotely by simply using the Unix "ps"
                   1638: command.  Similar problems exist for MSDOS machines connected on a
                   1639: local area network.  The actual security risk is dependent on your
                   1640: particular situation.  Some multi-user systems may be safe because
                   1641: all the users are trusted, or because they have system security
                   1642: measures that are safe enough to withstand the attacks available to
                   1643: the intruders, or because there just aren't any sufficiently
                   1644: interested intruders.  Some Unix systems are safe because they are
                   1645: only used by one user-- there are even some notebook computers
                   1646: running Unix.  It would be unreasonable to simply exclude PGP from
                   1647: running on all Unix systems.
                   1648: 
                   1649: PGP is not designed to protect your data while it is in plaintext
                   1650: form on a compromised system.  Nor can it prevent an intruder from
                   1651: using sophisticated measures to read your secret key while it is
                   1652: being used.  You will just have to recognize these risks on
                   1653: multi-user systems, and adjust your expectations and behavior
                   1654: accordingly.  Perhaps your situation is such that you should consider
                   1655: only running PGP on an isolated single-user system under your direct
                   1656: physical control.  That's what I do, and that's what I recommend.
                   1657: 
                   1658: 
                   1659: Traffic Analysis
                   1660: ----------------
                   1661: 
                   1662: Even if the attacker cannot read the contents of your encrypted
                   1663: messages, he may be able to infer at least some useful information by
                   1664: observing where the messages come from and where they are going, the
                   1665: size of the messages, and the time of day the messages are sent. 
                   1666: This is analogous to the attacker looking at your long distance phone
                   1667: bill to see who you called and when and for how long, even though the
                   1668: actual content of your calls is unknown to the attacker.  This is
                   1669: called traffic analysis.  PGP alone does not protect against traffic
                   1670: analysis.  Solving this problem would require specialized 
                   1671: communication protocols designed to reduce exposure to traffic
                   1672: analysis in your communication environment, possibly with some
                   1673: cryptographic assistance.
                   1674: 
                   1675: 
                   1676: Cryptanalysis
                   1677: -------------
                   1678: 
                   1679: An expensive and formidable cryptanalytic attack could possibly be
                   1680: mounted by someone with vast supercomputer resources, such as a
                   1681: Government intelligence agency.  They might crack your RSA key by
                   1682: using some new secret factoring breakthrough.  Perhaps so, but it is
                   1683: noteworthy that the US Government trusts the RSA algorithm enough in
                   1684: some cases to use it to protect its own nuclear weapons, according to
                   1685: Ron Rivest.  And civilian academia has been intensively attacking it
                   1686: without success since 1978. 
                   1687: 
                   1688: Perhaps the Government has some classified methods of cracking the
                   1689: IDEA(tm) conventional encryption algorithm used in PGP.  This is
                   1690: every cryptographer's worst nightmare.  There can be no absolute
                   1691: security guarantees in practical cryptographic implementations.  
                   1692: 
                   1693: Still, some optimism seems justified.  The IDEA algorithm's designers
                   1694: are among the best cryptographers in Europe.  It has had extensive
                   1695: security analysis and peer review from some of the best cryptanalysts
                   1696: in the unclassified world.  It appears to have some design advantages
                   1697: over the DES in withstanding differential cryptanalysis, which has
                   1698: been used to crack the DES.  
                   1699: 
                   1700: Besides, even if this algorithm has some subtle unknown weaknesses,
                   1701: PGP compresses the plaintext before encryption, which should greatly
                   1702: reduce those weaknesses.  The computational workload to crack it is
                   1703: likely to be much more expensive than the value of the message.
                   1704: 
                   1705: If your situation justifies worrying about very formidable attacks of
                   1706: this caliber, then perhaps you should contact a data security
                   1707: consultant for some customized data security approaches tailored to
                   1708: your special needs.  Boulder Software Engineering, whose address and
                   1709: phone are given at the end of this document, can provide such
                   1710: services.
                   1711: 
                   1712: 
                   1713: In summary, without good cryptographic protection of your data
                   1714: communications, it may have been practically effortless and perhaps
                   1715: even routine for an opponent to intercept your messages, especially
                   1716: those sent through a modem or E-mail system.  If you use PGP and
                   1717: follow reasonable precautions, the attacker will have to expend far
                   1718: more effort and expense to violate your privacy. 
                   1719: 
                   1720: If you protect yourself against the simplest attacks, and you feel
                   1721: confident that your privacy is not going to be violated by a
                   1722: determined and highly resourceful attacker, then you'll probably be
                   1723: safe using PGP.  PGP gives you Pretty Good Privacy.
                   1724: 
                   1725: 
                   1726: Legal Issues
                   1727: ============
                   1728: 
                   1729: 
                   1730: Trademarks, Copyrights, and Warranties
                   1731: --------------------------------------
                   1732: 
                   1733: "Pretty Good Privacy", "Phil's Pretty Good Software", and the "Pretty
                   1734: Good" label for computer software and hardware products are all
                   1735: trademarks of Philip Zimmermann and Phil's Pretty Good Software.  PGP
                   1736: is (c) Copyright Philip R. Zimmermann, 1990-1993.  Philip Zimmermann
                   1737: also holds the copyright for the PGP User's Manual, as well as any
                   1738: foreign language translations of the manual or the software.
                   1739: 
                   1740: The author assumes no liability for damages resulting from the use of
                   1741: this software, even if the damage results from defects in this
                   1742: software, and makes no representations concerning the merchantability
                   1743: of this software or its suitability for any specific purpose.  It is
                   1744: provided "as is" without express or implied warranty of any kind.
                   1745: 
                   1746: 
                   1747: Patent Rights on the Algorithms
                   1748: -------------------------------
                   1749: 
1.1.1.2 ! root     1750: The RSA public key cryptosystem was developed at MIT, which holds a
        !          1751: patent on it (U.S. patent #4,405,829, issued 20 Sep 1983).  A company
        !          1752: in California called Public Key Partners (PKP) holds the exclusive
        !          1753: commercial license to sell and sub-license the RSA public key
        !          1754: cryptosystem.  
        !          1755: 
        !          1756: PKP has not granted a patent license for anyone to use their RSA
        !          1757: algorithm in PGP.  The author of this software implementation of the
        !          1758: RSA algorithm is providing this implementation for educational use
        !          1759: only.  Licensing this algorithm from PKP is the responsibility of
        !          1760: you, the user, not the author.  The author assumes no liability for
        !          1761: any patent infringement that may result from executing the RSA
        !          1762: algorithm on the user's computer without a license from the RSA
        !          1763: patent holder.
        !          1764: 
        !          1765: Non-US users should note that the RSA patent does not apply outside
        !          1766: the US, and there is no RSA patent in any other country.  Federal
        !          1767: agencies may use it because the Government paid for the development
        !          1768: of RSA with grants from the National Science Foundation and the
        !          1769: Navy.  And companies that have already licensed the patent from PKP
        !          1770: may be able to use PGP, depending on the terms of their license. 
        !          1771: 
        !          1772: I wrote my PGP software from scratch, with my own independently
        !          1773: developed implementation of the RSA algorithm.  Before publishing
        !          1774: PGP, I got a formal written legal opinion from a patent attorney with
        !          1775: extensive experience in software patents.  I'm convinced that
        !          1776: publishing PGP the way I did does not violate patent law.
1.1       root     1777: 
                   1778: Not only did PKP acquire the exclusive patent rights for the RSA
1.1.1.2 ! root     1779: cryptosystem, but they also acquired the exclusive rights to three
        !          1780: other patents covering other public key schemes invented by others at
        !          1781: Stanford University, also developed with Federal funding.  This
        !          1782: essentially gives one company a legal lock in the USA on nearly all
        !          1783: practical public key cryptosystems.  They even appear to be claiming
        !          1784: patent rights on the very concept of public key cryptography,
        !          1785: regardless of what clever new original algorithms are independently
        !          1786: invented by others.  I find such a comprehensive monopoly troubling,
        !          1787: because I think public key cryptography is destined to become a
        !          1788: crucial technology in the protection of our civil liberties and
        !          1789: privacy in our increasingly connected society.  At the very least,
        !          1790: it places these vital tools at risk by affording to the Government
        !          1791: a single pressure point of influence.
        !          1792: 
        !          1793: There are negotiations under way with RSA Data Security Inc (RSADSI),
        !          1794: a sister company to PKP, to legalize PGP in the US.  This would be
        !          1795: accomplished by integrating RSAREF into PGP.  RSAREF is a subroutine
        !          1796: package from RSADSI that implements the RSA algorithm.  The RSAREF
        !          1797: subroutines would have to be used instead of PGP's original
        !          1798: subroutines to implement the RSA functions in PGP.  There are some
        !          1799: technical obstacles to getting this done, but a solution may be found
        !          1800: if the negotiations with RSADSI proceed favorably.  If RSAREF is
        !          1801: integrated into PGP, it will be licensed by RSADSI for noncommercial
        !          1802: usage in the US.  Foreign versions of PGP will not use RSAREF, but
        !          1803: will continue to use PGP's original faster subroutine library to do
        !          1804: the RSA calculations.  RSADSI may require PGP's name to change in
        !          1805: order to make all this possible.  Stay tuned.
1.1       root     1806: 
                   1807: It appears certain that there will be future releases of PGP,
                   1808: regardless of the outcome of licensing problems with Public Key
                   1809: Partners.  If PKP does not license PGP, then future releases of PGP
1.1.1.2 ! root     1810: will likely not come from me.  There are countless fans of PGP outside
        !          1811: the US, and many of them are software engineers who want to improve
        !          1812: PGP and promote it, regardless of what I do.  The second release of
        !          1813: PGP was a joint effort of an international team of software
        !          1814: engineers, implementing enhancements to the original PGP with design
        !          1815: guidance from me.  It was released by Branko Lankester in The
        !          1816: Netherlands and Peter Gutmann in New Zealand, out of reach of US
        !          1817: patent law. Although released only in Europe and New Zealand, it
        !          1818: spontaneously spread to the USA without help from me or the PGP
        !          1819: development team.
1.1       root     1820: 
                   1821: The IDEA(tm) conventional block cipher used by PGP is covered by a
                   1822: patent in Europe, held by ETH and a Swiss company called Ascom-Tech
                   1823: AG.  The patent number is PCT/CH91/00117.  International patents are
                   1824: pending.  IDEA(tm) is a trademark of Ascom-Tech AG.  There is no
                   1825: license fee required for noncommercial use of IDEA.  Ascom Tech AG
                   1826: has granted permission for PGP to use the IDEA cipher, and places no
                   1827: restrictions on using PGP for any purpose, including commercial use. 
                   1828: You may not extract the IDEA cipher from PGP and put it in another
                   1829: commercial product without a license.  Commercial users of IDEA may
                   1830: obtain licensing details from Dieter Profos, Ascom Tech AG, Solothurn
                   1831: Lab, Postfach 151, 4502 Solothurn, Switzerland, Tel +41 65 242885,
                   1832: Fax +41 65 235761.   
                   1833: 
                   1834: The ZIP compression routines in PGP come from freeware source code,
                   1835: with the author's permission.  I'm not aware of any patents on the
1.1.1.2 ! root     1836: compression algorithms used in the ZIP routines, but you're welcome to
        !          1837: check into that question yourself.
1.1       root     1838: 
                   1839: 
                   1840: Licensing and Distribution
                   1841: --------------------------
                   1842: 
                   1843: In the USA PKP controls, through US patent law, the licensing of the
                   1844: RSA algorithm.  But I have no objection to anyone freely using or
                   1845: distributing my PGP software, without payment of fees to me.  You must
                   1846: keep the copyright notices on PGP and keep this documentation with
                   1847: it.  However, if you live in the USA, this may not satisfy any legal
                   1848: obligations you may have to PKP for using the RSA algorithm as
                   1849: mentioned above.  
                   1850: 
                   1851: PGP is not shareware, it's freeware.  Forbidden freeware.  Published
1.1.1.2 ! root     1852: as a community service.  Giving PGP away for free will encourage far
        !          1853: more people to use it, which hopefully will have a greater social
        !          1854: impact.  This could lead to widespread awareness and use of the RSA
        !          1855: public key cryptosystem.
1.1       root     1856: 
                   1857: All the source code for PGP is available for free under the "Copyleft" 
                   1858: General Public License from the Free Software Foundation (FSF).  A
                   1859: copy of the FSF General Public License is included in the source
                   1860: release package of PGP.
                   1861: 
                   1862: Regardless of and perhaps contrary to some provisions of the FSF
                   1863: General Public License, the following terms apply:
                   1864: 
                   1865: 1)  Written discussions of PGP in magazines or books may include
                   1866:     fragments of PGP source code and documentation, without 
                   1867:     restrictions.
                   1868: 
                   1869: 2)  Although the FSF General Public License allows non-proprietary
                   1870:     derivative products, it prohibits proprietary derivative products. 
1.1.1.2 ! root     1871:     Despite this, I may grant you a special license if you want to derive
        !          1872:     a proprietary commercial product from some of PGP's parts.  There may
        !          1873:     or may not be a fee, depending on the circumstances.  Retaining my
        !          1874:     copyright notice and attribution might suffice in some cases.  Give
        !          1875:     me a call and we'll discuss it.  I'm real easy to please.  Any such
        !          1876:     license would not free you of any patent licensing requirements.  
1.1       root     1877: 
                   1878: Feel free to disseminate the complete PGP release package as widely
                   1879: as possible.  Give it to all your friends.  If you have access to any
                   1880: electronic Bulletin Boards Systems, please upload the complete PGP
                   1881: executable object release package to as many BBS's as possible.  You
                   1882: may disseminate the PGP source release package too, if you've got
1.1.1.2 ! root     1883: it.  The PGP version 2.3 executable object release package for MSDOS
1.1       root     1884: contains the PGP executable software, documentation, sample key rings
                   1885: including my own public key, and signatures for the software and this
1.1.1.2 ! root     1886: manual, all in one PKZIP compressed file called pgp22.zip.  The PGP
1.1       root     1887: source release package for MSDOS contains all the C source files in
1.1.1.2 ! root     1888: one PKZIP compressed file called pgp22src.zip.  The filename for the
        !          1889: release package is derived from the version number of the release.
1.1       root     1890: 
                   1891: You may obtain free copies or updates to PGP from thousands of BBS's
                   1892: worldwide or from other public sources such as Internet FTP sites. 
                   1893: Don't ask me for a copy directly from me, since I'd rather avoid
                   1894: further legal problems with PKP at this time.  I might be able to
                   1895: tell you where you can get it, however.  
                   1896: 
                   1897: After all this work I have to admit I wouldn't mind getting some fan
                   1898: mail for PGP, to gauge its popularity.  Let me know what you think
                   1899: about it and how many of your friends use it.  Bug reports and
                   1900: suggestions for enhancing PGP are welcome, too.  Perhaps a future PGP
                   1901: release will reflect your suggestions.  
                   1902: 
                   1903: This project has not been funded and the project has nearly eaten me
                   1904: alive.  This means you can't count on a reply to your mail, unless
                   1905: you only need a short written reply and you include a stamped
                   1906: self-addressed envelope.  But I do reply to E-mail.  Please keep it in
                   1907: English, as my foreign language skills are weak.  If you call and I'm
                   1908: not in, it's best to just try again later.  I usually don't return
                   1909: long distance phone calls, unless you leave a message that I can call
                   1910: you collect.  If you need any significant amount of my time, I am
                   1911: available on a paid consulting basis, and I do return those calls.
                   1912: 
                   1913: The most inconvenient mail I get is for some well-intentioned person
1.1.1.2 ! root     1914: to send me a few dollars asking me for a copy of PGP.  I don't send 
        !          1915: it to them because I'd rather avoid any legal problems with PKP.  Or
        !          1916: worse, sometimes these requests are from foreign countries, and I
        !          1917: would be risking a violation of US cryptographic export control
        !          1918: laws.  Even if there were no legal hassles involved in sending PGP to
        !          1919: them, they usually don't send enough money to make it worth my time.
        !          1920: I'm just not set up as a low cost low volume mail order business.  I
        !          1921: can't just ignore the request and keep the money, because they
        !          1922: probably regard the money as a fee for me to fulfill their request.
        !          1923: If I return the money, I might have to get in my car and drive down
        !          1924: to the post office and buy some postage stamps, because these
        !          1925: requests rarely include a stamped self-addressed envelope.  And I
        !          1926: have to take the time to write a polite reply that I can't do it.  If
        !          1927: I postpone the reply and set the letter down on my desk, it might be
        !          1928: buried within minutes and won't see the light of day again for
        !          1929: months.  Multiply these minor inconveniences by the number of
        !          1930: requests I get, and you can see the problem.  Isn't it enough that
        !          1931: the software is free?  It would be nicer if people could try to get
        !          1932: PGP from any of the myriad other sources.  If you don't have a modem,
        !          1933: ask a friend to get it for you.  If you can't find it yourself, I
        !          1934: don't mind answering a quick phone call. 
1.1       root     1935: 
                   1936: If anyone wants to volunteer to improve PGP, please let me know.  It
                   1937: could certainly use some more work.  Some features were deferred to
                   1938: get it out the door.  A number of PGP users have since donated their
                   1939: time to port PGP to Unix on Sun SPARCstations, to Ultrix, to VAX/VMS,
                   1940: to OS/2, to the Amiga, and to the Atari ST.  Perhaps you can help
                   1941: port it to some new environments.  But please let me know if you plan
                   1942: to port or add enhancements to PGP, to avoid duplication of effort,
                   1943: and to avoid starting with an obsolete version of the source code.  
                   1944: 
                   1945: Because so many foreign language translations of PGP have been
                   1946: produced, most of them are not distributed with the regular PGP
                   1947: release package because it would require too much disk space. 
                   1948: Separate language translation "kits" are available from a number of
                   1949: independent sources, and are sometimes available separately from the
                   1950: same distribution centers that carry the regular PGP release
                   1951: software.  These kits include translated versions of the file 
                   1952: LANGUAGE.TXT, PGP.HLP, and the PGP User's Guide.  If you want to
                   1953: produce a translation for your own native language, contact me first
                   1954: to get the latest information and standard guidelines, and to find
                   1955: out if it's been translated to your language already.  Colin Plumb
                   1956: ([email protected]) maintains a comprehensive collection of foreign
                   1957: language kits from other translators. 
                   1958: 
                   1959: Future versions of PGP may have to change the data formats for
                   1960: messages, signatures, keys and key rings, in order to provide
                   1961: important new features.  This may cause backward compatibility
                   1962: problems with this version of PGP.  Future releases may provide
                   1963: conversion utilities to convert old keys, but you may have to dispose
                   1964: of old messages created with the old PGP.
                   1965: 
                   1966: If you have access to the Internet, watch for announcements of new
                   1967: releases of PGP on the Internet newsgroups "sci.crypt" and PGP's own
                   1968: newsgroup, "alt.security.pgp".  There is also an interest group
                   1969: mailing list called info-pgp, which is intended for users without
                   1970: access to the "alt.security.pgp" newsgroup.  Info-pgp is moderated by
                   1971: Hugh Miller, and you may subscribe to it by writing him a letter at 
                   1972: [email protected].  Include your name and Internet
                   1973: address.  If you want to know where to get PGP, Hugh can send you a
                   1974: list of Internet FTP sites and BBS phone numbers.  Hugh may also be
                   1975: reached at [email protected]. 
                   1976: 
                   1977: 
                   1978: 
                   1979: Export Controls
                   1980: ---------------
                   1981: 
                   1982: The Government has made it illegal in many cases to export good
                   1983: cryptographic technology, and that may include PGP.  They regard this
                   1984: kind of software as munitions.  This is determined by volatile State
                   1985: Department policies, not fixed laws.  I will not export this software
                   1986: out of the US or Canada in cases when it is illegal to do so under US
                   1987: State Department policies, and I assume no responsibility for other
                   1988: people exporting it on their own.
                   1989: 
                   1990: If you live outside the US or Canada, I advise you not to violate US
                   1991: State Department policies by getting PGP from a US source.  Since
                   1992: thousands of domestic users got it after its initial publication, it
                   1993: somehow leaked out of the US and spread itself widely abroad, like
                   1994: dandelion seeds blowing in the wind.  If PGP has already found its
                   1995: way into your country, then I don't think you're violating US export
                   1996: law if you pick it up from a source outside of the US.  
                   1997: 
                   1998: It seems to some legal observers I've talked with, that the framers of
                   1999: the US export controls never envisioned that they would ever apply to
                   2000: cryptographic freeware that has been published and scattered to the
                   2001: winds.  It's hard to imagine a US attorney trying to build a real
                   2002: case against someone for the "export" of software published freely in
                   2003: the US.  As far as anyone I've talked to knows, it's never been done,
                   2004: despite numerous examples of export violations.  I'm not a lawyer and
                   2005: I'm not giving you legal advice-- I'm just trying to point out what
                   2006: seems like common sense.
                   2007: 
                   2008: Starting with PGP version 2.0, the release point of the software has
                   2009: been outside the US, on publicly-accessible computers in Europe.
                   2010: Each release is electronically sent back into the US and posted on
                   2011: publicly-accessible computers in the US by PGP privacy activists in
                   2012: foreign countries.  There are some restrictions in the US regarding
                   2013: the import of munitions, but I'm not aware of any cases where this
                   2014: was ever enforced for importing cryptographic software into the US. 
                   2015: I imagine that a legal action of that type would be quite a spectacle
                   2016: of controversy.
                   2017: 
                   2018: Some foreign governments impose serious penalties on anyone inside
                   2019: their country for merely using encrypted communications.  In some
                   2020: countries they might even shoot you for that.  But if you live in
                   2021: that kind of country, perhaps you need PGP even more.
                   2022: 
                   2023: 
                   2024: 
                   2025: Computer-Related Political Groups
                   2026: =================================
                   2027: 
                   2028: PGP is a very political piece of software.  It seems appropriate to
                   2029: mention here some computer-related activist groups.  Full details on
                   2030: these groups, and how to join them, is provided in a separate
                   2031: document file in the PGP release package.
                   2032: 
                   2033: The Electronic Frontier Foundation (EFF) was founded in July, 1990,
                   2034: to assure freedom of expression in digital media, with a particular
1.1.1.2 ! root     2035: emphasis on applying the principles embodied in the US Constitution
        !          2036: and the Bill of Rights to computer-based communication.  They can be
        !          2037: reached in Washington DC, at (202) 347-5400.  Internet E-mail address: 
        !          2038: [email protected].
1.1       root     2039: 
                   2040: Computer Professionals For Social Responsibility (CPSR) empowers
                   2041: computer professionals and computer users to advocate for the
                   2042: responsible use of information technology and empowers all who use
                   2043: computer technology to participate in public policy debates on the
                   2044: impacts of computers on society.  They can be reached at:
                   2045: 415-322-3778 in Palo Alto, E-mail address [email protected].
                   2046: 
1.1.1.2 ! root     2047: The League for Programming Freedom (LPF) is a grass-roots organization
        !          2048: of professors, students, businessmen, programmers and users dedicated
        !          2049: to bringing back the freedom to write programs.  They regard patents
        !          2050: on computer algorithms as harmful to the US software industry.  They
        !          2051: can be reached at (617) 433-7071.  E-mail address: [email protected].
        !          2052: 
1.1       root     2053: For more details on these groups, see the accompanying document in
                   2054: the PGP release package.
                   2055: 
                   2056: 
                   2057: Recommended Introductory Readings
                   2058: =================================
                   2059: 
                   2060: 1)  Dorothy Denning, "Cryptography and Data Security", Addison-Wesley,
                   2061:     Reading, MA 1982
                   2062: 2)  Dorothy Denning, "Protecting Public Keys and Signature Keys",
                   2063:     IEEE Computer, Feb 1983
                   2064: 3)  Martin E. Hellman, "The Mathematics of Public-Key Cryptography," 
                   2065:     Scientific American, Aug 1979
1.1.1.2 ! root     2066: 4)  Steven Levy, "Crypto Rebels", WIRED, May/Jun 1993, page 54.
        !          2067:     (This is a "must-read" article on PGP and other related topics.)
1.1       root     2068: 
                   2069: Other Readings
                   2070: ==============
                   2071: 
1.1.1.2 ! root     2072: 5)  Ronald Rivest, "The MD5 Message Digest Algorithm", MIT Laboratory
1.1       root     2073:     for Computer Science, 1991
1.1.1.2 ! root     2074: 6)  Xuejia Lai, "On the Design and Security of Block Ciphers", 
1.1       root     2075:     Institute for Signal and Information Processing, ETH-Zentrum, 
                   2076:     Zurich, Switzerland, 1992
1.1.1.2 ! root     2077: 7)  Xuejia Lai, James L. Massey, Sean Murphy, "Markov Ciphers and 
1.1       root     2078:     Differential Cryptanalysis", Advances in Cryptology- EUROCRYPT'91
1.1.1.2 ! root     2079: 8)  Philip Zimmermann, "A Proposed Standard Format for RSA 
1.1       root     2080:     Cryptosystems", Advances in Computer Security, Vol III, edited by
                   2081:     Rein Turn, Artech House, 1988
1.1.1.2 ! root     2082: 9)  Bruce Schneier, "Applied Cryptography: Protocols, Algorithms, and
        !          2083:     Source Code in C", John Wiley & Sons, 1993 (coming in November)
        !          2084: 10) Paul Wallich, "Electronic Envelopes", Scientific American, Feb
        !          2085:     1993, page 30.  (This is an article on PGP)
1.1       root     2086: 
                   2087: 
                   2088: To Contact the Author
                   2089: =====================
                   2090: 
                   2091: Philip Zimmermann may be reached at:
                   2092: 
                   2093: Boulder Software Engineering
                   2094: 3021 Eleventh Street
                   2095: Boulder, Colorado 80304  USA
                   2096: Phone 303-541-0140 (voice or FAX)  (10:00am - 7:00pm Mountain Time)
1.1.1.2 ! root     2097: Internet:  [email protected]
1.1       root     2098: 
                   2099: 
                   2100: 
                   2101: Appendix A:  Where to Get PGP
                   2102: =============================
                   2103: 
                   2104: The following describes how to get the freeware public key
                   2105: cryptographic software PGP (Pretty Good Privacy) from an anonymous
                   2106: FTP site on Internet, or from other sources.  
                   2107: 
                   2108: PGP has sophisticated key management, an RSA/conventional hybrid 
                   2109: encryption scheme, message digests for digital signatures, data
                   2110: compression before encryption, and good ergonomic design.  PGP is
                   2111: well featured and fast, and has excellent user documentation.  Source
                   2112: code is free.
                   2113: 
                   2114: PGP uses the RSA cryptosystem which is claimed by a US patent held by
                   2115: a company called Public Key Partners.  PGP users outside the US take
                   2116: note that there is no RSA patent outside the US.  Also, bear in mind
                   2117: that there are US and Canadian export laws prohibiting anyone inside
                   2118: the US and Canada from exporting cryptographic software like this. 
                   2119: If you live outside the US, you're probably not violating US export
1.1.1.2 ! root     2120: law if you pick it up from a source outside of the US.  Note that due
        !          2121: to negotiations with the RSA patent holders, the name of PGP may
        !          2122: change in a future release.
1.1       root     2123: 
                   2124: What follows is a small sample of places that allegedly have PGP, as
1.1.1.2 ! root     2125: of June 1993.  This information is not guaranteed to be correct.
1.1       root     2126: Some US sites have occasionally withdrawn PGP because of fear of
                   2127: legal intimidation from the RSA patent holders.
                   2128: 
1.1.1.2 ! root     2129: There are two compressed archive files in the standard release, with
        !          2130: the file name derived from the release version number.  For PGP
        !          2131: version 2.3, you must get pgp23.zip which contains the MSDOS binary
        !          2132: executable and the PGP User's Guide, and you can optionally get
        !          2133: pgp23src.zip which contains all the source code.  These files can be
        !          2134: decompressed with the MSDOS shareware archive decompression utility
        !          2135: PKUNZIP.EXE, version 1.10 or later.  For Unix users who lack an
        !          2136: implementation of UNZIP, the source code can also be found in the
        !          2137: compressed tar file pgp23src.tar.Z.
1.1       root     2138: 
                   2139: A reminder:  Set mode to binary or image when doing an FTP transfer.
                   2140: And when doing a kermit download to your PC, specify 8-bit binary
                   2141: mode at both ends.  Here are some Internet sites that have PGP via
                   2142: anonymous FTP:
                   2143:     
                   2144: Finland:    nic.funet.fi  (128.214.6.100)
                   2145:             Directory: /pub/unix/security/crypt/
                   2146: 
                   2147: Italy:      ghost.dsi.unimi.it  (149.132.2.1)
                   2148:             Directory: /pub/security/
                   2149: 
                   2150: UK:         src.doc.ic.ac.uk
                   2151:             Directory: /computing/security/software/PGP
                   2152: 
                   2153: For those lacking FTP connectivity to the net, nic.funet.fi also
1.1.1.2 ! root     2154: offers the files via email.  To get version 2.3, send the following
        !          2155: mail message to [email protected]:
1.1       root     2156: 
                   2157:     ENCODER uuencode
1.1.1.2 ! root     2158:     SEND pub/unix/security/crypt/pgp23src.zip
        !          2159:     SEND pub/unix/security/crypt/pgp23.zip
1.1       root     2160: 
                   2161: This will deposit the two zipfiles, as (about) 15 batched messages in
                   2162: your mailbox within about 24 hours.  Save and uudecode.
                   2163: 
                   2164: In the US, PGP may be found on God knows how many BBS systems, far
                   2165: too many to list here.  Still, if you don't have any local BBS phone
                   2166: numbers handy, here are some BBS's you might try.
                   2167: 
                   2168: The GRAPEVINE BBS in Little Rock Arkansas has set up a special
                   2169: account for people to download PGP for free.  The SYSOP is Jim Wenzel,
                   2170: at [email protected].  The following phone numbers are
                   2171: applicable and should be dialed in the order presented (i.e., the
                   2172: first one is the highest speed line):  (501) 753-6859, (501)
                   2173: 753-8121, (501) 791-0124.  When asked to login use the following
                   2174: information:
                   2175: 
                   2176:     name: PGP USER        ('PGP' is 1st name, 'USER' is 2nd name)
                   2177:     password: PGP
                   2178: 
                   2179: PGP is also widely available on Fidonet, a large informal network of
                   2180: PC-based bulletin board systems interconnected via modems.  Check
                   2181: your local bulletin board systems.  It is available on many foreign
                   2182: and domestic Fidonet BBS sites.
                   2183: 
                   2184: In New Zealand, try this (supposedly free) dial-up BBS system:
                   2185:    Kappa Crucis:  +64 9 817-3714, -3725, -3324, -8424, -3094, -3393
                   2186: 
1.1.1.2 ! root     2187: Source and binary distributions of PGP are available from the Canadian
        !          2188: Broadcasting Corporation library, which is open to the public.  It has
        !          2189: branches in Toronto, Montreal, and Vancouver.  Contact Max Allen, at
        !          2190: +1 416 205-6017 if you have questions.
        !          2191: 
1.1       root     2192: For information on PGP implementations on the Apple Macintosh,
                   2193: Commodore Amiga, or Atari ST, or any other questions about where to
                   2194: get PGP for any other platform, contact Hugh Miller at
                   2195: [email protected].
                   2196: 
                   2197: Here are a few people and their email addresses or phone numbers you
                   2198: can contact in some countries to get information on local PGP 
                   2199: availability:
                   2200: 
                   2201: Peter Gutmann                 Hugh Kennedy
                   2202: [email protected]         [email protected]
                   2203: New Zealand                   Germany
                   2204: 
                   2205: Branko Lankester              Miguel Angel Gallardo
                   2206: [email protected]           [email protected]
                   2207: +31 2159 42242                (341) 474 38 09
                   2208: The Netherlands               Spain
                   2209: 
                   2210: Hugh Miller                   Colin Plumb
                   2211: [email protected]     [email protected]
                   2212: (312) 508-2727                Toronto, Ontario, Canada
                   2213: USA
                   2214: 
                   2215: Jean-loup Gailly
                   2216: [email protected]
                   2217: France
                   2218: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.