Differenze tra le versioni di "Ottenere numeri casuali di ambito Byte dai file-device /dev/random e /dev/urandom"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
I file speciali "''/dev/random''" e "''/dev/random''" fungono da generatori di numeri ''pseudo-casuali''. <SUP>&#091;[[#Note|nota 1]]&#093;</sup> <SUP>&#091;[[#Note|nota 2]]&#093;</sup>
+
I file speciali "''/dev/random'' " e "''/dev/random'' " fungono da generatori di numeri ''pseudo-casuali''. <SUP>&#091;[[#Note|nota 1]]&#093;</sup> <SUP>&#091;[[#Note|nota 2]]&#093;</sup>
  
 
Permettono l'accesso al rumore ambientale raccolto da driver di periferica ed altre fonti. Essi utilizzano un recipiente di entropia di 512 byte per generare dati casuali e si fermano quando tale recipiente è pieno. In particolare il kernel di Linux genera entropia dal ''timing'' della tastiera, i movimenti del mouse, e tempi IDE e rende i dati casuali di caratteri a disposizione di altri processi del sistema operativo attraverso i file speciali ''/dev/random'' e ''/dev/random''.
 
Permettono l'accesso al rumore ambientale raccolto da driver di periferica ed altre fonti. Essi utilizzano un recipiente di entropia di 512 byte per generare dati casuali e si fermano quando tale recipiente è pieno. In particolare il kernel di Linux genera entropia dal ''timing'' della tastiera, i movimenti del mouse, e tempi IDE e rende i dati casuali di caratteri a disposizione di altri processi del sistema operativo attraverso i file speciali ''/dev/random'' e ''/dev/random''.
Riga 7: Riga 7:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
  Dim fl As File
+
  Dim fl As File
  Dim b As Byte
+
  Dim b As Byte
 
+
 
   fl = Open "/dev/urandom" For Read
 
   fl = Open "/dev/urandom" For Read
 
    
 
    
   While True
+
   Do
 
     Read #fl, b
 
     Read #fl, b
 
     Print b
 
     Print b
     Sleep 0.3
+
     Wait 0.3
   Wend
+
   Loop
 
    
 
    
 
  '''End'''
 
  '''End'''
Riga 24: Riga 24:
 
----
 
----
 
=Note=
 
=Note=
[1] I file-device "''/dev/urandom''" o "''/dev/random''" forniscono numeri casuali basati su stati fisici derivanti dai driver hardware, mentre la funzione ''Rnd()'' fornisce numeri pseudo-casuali che non possono essere utilizzati in crittografia.
+
[1] I file-device "''/dev/urandom'' " e "''/dev/random''" forniscono numeri casuali basati su stati fisici derivanti dai driver hardware, mentre la funzione ''Rnd()'' fornisce numeri pseudo-casuali che non possono essere utilizzati in crittografia.
  
[2] Coloro che lavorano con i computer parlano spesso del "''generatore di numeri casuali''" del loro sistema e dei "''numeri casuali''" che esso produce. I numeri, calcolati da un computer attraverso un processo deterministico, non possono però per definizione essere ''casuali''. Infatti, data la conoscenza dell'algoritmo utilizzato per creare i numeri e lo stato interno, è possibile predire tutti i numeri restituiti dalle chiamate successive all'algoritmo, mentre con numeri veramente casuali, la conoscenza di un numero o di una sequenza arbitrariamente lunga di numeri non è di alcuna utilità per prevedere il numero successivo da generare.
+
[2] Coloro che lavorano con i computer parlano spesso del "''generatore di numeri casuali'' " del loro sistema e dei "''numeri casuali'' " che esso produce. I numeri, calcolati da un computer attraverso un processo deterministico, non possono però per definizione essere ''casuali''. Infatti, data la conoscenza dell'algoritmo utilizzato per creare i numeri e lo stato interno, è possibile predire tutti i numeri restituiti dalle chiamate successive all'algoritmo, mentre con numeri veramente casuali, la conoscenza di un numero o di una sequenza arbitrariamente lunga di numeri non è di alcuna utilità per prevedere il numero successivo da generare.
  
  

Versione delle 15:34, 27 ago 2022

I file speciali "/dev/random " e "/dev/random " fungono da generatori di numeri pseudo-casuali. [nota 1] [nota 2]

Permettono l'accesso al rumore ambientale raccolto da driver di periferica ed altre fonti. Essi utilizzano un recipiente di entropia di 512 byte per generare dati casuali e si fermano quando tale recipiente è pieno. In particolare il kernel di Linux genera entropia dal timing della tastiera, i movimenti del mouse, e tempi IDE e rende i dati casuali di caratteri a disposizione di altri processi del sistema operativo attraverso i file speciali /dev/random e /dev/random.


Mostriamo un esempio pratico per leggere uno dei file-device, ad esempio /dev/urandom, e ottenere numeri casuali di tipo Byte (il corrispondente unsigned char del linguaggio C):

Public Sub Main()

  Dim fl As File
  Dim b As Byte

  fl = Open "/dev/urandom" For Read
  
  Do
    Read #fl, b
    Print b
    Wait 0.3
  Loop
  
End



Note

[1] I file-device "/dev/urandom " e "/dev/random" forniscono numeri casuali basati su stati fisici derivanti dai driver hardware, mentre la funzione Rnd() fornisce numeri pseudo-casuali che non possono essere utilizzati in crittografia.

[2] Coloro che lavorano con i computer parlano spesso del "generatore di numeri casuali " del loro sistema e dei "numeri casuali " che esso produce. I numeri, calcolati da un computer attraverso un processo deterministico, non possono però per definizione essere casuali. Infatti, data la conoscenza dell'algoritmo utilizzato per creare i numeri e lo stato interno, è possibile predire tutti i numeri restituiti dalle chiamate successive all'algoritmo, mentre con numeri veramente casuali, la conoscenza di un numero o di una sequenza arbitrariamente lunga di numeri non è di alcuna utilità per prevedere il numero successivo da generare.



Riferimenti