Random number generators are the foundation of cryptography — that’s why the NSA secretly sabotaged the RNG standard that the National Institute for Standards and Technology developed.
The Tor Project faces serious, state-level adversaries, including the FBI, and so it needs all the randomness it can get — randomness that can’t be made predictable even if you’ve compromised the user’s computer, even.
The project’s breaking new theoretical ground by designing a real-world distributed random number generator that harnesses computers from around the world to collaborate on a random number that none of the individual computers could predict in advance, and that a compromised computer can’t sabotage.
The RNG is now completed and is undergoing rigorous testing. It recently underwent its first non-simulated test at the Tor Hackfest in Montreal.
This allowed us to test scenarios that could make the protocol burp and fail in unpredictable ways. For example, we instructed our testing Tor nodes to abort at crucial protocol moments, and come back in the worst time possible ways, just to stress test the system. We had our nodes run ancient Tor versions, perform random chaotic behaviors, disappear and never come back, etc.
This helped us detect various bugs and edge cases. We also confirmed that our system can survive network failures that can happen on the real Internet. All in all, it was a great educational experience! We plan to keep our testing network live, and potentially recruit more people to join it, to test even more features and edge cases!
For what it’s worth, here is a picture of the two first historic random values that our Tor test network generated. The number “5” means that 5 Tor nodes contributed randomness in generating the final random value:
Mission: Montreal! (Building the Next Generation of Onion Services)
[Tor Project]
(via /.)