Open defuse opened 8 years ago
To do this we'd only have to:
The definition should be determining which of a set of N inputs was given, not "target input vs non-target input" because the latter definition is captured by the former with N=2 where the first is the target input and the second is the worst (most likely to false positive) of all other inputs.
(edit: And the success rate of the which-of-N attacks is more intuitively understandable.)
We also probably want to include the possibility of exercising the program during the attack (e.g. in one crypto attack they sent thousands of carefully-crafted ciphertexts to leak extra information about the key). In our instantiations for this paper, it would be a no-op since we don't do that, but it needs to be part of the definition to include those more-complicated attacks.
How will this take into account the setting of the attack, e.g. cross-VM vs. cross-user?
Instead of a complicated all-encompassing definition, restrict it as much as possible and add notes about what it doesn't capture.
Section 3 conflates what I'm calling a "mathematical definition" here with instantiation details. It both describes the general setting of an attack (probe selection, spying, recovery) and describes how we instantiated those parameters at the same time. It would be cleaner to split it into the definition of what an attack is first, and then say that we prove there exists a working instantiation of that definition.
This will make the results less ad-hoc. The definition is not ad-hoc, it's a general category of attacks. Our instantiation is ad-hoc, but that's fine, because we're claiming the existence of a working instantiation. Future work is to explore the space of possible instantiations.
The attack definition and instantiation details are actually conflated everywhere throughout the paper. One strategy to deal with this without rewriting the whole thing is to make the formal definitions up front and then the conflation comes off as re-explaining the definition inline which isn't so bad.
Defining the "success probability" would reduce the word count a lot. We could say "... In one experiment ... we observed a success probability of ..." Instead of repeating "... of the X the tool guessed Y right, a success rate of ..."
Class-distinguishing attacks can be verified experimentally by showing they work with samples chosen randomly from the entire class. (For TrueCrypt, we can argue that a new empty volume is computationally indistinguishable from a random sample of the input class, since otherwise you'd have found an attack on TrueCrypt).
The definition should be about distinguishing classes of input, since asking which class an input was in is equivalent to asking a question about the input (which has a finite number of possible answers, the set of possible answers known in advance).
This would probably be better to go into a second paper that includes things like #33.
I just wrote this to James: