1 ================================= 2 Hardware random number generators 3 ================================= 4 5 Introduction 6 ============ 7 8 The hw_random framework is software that makes 9 special hardware feature on your CPU or mother 10 a Random Number Generator (RNG). The software 11 a core providing the /dev/hwrng character devi 12 sysfs support, plus a hardware-specific driver 13 into that core. 14 15 To make the most effective use of these mechan 16 should download the support software as well. 17 latest version of the "rng-tools" package from 18 19 https://github.com/nhorman/rng-tools 20 21 Those tools use /dev/hwrng to fill the kernel 22 which is used internally and exported by the / 23 /dev/random special files. 24 25 Theory of operation 26 =================== 27 28 CHARACTER DEVICE. Using the standard open() 29 and read() system calls, you can read random d 30 the hardware RNG device. This data is NOT CHE 31 fitness tests, and could potentially be bogus 32 hardware is faulty or has been tampered with). 33 output if the hardware "has-data" flag is set, 34 a security-conscious person would run fitness 35 data before assuming it is truly random. 36 37 The rng-tools package uses such tests in "rngd 38 run them by hand with a "rngtest" utility. 39 40 /dev/hwrng is char device major 10, minor 183. 41 42 CLASS DEVICE. There is a /sys/class/misc/hw_r 43 two unique attributes, "rng_available" and "rn 44 "rng_available" attribute lists the hardware-s 45 available, while "rng_current" lists the one w 46 connected to /dev/hwrng. If your system has m 47 RNG available, you may change the one used by 48 the list in "rng_available" into "rng_current" 49 50 ============================================== 51 52 53 Hardware driver for Intel/AMD/VIA Random Numbe 54 - Copyright 2000,2001 Jeff Garzik <jgar 55 - Copyright 2000,2001 Philipp Rumpf <pr 56 57 58 About the Intel RNG hardware, from the firmwar 59 ============================================== 60 61 The Firmware Hub integrates a Random Number Ge 62 using thermal noise generated from inherently 63 mechanical properties of silicon. When not gen 64 bits the RNG circuitry will enter a low power 65 provide a binary software driver to give third 66 access to our RNG for use as a security featur 67 the RNG is only to be used with a system in an 68 69 Intel RNG Driver notes 70 ====================== 71 72 FIXME: support poll(2) 73 74 .. note:: 75 76 request_mem_region was removed, for th 77 78 1) Only one RNG is supported by this d 79 2) The location used by the RNG is a f 80 MMIO-addressable memory; 81 3) users with properly working BIOS e8 82 have the region in which the RNG is 83 request_mem_region calls always fai 84 However, for people who use mem=XX, 85 **not** in /proc/iomem, and request 86 succeed. 87 88 Driver details 89 ============== 90 91 Based on: 92 Intel 82802AB/82802AC Firmware Hub (FW 93 May 1999 Order Number: 290658-002 R 94 95 Intel 82802 Firmware Hub: 96 Random Number Generator 97 Programmer's Reference Manual 98 December 1999 Order Number: 298029-001 99 100 Intel 82802 Firmware HUB Random Number Generat 101 Copyright (c) 2000 Matt Sottek <msottek 102 103 Special thanks to Matt Sottek. I did the "gut 104 did the "brains" and all the testing.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.