You can always use a clock and a counter to delay for a period of time that you know is greater than the worst-case time that the operation could take. Or randomize it up a bit. Or design the logic to take similar times for all crypto operations.<p>Here's another cool thing: by using a dual-rail encoding (one wire being high means a bit is 0, the other wire being high means the bit is 1) you can design logic that consumes roughly constant power no matter what the operands are. This makes power-analysis attacks a lot more difficult.<p>Here's a paper on all this that you may enjoy:<p><a href="http://www.gemplus.com/smart/rd/publications/pdf/MAM03as.pdf" rel="nofollow">http://www.gemplus.com/smart/rd/publications/pdf/MAM03as.pdf</a>