lkml.org 
[lkml]   [2014]   [Feb]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [RFC PATCH 0/5] CPU Jitter RNG
    From
    On Tue, Feb 4, 2014 at 9:31 PM, Stephan Mueller <smueller@chronox.de> wrote:
    >>On 02/04/2014 09:08 AM, Theodore Ts'o wrote:
    >>> I really wish we could get someone inside Intel who has deep
    >>> knowledge
    >>> about CPU internals to render an opinion about this. My reaction to
    >>> "I can't explain where the entropy is coming from" seems very similar
    >>> to what my home grown attempts to create an encryption algoritm when
    >>> I
    >>> was much younger and much more foolish --- "it must be secure because
    >>> I can't break it".
    >>
    >>I think I have deep enough knowledge about CPU architectures in general
    >>(as opposed to specific Intel designs, which I wouldn't be able to
    >>comment on anyway) to comment. The more modern and high performance a
    >>design you have the more sources of unpredictability there are.
    >>However, there are very few, if any, (unintentional) sources of actual
    >>quantum noise in a synchronous CPU, which means that this is at its
    >>core a PRNG albeit with a large and rather obfuscated state space.
    >>
    >>The quantum noise sources there are in a system are generally two
    >>independent clocks running against each other. However, independent
    >>clocks are rare; instead, most clocks are in fact slaved against each
    >>other using PLLs and similar structures. When mixing spread spectrum
    >>clocks and non-spread-spectrum clocks that relationship can be very
    >>complex, but at least for some designs it is still at its core
    >>predictable.
    >
    > But isn't there an additional clock? The clock used to drive the cache
    > and memory bus? When measuring memory accesses timings, larger
    > variations in the execution time are evident. This also applies when
    > hitting the caches (for L1, the variations are less than for L2 than for
    > L3). The variations in access timings would come from the CPU wait
    > states and their duration, would it not?

    CPU, cache, and memory bus clocks are usually derived from the same
    crystal. Hence they're not independent.

    Gr{oetje,eeting}s,

    Geert

    --
    Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

    In personal conversations with technical people, I call myself a hacker. But
    when I'm talking to journalists I just say "programmer" or something like that.
    -- Linus Torvalds


    \
     
     \ /
      Last update: 2014-02-04 23:21    [W:3.594 / U:0.432 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site