How to make cipher resist against Side channel Attacks. Specially Timing Attack, Cachet Timing Attach, Simple/ Differential Power Analysis.

Uptil now it seems all Standard Algorithms like AES, Cameillia etc have been successfully broken using side channel Attacks.

What are the design criteria to counter these?



  • Using secret data in table based lookups on machines that have a cache
    • The table is just a memoized function; Just compute the function explicitly each iteration instead of looking the answer up in a table
  • Accessing an array using indices whose values are supposed to be secret
  • Using functions that take a variable amount of time to compute on secret data


  • Use instructions that are generally implemented in a constant amount of time (at the hardware/gate level)
    • ADD, XOR, AND, shifts, and rotates are almost guaranteed to operate in a constant amount of time
  • Use functions that facilitate countermeasures more easily

Note that side channels target implementation details, and not the abstract algorithm. An implementer can still make choices that create vulnerabilities.

All that an algorithm designer can do is make the design straightforward to implement in a constant time manner. For example, AES can be implemented without a table lookup, but this tends to lower the overall throughput, potentially significantly.

There are apparently some tools for testing an implementation for weaknesses.

  • $\begingroup$ this mean its all about implimentation, and since designer cant control the implimenters, it always depend upon implimenter how he cater for the side channel attacks in a particular environment $\endgroup$ – khan Nov 12 '16 at 13:51

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.