[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Some hash timings



Clock cycles to hash messages of 64 bytes, 128 bytes, etc., with
hash127 and the OpenSSL MD5:

Library      64  128  256  512  1024  2048 Chip         MHz Compiler
---------- ------------------------------- ---------------- -------------
127 0.70    550  825 1340 2480  4667  9275 Pentium      166 gcc 2.8.1
MD5 0.9.5  1132 1523 2250 3727  6680 12583 Pentium      166 gcc 2.8.1
127 0.70    561  814 1313 2449  4583  8954 Pentium III  450 egcs 2.91.66
MD5 0.9.5  1133 1494 2267 3782  6767 12947 Pentium III  450 egcs 2.91.66
127 0.70    570  762 1148 2111  3818  7438 UltraSPARC I 167 egcs 2.91.66
MD5 0.9.5  1523 2127 3313 5703 10468 20008 UltraSPARC I 167 egcs 2.91.66
127 0.70    608  864 1375 2552  4818  9429 Alpha 21264  500 egcs 2.91.66
MD5 0.9.5  1623 2335 3795 6699 12465 23835 Alpha 21264  500 egcs 2.91.66

Timing overhead is included. Pentium and Pentium II timings are stable;
UltraSPARC and Alpha timings wobble somewhat.

hash127 includes a Wegman-Carter pad. The output can be used directly as
an authenticator if you supply 128 new secret bits for each message.

The output of MD5, even with a secret initial state, isn't usable as an
authenticator. NMAC and HMAC feed the result through MD5 again, taking
more time.

---Dan



References: