I've been trying to find a solid method to prevent cache timing or other possible side channel attacks on an AES implementation, that uses lookup tables for S-box substitution. I realize that there are methods to eliminate table lookups using techniques like BitSlice AES and also AES NI instruction set. But I'm stuck with a self made implementation that depends on 256 byte S-box lookups. An attacker observing a shared CPU cache can easily observe my patterns of access and hence gain information about the secret keys used.

I've tried various techniques to make table lookup undetectable, but it all seems to have some vulnerabilities, and some of them are performance taxing.

Can I apply any programming hacks on the table or its storage or ways to access it to make cache timing attacks difficult for an attacker, but not loosing performance?

So, are there methods to prevent an attacker from knowing a table lookup, and make it difficult for an attacker as brute forcing AES ?

Also, how difficult is a practical cache timing attacks/side channel attacks on AES that uses 256 bit keys?

Is AES-128 more vulnerable to side channel attacks than AES 192 or AES 256 ?

Every help and advice will be greatly, appreciated!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.