BLFH A block coding algorithm using 4 different working modes License/Disclaimer ------------------ The program and files in this distribution are freely distributable, but are also copyright (c) Dirk Pauli. They may be freely distributed as long as not more than a nominal fee is charged to cover time and copying costs. No commercial usage is permitted without written permission from the author. Everything in this distribution must be kept together, in original, unmodified form. Although the xpkBLFH.library has been thoroughly tested, no guarantee is given nor implied that this program is fit for any use. The program and the information within this text is provided on an "as is" basis. In no event will I be liable for any direct, indirect, incidental or consequential damages resulting from the use of this program or the information presented within this text. The above is generally known as FREEWARE. System Requirements ------------------- - ANY 680x0 processor - OS 2.04 (V37) or later - no special memory requirements Installation ------------ Just copy the fitting library in the LIBS:compressors directory and rename it to xpkBLFH.library. xpkBLFH.library000 is for plain 68000 systems and xpkBLFH.library020 for systems with an 68020 or better. The speed values given with xquery are only approximations since I haven't access to an A3000. The "020+"-version on an 68040/25 took about 100K/sec for encryption and decryption of an about 1MB large file in RAM: Short Description ----------------- The Blowfish algorithm I used for this library was designed by Bruce Schneier. The same algorithm is also a part of PGPfone. Blowfish is a 64-bit block cipher with a variable key-length. Similar to DES, Blowfish also expands the key to 4168 (!) bit and uses them in 16 rounds of encryption of the plaintext. It consists of a Feistel-net. The security provided is considered as about the same as IDEA with 16 rounds and stronger than FEAL-16 or DES. Up to now no successful attacks are known on Blowfish with 16 rounds (If there are later results I don't know, please contact me). For further information, please read "Bruce Schneier: Applied Cryptography, 2nd. Edition, Addison Wesley". How to contact the author ------------------------- For bug reports, ideas of enhancing, any other comments [or gifts :-)], please write to: snail mail: Dirk Pauli Kurt-Eisner-Str. 20 04275 Leipzig GERMANY email: dpauli@aix520.informatik.uni-leipzig.de email is preferred and will be faster answered. Also visit my homepage for the latest versions of my programs at http://ilabws.informatik.uni-leipzig.de/~dpauli Thanks ------ Many thanks go to - Bruce Schneier for inventing the Blowfish-Algorithm and making it free for usage - Dirk Stöcker for keeping the XPK-idea alive and beta-testing the 68000er Version of the xpkBLFH.library and for giving some hints. History ------- V 1.0 20.12.1996 (not released) first complete version V 1.1 13.01.1997 (first public release) - some speed / size improvements of the library - crypted output shortened (overhead of an ~1MB-file only 300 Bytes) V 1.2 25.01.1997 - speedup of encryption / decryption routines of about 30 % due to inlining a vital function V 1.3 17.04.1997 - fixed a bug, that causes the plain 68000 version to crash (Thanks Dirk Stöcker) - added German docs - minor speed improvements - added some processor-checking stuff in the 68020 version for preventing to crash on a 68000 system - recompiled with a new library-header by Dirk Stöcker V 1.4 24.02.1998 - recompiled with a newer library-header by Dirk Stöcker (this reduces the cpu-check-overhead for the 020- version, making this a bit faster and smaller - added the XPKIF_UP_CHUNK flag that was missing - "fixed" the docs at bit V 1.5 21.03.1998 - fixed a bug in the algorithm which caused the system to be easyly cracked when the password contains characters above from 0x7F (e.g. german umlaute). IN ALL OTHER CASES THERE IS NO DANGER. V 1.5 decodes the old versions too, but codes only in the new, safe way V 1.6 05.04.1998 - removed a bug in the memory management, which in a special case caused a recoverable alert -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- V 2.0 13.08.1998 - the new version supports the additional packing of the data. If one block of a file cannot be packed, all following also will be only encrypted, but not packed. (to gain speed)