We present for the first time a unified framework for describing the hardness of a primitive along any of these three axes: code-hardness, time-hardness and memory-hardness. This unified view allows us to present modular block cipher and sponge constructions which can have any of the three forms of hardness and can be used to build any higher level symmetric primitive: hash function, PRNG, etc.
We also formalize a new concept: asymmetric hardness. It creates two classes of users: common users have to compute a function with a certain hardness while users knowing a secret can compute the same function in a far cheaper way. Functions with such an asymmetric hardness can be directly used in both our modular structures, thus constructing any symmetric primitive with an asymmetric hardness. We also propose the first asymmetrically memory-hard function, DIODON.
As illustrations of our framework, we introduce WHALE and SKIPPER. WHALE is a code-hard hash function which could be used as a key derivation function and SKIPPER is the first asymmetrically time-hard block cipher.
Category / Keywords: secret-key cryptography / white-box cryptography, memory hardness, big-key encryption, Skipper, Whale, Diodon Date: received 12 May 2017, last revised 13 May 2017 Contact author: perrin leo at gmail com Available format(s): PDF | BibTeX Citation Version: 20170514:132313 (All versions of this report) Short URL: ia.cr/2017/414 Discussion forum: Show discussion | Start new discussion