3 ms·
> it’s also almost impossible that I could influence the value ahead of time even if I had an insider at the NIST. Even if I’ve hacked into the NIST’s servers a
by ckuehl 12y ago
> it’s also almost impossible that I could influence the value ahead of time even if I had an insider at the NIST. Even if I’ve hacked into the NIST’s servers and tried to change that one value, the way that the values are chained will eventually make this tampering obvious.
In the example, the decision is made based on whether the first digit is odd. Even if you can't directly manipulate the final random number, couldn't "an insider at the NIST" simply generate random numbers until the resulting hash matches the desired pattern, and then publish that number?
DJB wrote an interesting blog post [1] discussing how a rogue entropy source can manipulate the output of a PRNG by emitting only the values that produce a certain pattern in the hash:
> Here's an interesting example of an attack that can be carried out by this malicious source:
> 1. Generate a random r.
> 2. Try computing H(x,y,r).
> 3. If H(x,y,r) doesn't start with bits 0000, go back to step 1.
> 4. Output r as z.
> This attack forces H(x,y,z) to start 0000, even if x and y were perfectly random. It's fast, taking just 16 computations of H on average.
[1] http://blog.cr.yp.to/20140205-entropy.html http://blog.cr.yp.to/20140205-entropy.html
- pjscott 12y agoSee also the BADA55 elliptic curves, which were generated by a variety of commonly-used "verifiably random" procedures, but which all contain the hexadecimal string "BADA55" (or, more impressively, "BADA55EC") in their parameters somewhere: http://safecurves.cr.yp.to/bada55.html http://safecurves.cr.yp.to/bada55.html
- deleted 12y ago[deleted]
- roywiggins 12y agoThis is ameliorated by having more than one beacon that publish simultaneously, and xoring them all together, but a Bad beacon could just delay until it has seen all the Good results and then spin its RNG until the full XOR gives what it wants... If you have very precise synchronization you could conceivably use the lightspeed limit to guarantee any Bad Beacon(s) can't know the output of the Good beacons before it publishes its own value.
- deleted 12y ago[deleted]
- deleted 12y ago[deleted]