[Haskell-cafe] Tor project

Auke Booij auke at tulcod.com
Fri Aug 1 08:28:54 UTC 2014


On 1 August 2014 10:11, Wojtek Narczyński <wojtek at power.com.pl> wrote:
> You asked for it. For me, doing useless computations just to make sure the
> timing is right, does not make sense. Using a clock makes sense.

If you believe that is the case, how are you planning to tackle power
analysis attacks? (Note that such attacks are not just theoretical.)

Let's say you went to sit an exam, but were already given the answers
by a friend beforehand. How do you fake actually sitting the exam? You
don't set a clock: that only fixes one of the ways in which the
examiners might discover you don't need to work to do the exam.

Instead, you stare ate your paper intensely, make useless drawings on
your rough work paper, and pretend you're working hard.

If you want to look like you're processing, you better actually be processing.

C allows you compute absolutely nothing, because the compiler isn't
smart enough to see that. But Haskell's compiler is much better at
detecting if you're computing trash, so we need to be more convincing
that we're not.


You can call it a cheat around compiler optimizations, but really
that's missing the point, because Haskell doesn't even work without
those optimizations.

This is a way to process data in a configurable way.

Obviously you'll need to somehow tell the compiler that the eventual
result of all the slack data propagation should not be thrown out. But
this is nothing new: we already have the IO monad (although admittedly
its internal data gets optimized away, or so I heard; but the
important thing is that the effects stay).


More information about the Haskell-Cafe mailing list