Browse Prior Art Database

A method for generating random number seeds from buffered human generated data Disclosure Number: IPCOM000176848D
Original Publication Date: 2008-Nov-25
Included in the Prior Art Database: 2008-Nov-25
Document File: 2 page(s) / 53K

Publishing Venue



Disclosed is an improved method of using buffered human generated data to seed a pseudo-random number generator (PRNG). Typically human generated data such as keyboard input has been used to produce better seed data for PRNGs than timestamp information, but may not be as random as anticipated and can have security implications. This method proposes an improved process of extracting and manipulating buffered human input to increase both security and randomness.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

A method for generating random number seeds from buffered human generated data

Typically computer generated random numbers are only pseudo-random and rely on a seed, frequently generated by a timestamp. Clock based methods of seeding PRNGs can produce non-random output, for instance in applications which are repeated at regular intervals. In order to increase the true randomness of the seed improved methods are required. Using a buffer of data is one approach to solving this problem (e.g. United States Patents 6871206, 7302457), but these approaches may still rely on pseudo-random data to populate the buffers. A further improvement is to use true random data such as a buffer of human generated keyboard or mouse input, as is the case in the Linux* kernel random number generator[*]. Using human generated input data has the advantages that:
1. The buffer is continuously refreshed with true random data
2. Buffered data is human, not machine, generated
3. The buffer already exists in the system, an additional buffer solely for random generation is not required

The limitations of using this data are:
1. Human data may not be as random as expected for instance if something is run immediately after a sign-on process where the same user information and password is entered

2. Using keyboard data to generate a random can lead to an indirect method of reconstructing input

3. The keyboard buffer may contain repeating rather than unique data, for instance if the machine is used for the same task repeatedly

    The current process of producing a random seed, following the Linux kernel method[*], is summarized as follows:

Data is extracted from buffers of human generated data (e.g. keyboard input,


mouse and disk events)

These data are two 32-bit words, one representing timing and one of the event


(e.g. key pressed)

These dat...