Was giving some thought to simple MMO constructions for fast single block hash functions for things like PQ crypto. There's Haraka, but that's not standard and readily available while simple AES is in everything.

I asked about MMO for this purpose here. The answer was that it might be secure but that AES is known to have issues when used with simple MMO and Davies-Meyer (DM) hash constructions. These issues aren't a problem when AES is used as a cipher, but they might be when it's used to build a hash.

Basic single-block MMO is encrypt(plaintext)^plaintext. Simple and fast. My question is whether anyone has ever suggested this:

x = plaintext
y = encrypt(plaintext)
z = encrypt(y)
result = y ^ z

Or alternately...

result = x ^ y ^ z

That's slower since you have 2X AES, but it's not as slow as e.g. SHA2 or SHA3 especially on machines with AES instructions. It's probably faster than you'd think given the nature of data and instruction caches-- the second AES is probably less costly than the first because it's already in cache / pipeline.

Unfortunately while I understand the basics of cryptographic primitives and their use and various classes of attacks, etc., I am definitely a padawan when it comes to the deeper math of cryptography.

  • 1
    $\begingroup$ You might be interested in the Black–Rogaway–Shrimpton paper on many variations on a theme of MMO. It doesn't address multiple invocations of the block cipher per message block, but various ways to use a single block cipher invocation per message block. $\endgroup$ – Squeamish Ossifrage Apr 24 at 17:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.