Hasty Pudding Cipher

From Wikipedia, the free encyclopedia

Hasty Pudding Cipher
General
Designers Richard Schroeppel
First published 1998-06
Cipher detail
Key sizes Variable
Block sizes Variable

The Hasty Pudding Cipher (abbreviated HPC) is a variable-block-size block cipher which was an unsuccessful candidate in the competition for selecting the U.S. Advanced Encryption Standard. It was designed by Richard Schroeppel and has a number of unusual characteristics for a block cipher:

  • Its block size is completely variable, from 1 bit up to arbitrary size. It can even encrypt objects whose size in bits are non-integral. For example, it can encrypt an integer range like 0-100, which is about 6.6 bits.
  • Its key length is also variable (but it must be a whole number of bits)
  • The encryption operation can include an additional input parameter called a "spice" that (along with the key) selects the permutation computed by the cipher. Changing spices is a lower overhead operation than changing keys, so the availability of the spice makes some interesting unconventional modes of operation possible. The notion of the spice was later formalized (with slightly stronger properties) in the definition of "tweakable" block ciphers by Liskov, Rivest, and Wagner (what HPC called a spice is now generally called a "tweak"). See the block cipher article for some more about tweakable ciphers.

[edit] References