• Eric Biggers's avatar
    crypto: adiantum - add Adiantum support · 059c2a4d
    Eric Biggers authored
    Add support for the Adiantum encryption mode.  Adiantum was designed by
    Paul Crowley and is specified by our paper:
    
        Adiantum: length-preserving encryption for entry-level processors
        (https://eprint.iacr.org/2018/720.pdf)
    
    See our paper for full details; this patch only provides an overview.
    
    Adiantum is a tweakable, length-preserving encryption mode designed for
    fast and secure disk encryption, especially on CPUs without dedicated
    crypto instructions.  Adiantum encrypts each sector using the XChaCha12
    stream cipher, two passes of an ε-almost-∆-universal (εA∆U) hash
    function, and an invocation of the AES-256 block cipher on a single
    16-byte block.  On CPUs without AES instructions, Adiantum is much
    faster than AES-XTS; for example, on ARM Cortex-A7, on 4096-byte sectors
    Adiantum encryption is about 4 times faster than AES-256-XTS encryption,
    and decryption about 5 times faster.
    
    Adiantum is a specialization of the more general HBSH construction.  Our
    e...
    059c2a4d
Makefile 6.08 KB