aes-playground icon indicating copy to clipboard operation
aes-playground copied to clipboard

My experiments in understanding AES, Whitebox AES, and related attacks

AES Playground

My experiments in understanding AES, Whitebox AES, and related attacks.

See textbook_aes.py and the contents of the aes/ subdirectory for an AES128 implementation, which maps as closely to the FIPS 197 spec as possible.

DISCLAIMER: This code is optimised for educational purposes. Do not use in a security context.

My goals are to:

  • Implement textbook AES from first principles.

  • Implement LUT-based AES.

  • Try extracting keys from the LUTs.

  • Replicate academic Whitebox AES implementations.

  • Implement known attacks, from first principles.

  • Invent/implement novel attacks! (can "Differential Fault Analysis Using Symbolic Execution" be applied to whitebox/LUT based implementations?)

Resources

  • AES: https://en.wikipedia.org/wiki/Advanced_Encryption_Standard

  • FIPS 197 (NIST AES Standard): https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf

  • Useful debugging tool: https://www.cryptool.org/en/cto-highlights/aes

  • Understanding Galois Fields: https://en.wikipedia.org/wiki/Finite_field_arithmetic

  • "A Tutorial on White-box AES": https://eprint.iacr.org/2013/104.pdf

"To Research" list:

  • Algebraic Fault Analysis

  • Differential Fault Analysis Using Symbolic Execution

    • https://www.researchgate.net/publication/322089366_Differential_Fault_Analysis_Using_Symbolic_Execution

    • https://hardwear.io/document/flip-a-bit-grab-a-key-hardwear-io-2017-v1-1.pdf