Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Randomizzazione?

    Salve, è un po di tempo che mi chiedo come faccia un computer a generare una stringa
    o un numero random

    Mi sono informato online e ho letto che i numeri generati dal computer nella maggior parte dei linguaggi sono degli pseudo-random
    cioè è possibile che attualmente non ci sia ancora una macchina che riesca
    a generare un numero totalmente random D: ?

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,389
    Solo un generatore di rumore bianco (hardware) può creare valori realmente random. L'emulazione software è sempre fallace da questo punto di vista.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,341
    Originariamente inviato da shodan
    Solo un generatore di rumore bianco ...
    Sarebbe molto semplice dotare i PC di un simile generatore ed estrarne i valori da usarsi nel software ... non conosco una implementazione pratica ma credo potrebbe essere utile realizzarla.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    L'algoritmo di calcolo piu' usato è il generatore lineare congruenziale.

    Un computer non riuscira' mai a dare una randomizzazione vera e propria visto che usa sempre un seed, cioè un "fattore" iniziale sul quale applica degli algoritmi con i quali calcolera' un numero "casuale".

    Se ci pensi neanche noi esseri umani dotati di cervello, riusciamo a generare dei numeri casuali, visto che la nostra mente è talmente condizionabile che qualsiasi cosa che intendiamo "casuale" è prevedibile ed assolutamente condizionato...
    lolide
    Java Programmer

    Informati

  5. #5
    Originariamente inviato da lolide
    L'algoritmo di calcolo piu' usato è il generatore lineare congruenziale.

    Un computer non riuscira' mai a dare una randomizzazione vera e propria visto che usa sempre un seed, cioè un "fattore" iniziale sul quale applica degli algoritmi con i quali calcolera' un numero "casuale".

    Se ci pensi neanche noi esseri umani dotati di cervello, riusciamo a generare dei numeri casuali, visto che la nostra mente è talmente condizionabile che qualsiasi cosa che intendiamo "casuale" è prevedibile ed assolutamente condizionato...
    In qualche lontanissimo ricordo dell'unico esame di informatica base base base base che ho fatto all'università, ricordo che si spiegava che una macchina non può generare numeri realmente random in quanto essa lavora su "fromule matematiche" e fino a prova contraria la matematica non ammette casualità.

    Aspetto di essere smentito
    Lo Spirito E' Forte
    Ma La Carne E' Debole

    Ognuno è artefice del proprio destino
    Ogni scelta, azione o decisione comporta una reazione del sistema a cui tu e tu solo dovrai rispondere

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,341
    Ripeto ... assodato che solamente con il software e la matematica non si riesce a generare numeri realmente casuali (non mi pare ci siano altri dubbi), perché non utilizzare in ogni PC un semplice device (magari usb) "generatore di rumore bianco" da cui i valori casuali?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da oregon
    Ripeto ... assodato che solamente con il software e la matematica non si riesce a generare numeri realmente casuali (non mi pare ci siano altri dubbi), perché non utilizzare in ogni PC un semplice device (magari usb) "generatore di rumore bianco" da cui i valori casuali?
    USB? Ci metteresti 40 minuti per generare una chiave privata

    Se invece la domanda è perché non sia nella scheda madre... non ne ho la minima idea, perché non so cosa sia un generatore di rumore bianco.

    Comunque, per casi molto particolari, i programmi grafici che generano le coppie di chiavi danno un ottimo esempio di come si può fare per generare numeri casuali migliori: i calcoli utilizzano un input generato dai movimenti del mouse, più muovi il mouse e migliore è la generazione del numero.

    Per casi molto più comuni, spesso ci sono modi ancora più semplici. Questa funzione JavaScript per esempio è usata in un gioco, e funziona benissimo:
    // Tira un dado a n facce (6 se non indicate), ritorna un intero tra 1 e n
    this.dice = function(num) {
    if (!num) {
    num = 6; // default: 6 facce
    }
    return(Math.floor(Math.random() * (num - 1)) + 1);
    }

    Comunque sia, cos'hanno che non va gli algoritmi software più usati? Secondo me hanno un grande vantaggio: se si scopre un algoritmo per prevederli (cosa sempre possibile, che creerebbe un enorme buco di sicurezza) si possono cambiare semplicemente aggiornando i pacchetti software.

  8. #8
    Gli esempi classici di roba veramente casuale in natura sono il moto browniano o i decadimenti radioattivi, che alcuni usano per avere numeri "veramente" casuali (c'è anche un sito a cui ci si può registrare per ottenere un po' di numeri casuali generati in questa maniera); per quanto ne so io, non si usano dispositivi apposta di questo genere (per quanto possano essere poco costosi) perché in realtà in un PC ci sono comunque diverse fonti di entropia "vera" (latenze di rete, di accesso al disco fisso, oscillazioni dei dati dei sensori ACPI, movimenti del mouse, delay tra le pressioni dei tasti sulla tastiera, ...), che vengono usati per generare byte di roba "davvero casuale" (è così che funziona /dev/random sulle macchine Linux).
    Ovviamente questi byte non sono infiniti, ma se ne servono tanti si possono usare un po' di dati di /dev/random come seed per generatori di numeri pseudocasuali di sicurezza crittografica, ottenendo un flusso di numeri casuali sufficientemente buoni per praticamente ogni fine pratico.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,389
    Originariamente inviato da in the web
    perché non so cosa sia un generatore di rumore bianco.
    Se hai un televisore con banda analogica, commuta su quella e alza il volume: puro rumore bianco. In pratica è il rumore di fondo intrinseco a ogni componente elettronico, dovuto all'agitazione degli elettroni.
    Comunque, per casi molto particolari, i programmi grafici che generano le coppie di chiavi danno un ottimo esempio di come si può fare per generare numeri casuali migliori: i calcoli utilizzano un input generato dai movimenti del mouse, più muovi il mouse e migliore è la generazione del numero.
    Per avere una vaga approssimazione dovresti attaccare un frullatore, non un mouse al pc.

    se si scopre un algoritmo per prevederli (cosa sempre possibile, che creerebbe un enorme buco di sicurezza) si possono cambiare semplicemente aggiornando i pacchetti software.
    Con un generatore hardware non si porrebbe proprio il problema.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  10. #10
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    844
    generatori da attaccare ai pc credo gia esistano!

    esempio
    http://www.idquantique.com/true-rand...-overview.html

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.