The Hasty Pudding Cipher -- A Tasty Morsel
The Hasty Pudding Cipher is a variable length block cipher. The block size may be *any* number of bits, even fractional bit values are permitted. The arbitrary block size means that anything can be encrypted without expansion. Arbitrary sets, such as dates, or the printable subset of ascii, or the 20-bit primes, can be encrypted to themselves.
The key size may be any (whole) number of bits.
The Hasty Pudding Cipher has a 512-bit secondary key, the SPICE. The spice may be changed in one instruction. Concealment of the spice is optional.
I estimate the actual security level of the Hasty Pudding Cipher as 400 bits. I am offering a token prize for successful cryptanalytic work.
The Hasty Pudding Cipher is fast, achieving 100 megabits per second on 1000-bit blocks on a 233 MHz DEC Alpha.
The Hasty Pudding Cipher is in the public domain; there are no known patent restrictions.
Overview of the Hasty Pudding Cipher (19KB)
ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/hpc-overview
Overview of the Hasty Pudding Cipher (gzip 7KB)
ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/hpc-overview.gz
Specific Cipher Claims for NIST (14KB)
ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/hpc-nist-doc
Specific Cipher Claims for NIST (gzip 5KB)
ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/hpc-nist-doc.gz
Specification for the Hasty Pudding Cipher (50KB)
ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/hpc-spec
Specification for the Hasty Pudding Cipher (gzip 17KB)
ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/hpc-spec.gz
Help File for the Hasty Pudding Cipher ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/hpc.hlp
Overview+Claims+Help+Spec (94K)
ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/hpc-ov-cl-hl-sp
Overview+Claims+Help+Spec (gzip 33K)
ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/hpc-ov-cl-hl-sp.gz
Summmary of diskettes submitted to NIST ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/README
Compiling and Testing the Hasty Pudding Cipher ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/README2
Directory of Tests for the Hasty Pudding Cipher ftp://ftp.cs.arizona.edu/xkernel/rcs/hpc/test/index.html
The code for the Hasty Pudding Cipher is freely available in the US and Canada. Send me email with a phone number, the city where you will receive the reply message, and stating your citizenship. I will email you the program. (You get to compile it).
Four versions are available, each roughly 100KB. hpc-gcc.c Compilers with a 64-bit integer or long long data type. hpc-ansi.c Compilers restricted to 32-bit operations. Slower. HPC-standalone.java Standalone Java version. HPC_Algorithm.java NIST/Cryptix interface.I'd like to acknowledge Peter Bigot for help with Java and Tex, Dave McGrew and Trusted Information Systems for assistance with the Borland C compiler, and Hilarie Orman for converting my collage of sentence fragments into English prose.
Rich Schroeppel rcs@cs.arizona.edu