>> My comments were to clarify why this works 'quite well' on multi-user
>> systems even though the underlying source may not be truely random - and
>> why it may not be as usable on single user ones.
> 
> Attached is circular cross-correlation vector for two synchronized
> threads running on multi-core non-hyperthreading x86 processor.
> "Synchronized" means that one thread blocks on semaphore and then
> collects data, while another thread unlocks the semaphore and then
> collects data. "Multi-core" means that both threads exercise same
> external memory interface. As mentioned earlier high spikes is
> manifestation of system timer interrupt, nothing to worry about. But
> what do we make from the fact that there are areas with effectively
> "guaranteed" correlation of 0.02? How does the value translate in
> "tangible" terms? Is it acceptable?

I spoke too soon. The pattern that could be observed in previous message
is manifestation of on-demand clock frequency increases. It can be
observed even with single-thread sets collected independently. With
fixed frequency it, circular cross-correlation vector for two
synchronized threads, looks as attached. Probably most relevant thing
about it is maximum at 0 (hardly seen), indicating correlation
coefficient at point when adversary managed to guess the moment victim
started collecting data. Even though the other spikes appear "thicker"
than on picture for two independent vectors, one can argue that
multi-core processor is not much more "dangerous" environment than
single-core one. Sorry about possible confusion...

<<inline: mp.jpg>>

Reply via email to