This page is optimized for AI. For the human-readable: Security and performance of RNG on modern OS

Security and performance of RNG on modern OS

Project Idea Metadata

Project Idea Description

Initial situation and problem definition


Random number generators (RNG) are used everywhere nowadays, and they are a critical component for modern cryptography. For example, they are used to initialize vectors, during key-agreement schemes, in the process of creating pairs of keys for asymmetric encryption protocols, and so on. If you break the RNG, most of the times you are breaking the whole security system.


Computers are very predictable devices. Hence, it is extremely hard to produce "truly" random numbers on them, as opposed to pseudorandom numbers which can be easily generated with an algorithm. However, attackers can just as easily guess the sequence of PRNG, and this is not acceptable in cryptographic applications.


Fundamentally, it is not possible to get truly random numbers from non-random devices such as a computer. Therefore, similar to other computational security protocols, when we argue if a RNG is secure or not, we rely on assumptions about the difficulty for an adversary to predict future outputs given knowledge on previous ones.


How can we analyze RNG that claim to be cryptographically secure? How are these RNG initialized? What are the actual RNG used by OS nowadays? Are there any known attacks on RNG? What about standards or certifications? How can we measure their performance?


Aim of the work and expected results


This bachelor thesis will cover the following points:



And the expected results:



Creativity, variations, innovation


From all the points mentioned above, more emphasis will be put on those where the student has more interest (e.g. Fortuna over the new LRNG, or the other way around). The student is also welcome to find and propose additional RNG or statistical test suites to check.


References


Random number generators (RNG) are used everywhere nowadays, and they are a critical component for modern cryptography. For example, they are use to initialize vectors, during key-agreement schemes, in the process of creating pairs of keys for asymmetric encryption protocols, and so on. If you break the RNG, most of the times you are breaking the whole security system.

For more details, check the long description.