GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Welche Entropiequellen werden vom Linux-Kernel verwendet?

man 4 random hat eine sehr vage Beschreibung der Linux-Kernel-Entropiequellen:

Der Zufallszahlengenerator sammelt Umgebungsgeräusche von Gerätetreibern und anderen Quellen in einem Entropiepool.

Das Papier Entropy transfers im Linux Random Number Generator ist auch nicht viel spezifischer. Es listet auf:

  • add_disk_randomness() ,
  • add_input_randomness() , und
  • add_interrupt_randomness() .

Diese Funktionen stammen von random.c , der folgenden Kommentar enthält:

Zu den Zufälligkeitsquellen aus der Umgebung gehören Timings zwischen Tastaturen
, Interrupt-Timings von einigen Interrupts und andere
Ereignisse, die sowohl (a) nicht deterministisch als auch (b) schwer für einen
> Außenstehender zu messen.

Weiter unten gibt es eine Funktion add_hwgenerator_randomness(...) zeigt Unterstützung für Hardware-Zufallszahlengeneratoren an.

Alle diese Informationen sind eher vage (oder erfordern im Fall des Quellcodes ein tiefes Wissen über den Linux-Kernel, um sie zu verstehen). Welche Entropiequellen werden tatsächlich verwendet, und unterstützt der Linux-Kernel standardmäßig Hardware-Zufallszahlengeneratoren?

Akzeptierte Antwort:

Die meisten Standard-PC-Hardware verfügt heutzutage über einen Zufallszahlengenerator. VIA Semiconductor setzt sie seit vielen Jahren in ihre Prozessoren ein; der Linux-Kernel hat dafür den via-rng-Treiber. Ich zähle 34 Quellmodule in drivers/char/hw_random/ Verzeichnis im neuesten Quellbaum, einschließlich Treibern für Intel- und AMD-Hardware und für Systeme mit einem TPM-Gerät. Sie können den rng-Daemon (rngd) ausführen, um zufällige Daten in den Kernel-Entropie-Pool zu schieben.


Linux
  1. Linux – Was sind High Memory und Low Memory unter Linux?

  2. Linux – Sind verschiedene Linux/Unix-Kernel austauschbar?

  3. Was sind die Nachteile der Nachrichtenwarteschlangen von Linux?

  4. Wie kann ich sehen, was meine am häufigsten verwendeten Linux-Befehle sind?

  5. Was ist der Vorteil, wenn Sie Ihren eigenen Linux-Kernel kompilieren?

Was ist der Unterschied zwischen macOS- und Linux-Kernels

Was ist die Shell unter Linux?

Was bedeutet __init im Linux-Kernel-Code?

Was ist die aktuelle Linux-Kernelquelle?

Was genau sind Linux-Kernel-Header?

Welche Entropiequellen werden vom Linux-Kernel verwendet?