GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:quali sorgenti di entropia vengono utilizzate dal kernel Linux?

man 4 random ha una descrizione molto vaga delle fonti di entropia del kernel Linux:

Il generatore di numeri casuali raccoglie il rumore ambientale dai driver di dispositivo e da altre fonti in un pool di entropia.

Anche la carta che Entropy trasferisce nel generatore di numeri casuali di Linux non è molto più specifica. Elenca:

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

Queste funzioni provengono da random.c , che include il seguente commento:

Le fonti di casualità dall'ambiente includono i tempi inter-tastiera
, i tempi di interruzione di alcuni interrupt e altri
eventi che sono entrambi (a) non deterministici e (b) difficili per un
osservatore esterno da misurare.

Più in basso, c'è una funzione add_hwgenerator_randomness(...) indicando il supporto per i generatori di numeri casuali hardware.

Tutte queste informazioni sono piuttosto vaghe (o, nel caso del codice sorgente, richiedono una profonda conoscenza del kernel Linux per essere comprese). Quali sono le effettive sorgenti di entropia utilizzate e il kernel Linux supporta eventuali generatori di numeri casuali hardware pronti all'uso?

Risposta accettata:

Al giorno d'oggi, la maggior parte dei prodotti hardware per PC ha un generatore di numeri casuali. VIA Semiconductor li ha inseriti nei loro processori per molti anni; il kernel Linux ha il driver via-rng per quello. Conto 34 moduli sorgente in drivers/char/hw_random/ directory nell'albero dei sorgenti più recente, inclusi i driver per l'hardware Intel e AMD e per i sistemi che dispongono di un dispositivo TPM. Puoi eseguire il demone rng (rngd) per inviare dati casuali al pool di entropia del kernel.


Linux
  1. Che cos'è il kernel Linux e dovresti aggiornare al kernel più recente?

  2. Linux:cosa sono la memoria alta e la memoria insufficiente su Linux?

  3. Quali sono gli svantaggi delle code di messaggi di Linux?

  4. Qual è l'attuale sorgente del kernel Linux?

  5. Come posso vedere quali sono i miei comandi Linux più usati?

Qual ​​è la differenza tra i kernel macOS e Linux

Che cos'è la shell in Linux?

Debug live del kernel Linux, come si fa e quali strumenti vengono utilizzati?

Cosa significa __init nel codice del kernel di Linux?

Qual è il vantaggio di compilare il proprio kernel Linux?

Cosa sono esattamente le intestazioni del kernel Linux?