Skip to content
  • Eric Biggers's avatar
    crypto: aes_ti - disable interrupts while accessing S-box · 0a6a40c2
    Eric Biggers authored
    In the "aes-fixed-time" AES implementation, disable interrupts while
    accessing the S-box, in order to make cache-timing attacks more
    difficult.  Previously it was possible for the CPU to be interrupted
    while the S-box was loaded into L1 cache, potentially evicting the
    cachelines and causing later table lookups to be time-variant.
    
    In tests I did on x86 and ARM, this doesn't affect performance
    significantly.  Responsiveness is potentially a concern, but interrupts
    are only disabled for a single AES block.
    
    Note that even after this change, the implementation still isn't
    necessarily guaranteed to be constant-time; see
    https://cr.yp.to/antiforgery/cachetiming-20050414.pdf
    
     for a discussion
    of the many difficulties involved in writing truly constant-time AES
    software.  But it's valuable to make such attacks more difficult.
    
    Reviewed-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
    Signed-off-by: Herbert Xu...
    0a6a40c2