Skip to content

Instantly share code, notes, and snippets.

@mimoo
Last active September 11, 2019 06:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mimoo/8193bad7caa504e8b8cba68bb82a584d to your computer and use it in GitHub Desktop.
Save mimoo/8193bad7caa504e8b8cba68bb82a584d to your computer and use it in GitHub Desktop.
Tweakable block ciphers

Introduction

tweaks seems to be the password hashing salts of tweakable block ciphers:

  • it can be public
  • it randomizes the encryption even more
  • it's cheap.

Timeline

Tweakable Ciphers

We propose a new cryptographic primitive, the “tweakable block cipher.” Such a cipher has not only the usual inputs—message and cryptographic key—but also a third input, the “tweak.” The tweak serves much the same purpose that an initialization vector does for CBC mode or that a nonce does for OCB mode. Our proposal thus brings this feature down to the primitive block-cipher level, instead of incorporating it only at the higher modes-of-operation levels. We suggest that

  1. tweakable block ciphers are easy to design
  2. the extra cost of making a block cipher “tweakable” is small
  3. it is easier to design and prove modes of operation based on tweakable block ciphers

Specifically, a tweakable block cipher should have the property that changing the tweak should be less costly than changing the key.

even if an adversary has control of the tweak input, we want the tweakable block cipher to remain secure

Beyond the Birthday Bound

Tweakable block ciphers can either be designed from scratch, or be built upon off-the-shelf cryptographic primitives such as block ciphers and (public) permutations

Wide-block ciphers

Lightweight cryptography

Cryptanalysis

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment