Annotation of pgp/pgpdoc2.txt, revision 1.1.1.2

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

unix.superglobalmegacorp.com

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