=Index of Cryptology Programs =Compiled by Mark Riordan mrr@scss3.cl.msu.edu =Last updated 9 October 1992 Note: I can't seem to keep this document up-to-date, especially for the "docs" subdirectory on ripem.msu.edu. So, I have tried to create new files in the "crypt" tree with long, descriptive filenames. To find the latest on ripem.msu.edu, be sure to do an FTP rather than relying on this document. /mrr 22 Feb 93 Warning: the .zip files here were created with zip 5.0, not with pkzip.exe, and cannot be extracted with pkunzip. Get unzip.exe (also available at this site). cbw.tar.Z Robert W. Baldwin baldwin@xx.lcs.mit.edu Crypt Breaker's Workbench, circa Oct 1986. Program to help you cryptanalyze messages enciphered with the simple, obsolete program crypt(1). Reportedly used to help decipher R. T. Morris's worm (after the fact) from source code found on backup tapes at Cornell. enigma-peake.c Philip Peake (philip@axis.uucp in Paris) C program inspired by the World War II Enigma cipher machine, but the algorithm is not completely identical. hill.zip John Cowan C program to implement Lester Hill's encryption scheme involving matrix arithmetic. I believe the algorithm dates to the 1920's. This code is from comp.sources.unix, Volume 17 (Feb 1989). i-hat-correlation-analysis.zip Douglas A. Gwyn (Theory by many others) C code for various cryptographically useful statistical analysis functions: Kullback's information measure for a 2-way contingency table, Gamma and related functions (Poisson, Chi-squared, etc.), Pearson's Chi-squareed, etc. jones-splay-compression.zip Jeffrey Chilton, Douglas W. Jones Compression/encryption program based on splay trees. C functions. linear-rng.zip William S.England (Theory by Stephen K. Park and Keith W. Miller) High-quality linear congruential random number generator. I doubt it's truly of cryptographic quality, though. In C, with instructions for adding directly into Perl. lucifer-outerbridge.c Richard Outerbridge <71755.204@CompuServe.COM> C implementation of IBM's Lucifer cipher, a predecessor of DES. Speed-optimized version of April 1984, but the algorithm is inherently slow. Includes program which implements CBC. lucifer-smith.c Jonathan M. Smith (original by Arthur Sorkin) C implementation of IBM's Lucifer cipher, a predecessor of DES. Version of March 1991. Includes main program. Pretty slow. md4dos.zip Jouko Holopainen (Theory by Ron Rivest) Fast DOS implementation of the MD4 message digest function. With DOS executable and C and 8086 assembly code. md5.zip Ronald L. Rivest, RSA Data Security rivest@theory.lcs.mit.edu Fast and popular one-way hash function in C taken from RFC 1321. Contains a test program. Version of April 1992. md5-karn.zip Phil Karn Very fast DOS 386 assembler implementation of Ron Rivest's MD5 hash function. Contains the Transform routine only (the time-consuming part). Uses Borland C. Version of February 1992. mrrcip.zip Mark Riordan Implementations of many classical cipher schemes (simple substitution, columnar transpostion, Playfair, "straddling checkerboard", Vigenere, and so on). Of historical interest only. Main programs all, most in C but some in FORTRAN (hey, I wrote 'em a long time ago). nsea.zip Peter C. Gutmann "Nonpatented Simple Encryption Algorithm"--actually fairly complex block cipher similar to DES. C functions and main program, with optional 8086 assembler module. In-depth description of algorithm, invented by author. okeefe_encrypt.tar.Z R. A. O'Keefe, Edinburgh. C code for a fairly simple block transposition cipher based on linear congruential random number generators. rot13.c Unknown This is the well-known "Rot-13" cipher used to obscure offensive Usenet postings. Complete C program (very short). scott-newdes.zip Robert Scott, Mark Riordan (mrr@scss3.cl.msu.edu) C implementation of NEWDES, an unfortunately-named block cipher (doesn't have much to do with DES, but probably has similar security) designed by Robert Scott and described in a 1985 issue of Cryptologia. The algorithm is fast and doesn't take much code. C functions & driver program included. setzer-trans.zip William Setzer "Quick hack" C program that does transposition of 8192-byte chunks of its input, based on a random number generator. snefru2.5a.tar.Z Ralph C. Merkle (merkle@xerox.com) One-way fast hash function in C by a well-known cryptologist. C functions and test main program. Most people seem to use MD5 instead. Version of November 1990. snuffle.zip Dan Bernstein Encryption program which turns a secure hash function into a very good cipher. Oriented towards the Snefru hash function, which is not included here. Simple (but profound) C code. May be an old version. wpcrack.tar.Z Ron Dippold Programs to crack the encryption on WordPerfect 5.1 encrypted files. Source code in Borland C. --- DES implementations --- barrett-des.zip David A. Barrett Fast DES implementation, with main program that works in Cipher Feedback mode. Sometimes known as "fast-des". Vintage Feb 1991. cdes-bishop.zip Matt Bishop, NASA Ames Nice C main program/front-end to DES to implement just about every known mode of DES: ECB, CBC, CFB, OFB. Does NOT include an actual DES implementation. Includes man page. chalmers-des-1.0.tar.Z Stig Ostholm ostholm@ce.chalmers.se DES implementation with several utility programs and many useful extra functions. Runs on a variety of Unix systems. Pretty good documentation. Vintage October 1990. crypt-bsd-4.3-reno.c University of California at Berkeley This is the "crypt" password hashing function from BSD Unix. It necessarily includes an implementation of DES. Code is marked as being from 1990. I haven't tested it, but I believe it is probably quite slow. Nevertheless, it's probably in wide use. csu10des.zip Phil Karn (original by James Gillogly) Famous public domain DES implementation by Phil Karn of KA9Q fame. Includes C functions & main programs. This is one of the first public domain DES implementations, and many minor variations of it are floating around. This one, last modified March 1987, was posted to comp.sys.unix, Volume 10. Karn's DES is not as fast as most of the more recent DES implementations but it's a "classic". d3des.zip Richard Outerbridge <71755.204@CompuServe.COM> Fast, compact DES implementation from a longtime DES programmer. Includes optional double and triple DES encryption. C functions only; skimpy but adequate documentation. August 1992 version. desCore-2-How.tar.Z Dana How Portable, very fast implementation of basic DES routines only. Supposedly the fastest C version around. Not so fast at key-setting (i.e., password hacking). This code was submitted to comp.sources.misc as Volume 29, Issue 80 and later updated in Volume 29, Issue 128. May 92 version. des-dist.tar.Z Antti Louko (alo@kampi.hut.fi) Fast DES implementation, with main program and C function library for arbitrary precision integer arithmetic. Also known as "alodes". Last modified September 1992, but most code seems to date from 1989. fdes5-baldwin.zip Robert W. Baldwin Fast DES/crypt implementation in C (functions only) This seems to be 1989-vintage code. Evidently it was/is a favorite of password crackers. koontz-des.tar.Z David G. Koontz <2004ktz%ucsbuxa@hub.ucsb.edu> Fast but large DES C functions and main program. Dates to March 1991, at which time it was one of the fastest around. Good verification suite included. libdes-young-p2.tar.Z Eric Young (eay@psych.psy.uq.oz.au) This is one of the fastest DES implementations around. These C library routines are designed to replace the MIT Athena DES routines that MIT does not make available for export. Includes a main program and a test program. This is Patch level 2, from July 1992. I believe an earlier version was known as eBones. mitchell-des.zip D. P. Mitchell DES implementation in C, with minimal driver program. Version of June 1983. I don't know how fast this is. There's no documentation and the code is uncommented. pfdes.zip Stuart Levy, Minnesota Supercomputer Center Portable, fast DES implementation in C, from April 1988. Includes demo & benchmark programs. Warning: files need cleaning up (control-Z's and extra spaces in makefile). ufc-crypt-pl1.tar.Z Michael Glad, email: glad@daimi.aau.dk Ultra Fast Crypt, fast replacement for crypt(3), patchlevel 1. This comes from comp.sources.misc volume 28, issues 115-116, March 1992.