|
@@ -128,6 +128,7 @@
|
|
|
* void add_input_randomness(unsigned int type, unsigned int code,
|
|
|
* unsigned int value);
|
|
|
* void add_interrupt_randomness(int irq);
|
|
|
+ * void add_disk_randomness(struct gendisk *disk);
|
|
|
*
|
|
|
* add_input_randomness() uses the input layer interrupt timing, as well as
|
|
|
* the event type information from the hardware.
|
|
@@ -136,9 +137,15 @@
|
|
|
* inputs to the entropy pool. Note that not all interrupts are good
|
|
|
* sources of randomness! For example, the timer interrupts is not a
|
|
|
* good choice, because the periodicity of the interrupts is too
|
|
|
- * regular, and hence predictable to an attacker. Disk interrupts are
|
|
|
- * a better measure, since the timing of the disk interrupts are more
|
|
|
- * unpredictable.
|
|
|
+ * regular, and hence predictable to an attacker. Network Interface
|
|
|
+ * Controller interrupts are a better measure, since the timing of the
|
|
|
+ * NIC interrupts are more unpredictable.
|
|
|
+ *
|
|
|
+ * add_disk_randomness() uses what amounts to the seek time of block
|
|
|
+ * layer request events, on a per-disk_devt basis, as input to the
|
|
|
+ * entropy pool. Note that high-speed solid state drives with very low
|
|
|
+ * seek times do not make for good sources of entropy, as their seek
|
|
|
+ * times are usually fairly consistent.
|
|
|
*
|
|
|
* All of these routines try to estimate how many bits of randomness a
|
|
|
* particular randomness source. They do this by keeping track of the
|