I ADVISE ALL USERS OF THIS ARCHIVE THAT IT IS THE LEGAL OBLIGATION OF
THE INDIVIDUAL WHO ACCESSES THIS ARCHIVE TO COMPLY WITH THE U.S. STATE
DEPARTMENT AND CANADIAN GOVERNMENT REGULATIONS WHICH GOVERN THE TRANSFER
OF CERTAIN SOFTWARE PRODUCTS WHICH ARE DESIGNED TO MEET MILITARY
SPECIFICATIONS AND/OR USED IN MILITARY APPLICATIONS (WHICH INCLUDES PRODUCTS
WHICH CONTAIN ALGORITHMS FOR FILE/DATA ENCRYPTION).
I am also personally asking that you comply with the export restrictions.
Please don't use the wimsey cryptography archive to violate Canadian
law, otherwise I may be forced to shut down this archive.
For encryption software
cd software
get README
follow the instructions in this file.
Mark Henderson
markh@wimsey.bc.ca
-----------------------------------------------------------------------
If you have any questions regarding or contributions for this directory,
please send mail to markh@wimsey.bc.ca. If you have things to upload
drop them in ~ftp/pub/crypto/incoming and send me a note.
If you're looking for information on public key cryptography but
don't know very much about it, check out crypt.txt.gz and the
files in cryptlesson.
The connection between this site and the internet is not
the fastest (56Kbps). At certain times you may have to
be more patient than usual when downloading. (Hint: Try off-prime
hours)
Don't forget to use binary mode when downloading files from this site.
You'll find public keys for RIPEM and ViaCrypt PGP at the end of
this file.
Some other sites of interest:
soda.berkeley.edu:/pub/cyberpunks/pgp - PGP. Other cypherpunks info
ripem.msu.edu - RIPEM and lots of other stuff. Non-anonymous ftp from
within U.S. and Canada only
ghost.dsi.unimi.it [149.132.1.2, 149.132.2.1] - PGP, RPEM, lots of other
source code (des, d3des, snuffle...) (~ftp/pub/security)
- recently moved to ftp.dsi.unimi.it (~ftp/pub/security/crypt)
nic.funet.fi - lots of stuff
netcom.netcom.com - look in /pub/qwerty, /pub/grady, /pub/mpj
rsa.com - cryptography FAQ, PKCS, RIPEM (from USA ONLY), RSAREF, CLIPPER
uxc.cso.uiuc.edu - RPEM (includes DES and NEWDES), PGP
beta.xerox.com - hash2.5a (Snefru), hashSig, md5
csrc.ncsl.nist.gov (129.6.54.11) - various docs from NIST. FIPS
csn.org - /mpj - U.S. and Canada only
cpsr.org - various docs
ftp.eff.org
kampi.hut.fi - DES implemenations, RPEM (Rabin based email system)
ftp.uni-kl.de - various
goya.dit.upm.es - PGP, DES
merlin.etsu.edu - PGP for amiga (look in /aminet)
eugene.utmb.edu:/pub/pgp - PGP
Use of some of the programs below may infringe on various software patents
depending on the country you are in and what you intend to do with the software.
e.g.
The following paragraph comes directly from PKP on the use of RSA within the
U.S. and Canada. (from the RSA, Inc. FAQ)
"In North America, a license is needed to ``make, use or sell'' RSA. However,
PKP has a policy that anyone may use RSA non-commercially for a
personal, academic or intellectual reason without a license; an example
of such use would be the implementation of RSA as a programming project
for a computer class. RSA Laboratories has made available (in the U.S. and
Canada) at no charge a collection of cryptographic routines in
source code, including the RSA algorithm; it can be used for non-commercial
purposes"
There is also a commercial version of PGP sold by Viacrypt. They have
versions available for MSDOS, Sun, SCO Unix, AIX and others. Drop
me a note at markh@wimsey.bc.ca if you want contact information. These
are unfortunately available only in the U.S. and Canada.
some parts of what appears below were taken from cl-next2.cl.msu.edu
I've only described a small fraction of what is here.
cbw.tar.Z
Crypt Breaker's Workbench; program to help you cryptanalyze
messages enciphered with the simple, obsolete program crypt(1).
Reportedly used to help decipher R. T. Morris's worm.
cloak.txt
Description of Terry Ritter's controversial (to some)
Turbo Pascal shareware encryption product CLOAK.
crypt_ran_gen.uue
"bc" calculator program to generate cryptographically
strong pseudorandom numbers, by Mark Johnson. Uses an
algorithm by Blum, Blum, and Shub.
crypt.txt.Z
Information on public key cryptography. Includes a fair bit of
technical information. Quite good. Details of various public
key systems. The references are also worth quite a bit. The
mathematical background will be useful to those who lack it.
Topics include:
Requirements for secrecy, authenticity and integrity,
Conventional systems, Key management, certificate based
key management, signatures, hash functions and message
digests, RSA (including notes on implementation), Knapsack
systems, ElGamal, design considerations for RSA chips,
implementations, mathematical aspects, relevant algorithms,
breaking knapsacks, probabilistic computing, Euclid's
algorithm, the chinese remainder theorem, quadratic residues,
discrete logarithms, primality testing, zero knowledge.
cryptlesson/
A set of notes for a course on public-key cryptography,
emphasizing complexity aspects. The topics:
1. Introduction 2. Elementary Number Theory 3. RSA and Rabin systems
4. Knapsack systems (don't discuss breaking them. Sorry!)
5. Introduction to NP-Completeness 6. Rabin's primality test
7. Probabilistic Encryption (Goldwasser-Micali)
8. Pseudo-random number generators (Blum-Blum-Shub)
TeX, PostScipt and HP LJ versions are included in this directory.
(from ghost.dsi.unimi.it)
dss-proposal
NIST-proposed Digital Signature Standard, as of Summer 1991.
Controversial.
enigma_2.zip
Program to simulate the German Enigma cipher machine
on a PC compatible. (No source code available, sorry,
but see enigma.c.Z)
gmp-1.2.tar.Z
GNU mp library (for arithmetic with large integers). Could be
the basis for a nice RSA implementation.
hagelin-dem209.bas
Program to help decrypt the WWII/Korea War vintage
US Army M209 cipher machine. (This device was based
on the work of Boris Hagelin.) Source code in GWBASIC
(MS-DOS BASIC), probably from a book by Cipher Devours.
hashSig-merkle.shar.Z
Ralph Merkle's experimental Abstract Xerox Hash Signature
function, which uses a given hash function (such as Snefru
or MD4) to implement digital signatures. Public key
cryptography is used; the code may be used only for
experimental purposes. cf. beta.xerox.com.
hill.Z
C source for a program that implements a Hill cipher.
Lester Hill's matrix-math-oriented cipher was one of the
first sophisticated mathematically-oriented ciphers.
This is not 1990's stuff, though. Program by John Cowan.
lucifer.shar
C source for IBM's Lucifer cipher, a precursor to DES.
This is a very primitive implementation. A faster implementation
is available from mrr@scss3.cl.msu.edu
Md/md2-kit-verifier.tar.Z
C Implementation of RSA's MD2 (Message Digest 2) hash
function, with a copy of RFC 1115, plus a simple program
to read a file and compute its md2 message digest.
MD/md2.doc.Z
Document from RSA Data Security describing md2. From rsa.com.
MD/md4tools.tar.Z
C implementation of RSA's MD4 (Message Digest 4) hash
function, with a copy of RFC 1186, a driver program,
and a program to add an md4 hash to a Usenet article.
Algorithm by Ron Rivest; additional code by Rich Salz
and "Kent".
MD/md5.tar.Z
C implementation of RSA's MD5 (Message Digest 5) has
function, with a driver and a description of the algorithm.
By Ron Rivest, RSA DSI. cf. rsa.com
merkle-khufu-khafre.txt
Document describing Ralph Merkle's Khufu and Khafre
block ciphers, and his Snefru hash function.
Khufu and Khafre are 64-bit block ciphers that are much faster
than DES when implemented on general-purpose hardware.
Pseudocode for each is included. (I am interested
in obtaining C implementations of Khufu and Khafre.)
mrrcip.zip
Various historial cipher schemes.
Includes C (and some FORTRAN!) sources and PC executables.
munge-1.9f.tar.Z (or later versions)
Encryption program with "compress-like" interface which uses
either triple DES, IDEA or the composition of the two in CFB mode.
BETA version.
okeefe_encrypt.tar.Z
C code for a fairly simple block transposition cipher
based on linear congruential random number generators.
By R. A. O'Keefe, Edinburgh.
pw_gen.c
Makes up passwords which have similar letter digraph frequencies
to English.
Converted from Multics PL/I by Bill Sommerfeld, 4/21/86.
Original PL/I version provided by Jerry Saltzer.
rot13.c
Source to simple program implementing the famous
very simple "rot13" cipher. This was, of course, never
intended to provide real security; it's used to cloak
Usenet messages that contain spoilers for games, etc.
scott-newdes-asm.zip
8086 assembler implementation of below, by Mark Riordan.
scott-newdes-c.zip
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 pretty fast. Code by Mark Riordan.
HASH/snefru/snefru.tar.Z
C implementation of Ralph Merkle's Snefru hash function.
Some code by Rich Salz. Merkle's code courtesy of Xerox.
HASH/snefru/snefru2.5a.tar.Z
Slightly more recent version of above. See beta.xerox.com.
RIPEM 1.1 key
-----BEGIN PUBLIC KEY-----
User: markh@wimsey.bc.ca
User: markh@wimsey.com
User: henderso@netcom.com
PublicKeyInfo:
MIGeMAoGBFUIAQECAgQAA4GPADCBiwKBgQD6pxeLMchQF50lf9TbhnVcF15yObiT
q5oDvpG6pf+Al1W2s714ATGsERdyEfDwvhqPCK+OujqZxkrx2hJoVNs6Wpma125s
MMeCBmkj1wIiNO8fYYpeYXJo4kbw/MhdiYclV1aJrH51KXbGdCWoiFezK5tgoW8d
fb8uPMQULJagIwIFAIAAAIc=
MD5OfPublicKey: F1F5F0C3984CBEAF3889ADAFA2437433
-----END PUBLIC KEY-----
PGP Keys.
(note, I'm using ViaCrypt PGP 2.4)
The first is my current key. The second is a low security key which
I use on a public access Unix system.
The last two are revocation certificates for old keys.
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.4
mQCPAivJ3w4AAAEEAMyer3mwrEAfnY65s17lbIzDKEJBJX5m1rceauKEMM5A41+L
kUvNzdGvvaTxYgvlgQS5u7Q4Iv96BvTJUJHKUTxp+ueZjrZX5glY+T1JVQWSvlph
pJ5QWr4o90de/S4GOpYdKo8JFLfGymzUDTqtm1qxT4KJb+G97eI11LPFgBXjABEB
AAG0Jk1hcmsgQy4gSGVuZGVyc29uIDxtYXJraEB3aW1zZXkuYmMuY2E+iQCVAgUQ
K8nffeI11LPFgBXjAQHOpgP9F67ES+2iWyEEj3JU/k8lT2GAYmxrp2GiZ5yGgFFs
MPDob5ZVLK+f695hcgA6E4218FS/p+BiJlYcjyWazOl1U7g0HB0DvYcKi5s0PF+M
8b+0tuD83Hb91ygePMmlgHe1+B5w4E1LJtnqcqlhAcLqdz/ZJ31qAVnFUppEALTx
2gA=
=1kaz
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.4
mQBPAi2u9oIAAAECAK1R7ymwpmaR2I1Tk+los7yNHdeatLyVEuTKUjosRrVpd7Jo
paOLo0Ps6X7yCke0x1C+iFrj12gkasl2YP1BarEAEQEAAbQ5TWFyayBDLiBIZW5k
ZXJzb24gPG1hcmtoQHdpbXNleS5iYy5jYT4gKkxPVyBTRUNVUklUWSBLRVkqiQBV
AgUQLa73y2rJdmD9QWqxAQFFdgH6A92FVKghP1RUUJnP53331YqiPpZ1iHl5BVeQ
v2igVXdW0npsv85h2ra74lHWw3UnqoOj+cJ4G2WZkW3OB6H3iw==
=xidr
-----END PGP PUBLIC KEY BLOCK-----
--------------------------------------------------------------------
revocation certificates for old keys
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.4
mQCNAiqs9isAAAEEANVCMkWJEqeI6jmzlFTxPaoVwBO/tcolKzpqrYnMehMP2QMd
4BYtnbOs0Z6MpGi99axuZPvwbKDrZ2obRoU756cKoRBI9jSc4aJDTV85k31qtWhQ
NOD78Y7tofe1dGnypCphUBZV2oYV45r005fNNwcW/3SSS0n6r6WKUuOeValRAAUT
iQCVAgUgK5PNVKWKUuOeValRAQH/yAP/aJh0WXNk1OA3+ow9qftWg+DlRYQPssge
e851R9yFNmsnjgE9TQ/dY4fewtNxuJw2U3X4RouvC3K9E/0uDeNLHdR9tl3jgWOu
08w2kP+nvOXLJbSuIA9zu9+hNdRk6rbTgEsZLqX1U8wwlvEbbo4ePQKjvo1x4Nf9
HDa25ioaSTC0Jk1hcmsgQy4gSGVuZGVyc29uIDxtYXJraEB3aW1zZXkuYmMuY2E+
=EIRw
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.4
mQCNAiuTzuAAAAEEAKqRYzHG3F9EKe+BlS7FMWunqhsgTmILag9zh774rggWZx11
3XmVt+4OV58Md9yCdEuTF9BFPnVORTlhx3kqzfsibRj2Iy0lshRil3gLR64TB2wl
QrGc0TgmqNTzJ/WzGkJ1wON/4+KNIwPBhTwssKgRntkfNidQPPfE/ap/JEqpAAUR
iQCVAgUgK8nbcvfE/ap/JEqpAQEdbAP+M1GOd+R7JRnJNnzrZMDlbiKtLJ3mvoOd
EDhya9vLRmXUC9R2VYAFo5ybGY8+eMjdatldz4Z2vBV+HWkPEWBhwMYPxUJGiSea
/m9W61BmQ7bHLBY02NVw1s4Q0cmv95URcFYwLm3QXJY9W3tbCX0u/ElFzsaV46S3
JemP/UYEUQe0OU1hcmsgQy4gSGVuZGVyc29uIDxtYXJraEB3aW1zZXkuYmMuY2E+
IGV4cGlyZXMgMTk5NS8wMS8wMYkAlQIFECuUB0f3xP2qfyRKqQEBvPQD/0LYnAYa
XYltVT/W98pW+PoO41tEq6wmuOVanT4Zv2SFmf2hxyjmddssPtV+IzZ544ixJT49
fJCw4na+pUIN/x8kwDiMKIQGKN0fj1hGuln4GNV3nE7JwaC2bQ0rB9K+SqyhfvZ3
g0/uDBj9fBLQBucdAHJQl7BQShhZSShzTAEQ
=vuFf
-----END PGP PUBLIC KEY BLOCK-----