17 ms·
(Having read the beginning and skimmed the rest) my impression is that this is a useful but vulnerable technique. Useful in that it provides an entropy source n
by pc2g4d 11y ago
(Having read the beginning and skimmed the rest) my impression is that this is a useful but vulnerable technique. Useful in that it provides an entropy source not currently available. But vulnerable in that it could conceivably weakened considerably.
Perhaps what should be discussed in this context is not entropy but conditional entropy. Entropy really is relative to one's understanding of the underlying system being observed. For example, human height is nearly normally distributed and would provide some degree of entropy if it could be freely sampled from. But for a given person, knowledge of the parents' heights makes predicting the child's height a much easier task. The entropy of height given parents' heights is less than the entropy of height in general. H(Height|ParentsHeight) < H(Height)
In the case of this CPU jitter method, things it calls nondeterministic are, in fact, clearly deterministic---disparities between CPU and memory clockspeed come to mind. Effort at better modeling of the internals of a CPU may lead these "random" events to appear not-so-random-anymore. Suppose I build a statistical model of CPU jitter based on various properties observable from a non-privileged process in the OS. To the extent that my model predicts jitter better than random, an entropy source derived from CPU jitter is weaker. The conditional entropy _given_ the model could decrease substantially, to the point that it's no longer a good entropy source.
That said, none of that work seems to have been done yet. But I wouldn't consider this a bulletproof entropy source in the long run.