Non-physical Nondeterministic Random Bit Generator
   HOME

TheInfoList



OR:

Non-physical true random number generator (NPTRNG), also known as non-physical nondeterministic random bit generator is a
true random number generator In computing, a hardware random number generator (HRNG), true random number generator (TRNG), non-deterministic random bit generator (NRBG), or physical random number generator is a device that generates random numbers from a physical process ca ...
that does not have access to a dedicated hardware
entropy source In computing, a hardware random number generator (HRNG), true random number generator (TRNG), non-deterministic random bit generator (NRBG), or physical random number generator is a device that random number generation, generates random numbers f ...
. NPTRNG uses a non-physical noise source that obtains entropy from system data, like outputs of
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
functions, residual information in the
random access memory Random-access memory (RAM; ) is a form of electronic computer memory that can be read and changed in any order, typically used to store working data and machine code. A random-access memory device allows data items to be read or written ...
,
system time In computer science and computer programming, system time represents a computer system's notion of the passage of time. In this sense, ''time'' also includes the passing of calendar date, days on the calendar. System time is measured by a ''sys ...
or human input (e.g., mouse movements and keystrokes). A typical NPTRNG is implemented as
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
running on a computer. The NPTRNGs are frequently found in the kernels of the popular
operating systems An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
that are expected to run on any generic CPU.


Reliability

An NPTRNG is inherently less trustworthy than its physical random number generator counterpart, as the non-physical noise sources require specific conditions to work, thus the entropy estimates require major assumptions about the external environment and skills of an attacker. Typical attacks include: * vulnerability to an adversary with system access (just like any software-based TRNG); * an attacker connecting a predictable source of events (for example, a mouse simulator); * operating in an environment where the assumptions about the system behavior no longer hold true (for example, in a
virtual machine In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
). A more sophisticated attack in 2007 breached the
forward secrecy In cryptography, forward secrecy (FS), also known as perfect forward secrecy (PFS), is a feature of specific key-agreement protocols that gives assurances that session keys will not be compromised even if long-term secrets used in the session ke ...
of the NPTRNG in
Windows 2000 Windows 2000 is a major release of the Windows NT operating system developed by Microsoft, targeting the server and business markets. It is the direct successor to Windows NT 4.0, and was Software release life cycle#Release to manufacturing (RT ...
by exploiting few implementation flaws.


Implementations

The design of an NPTRNG is traditional for TRNGs: a noise source is followed by a postprocessing
randomness extractor A randomness extractor, often simply called an "extractor", is a function, which being applied to output from a weak entropy source, together with a short, uniformly random seed, generates a highly random output that appears Independent and identic ...
and, optionally, with a
pseudorandom number generator A pseudorandom number generator (PRNG), also known as a deterministic random bit generator (DRBG), is an algorithm for generating a sequence of numbers whose properties approximate the properties of sequences of random number generation, random n ...
(PRNG) seeded by the true random bits. As of 2014, the Linux NPTRNG implementation extracted the entropy from: * the
interrupt In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
s, mixing CPU cycle counter, kernel timer value, IRQ number, and
instruction pointer The program counter (PC), commonly called the instruction pointer (IP) in Intel x86 and Itanium microprocessors, and sometimes called the instruction address register (IAR), the instruction counter, or just part of the instruction sequencer, is ...
of the interrupted instruction into a "fast pool" of entropy; * the random-time I/O (events from keyboard, mouse, and disk), mixing the kernel timer value, cycle counter, device-specific information into the "input pool". At the time, testing in virtualized environments had shown that there existed a boot-time "entropy hole" (''reset vulnerability'') when the early (u)random outputs were catastrophically non-random, but in general the system provided enough uncertainty to thwart an attacker.


References


Sources

* * * * * Cryptography Random number generation {{computer-stub