Robust and Efficient Elimination of Cache and Timing Side Channels
arxiv.org
arxiv.org
I guess as usual that during heavy load it may backfire on some hardware by changing its behaviour when there is a pressure to access the clock enabling a potential DOS (on some hardware like heavily asynchronuous equipment like routers for instance, I totally can feel the CPU overload while there is almost no process, IO that requires close to RT beginning to fail unexpectedly, clock drift...).
I mean you don't need a PhD to anticipate this.
It seems a totally elegant, simple and wrong solution to me.
>Similarly, we assume that the attacker
>does not have physical access to the hardware and cannot
>monitor side channels such as electromagnetic radiations,
>power use, or acoustic emanations.
The performance numbers are inspiring.
Will be interesting to see crypt-analysis that attempts to break a solution like this.
Also, the Law of Large Numbers works against you here - the amount you have to sleep grows faster than the number of attacks your attacker gets.
It's like how a blurred image can be brought back into focus, but a removed one cannot, e.g. -- http://yuzhikov.com/articles/BlurredImagesRestoration1.htm
Suppose in addition to being unable to distinguish a man from a woman you are also not really good with your ruler and each person is recorded at 6 +/- 6 inches above their true height. Does this make it impossible do distinguish the women's door from the men's?
Not in the slightest: the averages are now wrong, but they're still different. It's still a high school stats exercise. It's a very important thing for science that a real world which easily permits measurement errors like this doesn't by itself make science impossible.
Most timing attacks on e.g. HMAC functions are the door problem in disguise: we know there is going to be a fast code path (e.g. early termination of a string comparison) and a less fast code path (e.g. a string comparison which had to examine every character). You're allowed to take an arbitrarily large number of measurements -- determine whether you're on the fast path or the less fast path. Great, you just solved N bits of the problem -- now, do that in a for loop and you win.