Spring 2017

Document Type

Poster Session


Computer Science


Dr. David Briggs


The algorithm utilizes the behavior of modern operating systems to generate random bits by putting the process to sleep for 10 microseconds, and then comparing the actual number of microseconds slept to the expected amount. The reason why this works for generating \random" bits is that modern operating systems do not wake processes exactly when they request. This is due to process scheduling. The algorithm uses the randomness in actual sleep time to generate each bit.

The bits are not truly random, as if a person were able to force the algorithm to always execute, then we would not have random bits. The other way to break the algorithm involves knowing absolutely everything about the system state and determining when a process would be woken up by the CPU scheduler. The bits generated by the algorithm will not cycle like the mathematical methods, and so form a software-based source of highly pseudorandom values. If we could generate genuine random numbers using mathematical methods, then we would never consider using a function like this which can at best generate 105 bits second, which is 10,000 times slower than the mathematical methods. Unfortunately, we cannot create truly random sequences using deterministic functions, i.e. functions that will generate the same results given the same inputs.

Start Date

April 2017



To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.