-----BEGIN PGP SIGNED MESSAGE----- Pretty Good Privacy version 2.6.i - READ ME FIRST Notes by Stale Schumacher 1994/09/29 You are looking at the README file for PGP release 2.6.i. PGP, short for Pretty Good Privacy, is a public key encryption package; with it, you can secure messages you transmit against unauthorized reading and digitally sign them so that people receiving them can be sure they come from you. ABOUT THIS VERSION PGP 2.6.i is not an official PGP version. It is based on the source code for MIT PGP 2.6.1 (the latest official version of PGP) and has been modified for international use. However, it is still possible to compile a version of PGP that is byte-identical to MIT PGP 2.6.1 (using the USA_ONLY option, see below). This file only explains what is special to version 2.6.i. For a more thorough installation and usage guide, refer to the file setup.doc and the documentation for PGP 2.6.1, which is included unmodified in the doc/ subdirectory that is created when you unpack the distribution archive. BACKGROUND Until a few months ago, there were only two "real" PGP versions around: PGP 2.3a which was the international freeware version, and 2.4 which was a commercial version sold in USA by a company called ViaCrypt. However, this situation changed dramatically in May 1994 when MIT released a special US freeware version of PGP (2.5), in order to put an end to the legal problems surrounding PGP. (PGP 2.3a was believed to be illegal in USA because of patent restrictions.) The new version had a number of limitations to encourage Americans that were using 2.3a illegally to upgrade to the legal version. However, these limitations resulted in a well of new PGP versions, more or less professionally put together by well-intending individuals who wanted a more flexible PGP than that offered by MIT. Suddenly, we had ten different PGP versions, not two. Even though PGP 2.5 and later releases from MIT introduced many bug-fixes and improvements over 2.3a, many non-US users of PGP have been reluctant to upgrade to the new versions because they feel that the PGP developers have abandoned the international PGP community by adding a number of restrictions that are only necessary within the USA. That is why I decided to make PGP 2.6.i: to put an end to all the PGP "hack versions" that flourish, and by giving the non-US users of PGP a version that is more "digestible" than those offered by MIT, and at the same time let them benefit from all the improvements that the new versions have introduced over PGP 2.3a. Please note that PGP 2.6.i is a "real" 2.6 version, as it is based on the code tree for PGP 2.6.1 and not 2.3a. PGP 2.6.1 was exported illegally from the USA, but once exported anyone may use it legally and modify it for personal use. That's what I did, although I later decided to make it available for the general public. So here it is: PGP 2.6.i. HOW WAS IT DONE? PGP 2.6.i was put together by taking all the source files from PGP 2.6.1 and the rsaglue.c file from PGP 2.3a, adding a few #ifdef's and modifying a handful of lines - and that's it. In fact, the use of #ifdef's wherever a change has been made allows you to compile a version that is byte-identical to MIT PGP 2.6.1. This is accomplished by adding the -DUSA_ONLY option when building the program. The source archives even includes two sets of makefiles: one for use inside the USA (2.6.1) and one for the rest of the world (2.6.i). DISTRIBUTION PGP 2.6.i is distributed in the following files: - - pgp26i.zip This is the MS-DOS executable release, which includes the executable, support files, and basic documentation. - - pgp26is.zip This is a source code release, which includes all the source code needed to compile PGP and examples of usage. It also contains all the files in pgp26i.zip except the pgp.exe binary. - - pgp26is.tar.gz This contains exactly the same files as pgp26is.zip, except that they use Unix rather than MS-DOS line end conventions. - - pgp26is.tar.Z This is a Unix compress version of pgp26is.tar.gz. If you are within the USA, you should download the file pgp261.zip instead (MS-DOS executable), or use the source code for 2.6.i, but compile it using the makefiles that have the .usa suffix, rather than the ordinary makefiles. These files define the USA_ONLY option, which means that you will get a version that is identical to MIT PGP 2.6.1 and thus legal to use within the USA. You will then also need to compile the files in the rsaref directory. DIFFERENCES BETWEEN PGP 2.6.i AND 2.6.1 If you compile PGP 2.6.i without the USA_ONLY option, or if you are using the precompiled DOS-version of 2.6.i, you should note that your copy of PGP will differ from MIT PGP 2.6.1 in the following ways: (1) It identifies itself as version 2.6.i This is to clearly distinguish it from PGP 2.6.1. This is important because users within the USA are not allowed to use PGP 2.6.i, and also because script files, shells and other PGP add-ons may need to know exactly how your copy of PGP will behave under different circumstances. (Note: an earlier release of this version was called PGP 2.6i. The version number was later changed to 2.6.i to make it clear that it is in fact derived from 2.6.1. The new version number should also be less offensive, considering the fact that there is already a PGP 2.6ui.) (2) The text string "Distributed by MIT. Uses RSAREF." is replaced by "International version - not for use in the USA. Does not use RSAREF." PGP 2.6.i is not approved or distributed by MIT. All questions regarding PGP 2.6.i should be addressed to Stale Schumacher , and not MIT, as they have nothing to do with this release. (3) It uses PRZ's MPILIB instead of RSAREF PGP 2.3a and earlier versions use a special library for all the RSA encryption/decryption routines, called MPILIB, and written by Philip R. Zimmermann (PRZ), the original author of PGP. However, starting with version 2.5, all official releases of PGP have been using the RSAREF library from RSADSI Inc, a US company that holds the patent on the RSA algorithm in the USA. This change was made in order to make PGP legal to use within the USA. Please observe that PGP 2.6.i does NOT use RSAREF, but rather PRZ's original MPILIB library, which is considerably faster and better on most platforms. Because 2.6.i uses MPILIB rather than RSAREF, it is also able to verify key signatures made with PGP 2.2 or earlier versions. This is not true for PGP 2.6 and 2.6.1, because the RSAREF library only understands the new signature format introduced with PGP 2.3a. The use of the MPILIB library is the main reason why PGP 2.6.i is illegal to use within the USA. If you are in the USA, you should compile the source code using the -DUSA_ONLY option or get a copy of the original MIT 2.6.1 release. (4) It circumvents the "legal kludge" PGP 2.6.1 contains a "feature" that will cause it to generate keys and messages that are not readable by PGP 2.3a and earlier versions. This is the "legal kludge", and was introduced to encourage users in the USA to upgrade from PGP 2.3a. PGP 2.6.i does NOT have the "legal kludge". This means that messages and keys generated with PGP 2.6.i can be used and understood by all existing 2.x versions of PGP. However, it is still possible to generate keys and messages in the new format by specifically setting the legal_kludge flag in your config.txt file: legal_kludge = on This option may also be set on the command line: "pgp +le=on ". Note: MIT PGP 2.6.1 also has a legal_kludge option, but this can only be set on the command line, and it contains a bug that requires you to specify more than one parameter for it to work. In PGP 2.6.i, the legal_kludge works the way it was intended, although the default setting is OFF, not ON. (5) It can handle keys as big as 2048 bits Originally, PGP was only intended to be able to use key sizes up to 1024 bits. However, a "bug"/undocumented feature in PGP 2.3a allowed users of this version to generate and use keys up to 1280 bits. With the release of PGP 2.6, a restriction was added so that keys larger than 1024 bits were no longer allowed. This resulted in a number of "hack- versions" that allowed bigger keys, even as big as 4096 bits. PGP 2.6.i allows you to use keys as big as 2048 bits. After 1 December 1994, it will also be able to create keys of this size. The reason for this is that by this time it is likely that most people will have upgraded to a PGP version that can handle such keys. If lots of people started generating 2048-bit keys now, then this might lead to incompatibility problems. It should be said, however, that using keys beyond 1024 bits adds very little extra security, but at the same time takes much longer when decrypting and signing messages. It is a general belief that 1024 bits will still be plenty several decades into the future. Please remember that users of PGP 2.3a and 2.6.1 cannot encrypt messages or verify signatures with keys that are bigger than 1280 bits. (6) It fixes a bug in verifying clearsigned messages When signing a message in clearsign mode, PGP will add a blank line right after the "-----BEGIN PGP SIGNED MESSAGE-----" header. If someone later adds extra lines of text above this blank line, PGP will simply skip them when verifying the signature. This makes it possible for people to add extra text at the beginning of a clearsigned message, and PGP will still give a good signature when verifying it. However, the cleartext produced by PGP will not contain the extra text. This bug is present in all existing PGP versions except 2.6.i. It will probably be fixed in MIT PGP 2.6.2, too. DIFFERENCES BETWEEN PGP 2.6.i and 2.6ui A PGP version that has been very popular among non-US users of PGP is 2.6ui. If you have been using PGP 2.6ui up to now, you should note that PGP 2.6.i differs from this version in the following ways: (1) It is a "real" 2.6 version PGP 2.6.i is based on the source code for PGP 2.6.1, whereas PGP 2.6ui is based on the source code for 2.3a. This means that 2.6.i contains a lot of bug-fixes that are not present in 2.6ui, and it also adds a number of new features that 2.6ui lacks. These include the new PUBRING, SECRING, RANDSEED and COMMENT options in config.txt. (2) It doesn't have the version_byte option PGP 2.6ui has an option to allow you to choose which message format to use when generating keys and messages. This is the version_byte option, and can be set both in the config.txt file and on the command line: version_byte = 2 (use backwards-compatible format) version_byte = 3 (use new 2.6 format) In PGP 2.6.i, the same is accomplished using the legal_kludge flag: legal_kludge = off (use backwards-compatible format) legal_kludge = on (use new 2.6 format) (3) It doesn't have the armor_version option PGP 2.6ui has an option to let you "forge" the version number in the ASCII armored files produced by PGP. In PGP 2.6.i, the armor_version option is NOT supported, as this is a feature that is heavily misused. If you must change the version number of your keys and messages, you can do so in the language.txt file instead. LEGAL STUFF PGP 2.6.i is not approved by MIT or PRZ or NSA or the Pope or anyone else. However, it should be possible to use it legally by anyone in the free world (i.e. all countries except USA, IRAQ and a few others). Most of the code was exported illegally from the USA, but once exported anyone may use it freely. If you are inside the USA, you should compile the source using the -DUSA_ONLY option, which will in fact give you a version that is identical to MIT PGP 2.6.1. HOW TO CONTACT THE AUTHOR All questions regarding PGP 2.6.i should be addressed to Stale Schumacher , not to PRZ, MIT or anyone else, as they have nothing to do with this release. Comments, bug reports and suggestions for future releases are welcome. -----BEGIN PGP SIGNATURE----- Version: 2.6.i iQCVAgUBLqFXFrCfd7bM70R9AQEsCgP/dHmrRzR4PiH9KmKZPgQrkRJsdJoOb8Bg bO3F19pIJ6tysS4/fFXmfzx3zo0BekWD6wtrC8r5SeIP1e6Fe+dxFlPiukAovWlY aBrnHmYEvd3/dwvriqdaeTccP2UMlnI7k5UVgAed2GGzFXyqgKzfR5dokQ4+s+/w qgubL+1+ed0= =BPrq -----END PGP SIGNATURE-----