January 9, Wednesday
12:00 – 14:00
Cryptanalysis of the Windows Random Number Generator
Bio-Informatics seminar
Lecturer : Mr. Leo Dorrendorf
Affiliation : Hebrew University, Dept. of Computer Sciences
Location : 202/37
Host : Student Seminar
Random numbers are essential in every cryptographic protocol. The quality of a system's random number generator (RNG) is therefore vital to its security. In Microsoft Windows, the operating system provides an RNG for security purposes, through an API function named CryptGenRandom. This is the cryptographic RNG used by the operating system itself and by important applications like the Internet Explorer, and the only RNG recommended for security purposes on Windows. This is the most common security RNG in the world, yet its exact algorithm was never published until now. We provide a description of the Windows RNG, based on examining the binary code of Windows 2000. We reconstructed the RNG's algorithm, and present its exact description and an analysis of the design. Our analysis shows a number of weaknesses in the design and implementation, and we demonstrate practical attacks on the RNG. We propose our recommendations for users and implementers of RNGs on the Windows platform. In addition, we describe the reverse-engineering process which led to our findings.