Hasty Pudding Cipher -- Encryption Times

The 512-bit blocksize runs at nearly 250 MHz, good for bulk encryption.
For direct comparison with other AES entries, the 128-bit blocksize
runs at 91 MHz.
The 64-bit blocksize runs at 45 MHz, comparable to DES.  It will be
good as a DES plugin replacement.


      300 MHz DEC Alpha (64-bit words)

blocksize     time       time/bit      data rate
bits      microseconds  nanoseconds       MHz

tiny
1             1.83         1830           .55
2             2.80         1400           .71
3             2.51          837          1.20
4             2.58          645          1.55
5             3.24          648          1.54
6             5.10          850          1.18
7             7.55         1079           .93
8-10          6.80        680-850      1.18-1.47
11-15         6.20        413-564      1.77-2.42
16-21         4.97        237-311      3.22-4.23
22-31         4.65        150-207      4.73-6.66
32f           4.251         133          7.53
32-35         4.40        126-138      7.27-7.95

short
36-64         1.68       26.3-46.7     21.4-38.1
64f           1.569        24.5          40.8
64fu          1.423        22.2          45.0

medium
65-128        1.59       12.4-24.5     40.9-80.5
128f          1.538        12.0          83.2
128fu         1.402        11.0          91.3
128fus        1.44         11.3          88.9

long
129-192       1.71        8.9-13.3     75.4-112
193-256       1.89        7.4-9.8      102-135
256f          1.688         6.6          152
257-320       2.06        6.4-8.0      125-155
321-384       2.22        5.8-6.9      145-173
385-448       2.38        5.3-6.2      162-188
449-512       2.49        4.9-5.5      180-206
512f          2.295         4.5          223
512fu         2.076         4.1          247

extended
513           3.79          7.4          135
1024          7.08          6.9          145
1024f         4.481         4.4          229
2048         15.1           7.4          136
4096         31.1           7.6          132
10000        87.3           8.7          115
100000      868             8.7          115
1000000      9.43 ms        9.4          106
10000000    149.8 ms       15.0          66.8

key setup    79.5
spice setup    .01

Notes:
F  The routine has been specialized to a fixed blocksize.
U  The inner loop is unwound.
S  The spice is shortened to 64 bits.

Decryption time is about the same as encryption time.

Rich Schroeppel, Puddingmeister  rcs@cs.arizona.edu