Skip to main content
IBM 
ShopSupportDownloads
IBM HomeProductsConsultingIndustriesNewsAbout IBM
IBM : developerWorks : Security : Education - online courses
Introduction to cryptology: Pt. 3
Download tutorial zip fileView letter-sized PDF fileView A4-sized PDF fileE-mail this tutorial to a friend
Main menuSection menuGive feedback on this tutorialPreviousNext
2. Background and reminders
  


Impossible things with random numbers, part 1 page 4 of 8


Random numbers are important to a variety of cryptographic protocols, such as randomly-generated keys and seeds. A problem one runs up against when seeking random numbers is that it's impossible to generate true random numbers from deterministic algorithms. Instead, what algorithms produce are "pseudo-random numbers" -- such algorithms are called "pseudo-random generators" (PRGs).

The difference between pseudo-random numbers and genuine random numbers is a basic fact of information theory. A genuine random number contains as much entropy or information as its bit length. Any algorithm that can be written in a computer language cannot contain more entropy than is contained in its actual source code (including any contained in language libraries and the like). So there is a limit to the number and length of random numbers that can be generated by a given algorithm. After a while, patterns start occurring in pseudo-random streams. By gathering some real-world random seed information (for example, the microsecond timing of a user typing a phrase, or a bit of information about external changes in the Internet), the entropy of a PRG can be improved, but only by the amount of the entropy content of the real-world seed data.


Main menuSection menuGive feedback on this tutorialPreviousNext
PrivacyLegalContact