law xts_blocks_round_trip

bend-osdev-cipher-modes@0.1.0.0 · LAWS.bend:44

import bend-osdev-cipher-modes@0.1.0.0/LAWS.bend as LAWS
import Base
import bend-osdev-cipher-modes@0.1.0.0/cipher_modes.bend as M
import bend-osdev-cipher-modes@0.1.0.0/xts.bend as T

44# XTS on blocks: decryption undoes encryption, for every data key and every
45# starting tweak (T_0 = Xts.tweak(k2, i), so every k2 and i are covered)
46law xts_blocks_round_trip:
47  for ~K: Data
48  for ~enc: K -> M.CmBlock -> M.CmBlock
49  for ~dec: K -> M.CmBlock -> M.CmBlock
50  for ~inv: @k: K -> @b: M.CmBlock -> {dec(k, enc(k, b)) == b : M.CmBlock}
51  for +k1: K
52  for t: M.CmBlock
53  for bs: List<&2, M.CmBlock>
54  {T.Xts.decrypt_blocks(~K, ~dec, k1, t, T.Xts.encrypt_blocks(~K, ~enc, k1, t, bs)) == bs : List<&2, M.CmBlock>}

Uses (9)

Used by (0)

No other definition uses this definition.