come potrei fare un generatore di numeri casuali reale e non pseudo-random?
come potrei fare un generatore di numeri casuali reale e non pseudo-random?
c'è un'intero ramo della matematica che si occupa di questo (!)
Nei sistemi informatici ogni algoritmo è basato su un cosiddetto "seme" (in genere un numero in virgola mobile sulla base del quale si applica un insieme di calcoli): non ha molto senso per un uso medio cercare di creare un metodo nuovo, mentre è più conveniente usare le funzioni già pronte (per es. del PHP) con una buona scelta di questo "numero di partenza".
Quasi sempre si usa un valore ricavato dal timer del computer.
Nel loro insieme si definiscono comunemente metodi "pseudo-casuali" (quindi, in questo senso, NON esistono metodi "casuali" puri).
ok forse non ho specificato bene cosa voglio fare, vorrei fare un generatore di chiavi da usare per crittografare con il metodo "one time pad" facendo un exor char chiave con char file... forse è meglio che lo faccio con il c, ma volevo provare con il php... (con il visualbasic ho già fatto qualcosina...) ah sono solo prove personali niente di serio lo faccio solo per conprendere meglio alcune cose...
beh... comunque anche se usi un metodo basato sul sistema "one time pad" devi comunque generare una chiave "il più casuale possibile" che in genere è una sequenza di caratteri lunga quanto il messaggio. Per ottenere questa sequenza conviene usare una funzione interna del PHP (o cmnq del ling. usato) basandosi su un "seme" buono.
Avevi forse usato qualche altra tecnica?
Penso che la soluzione migliore sia come ho detto sopra.
si quello che volevo fare è proprio quella generare una chiave il più casuale possibile lunga quanto il file da criptare, ma è una cosa mia non c'è fretta magari faccio un giretto su php.net![]()
Condivido in pieno, l'unica metodo casuale puro è dato dalla libera scelta da parte di una persona. C'era un metodo basato sui movimenti atomici di un determinato elemento che si avvicinava abbastanza alla casualità assoluta (ma non chiedetemi quale o come lo avessero scoperto, nn lo ricordoOriginariamente inviato da eiyen
c'è un'intero ramo della matematica che si occupa di questo (!)
Nei sistemi informatici ogni algoritmo è basato su un cosiddetto "seme" (in genere un numero in virgola mobile sulla base del quale si applica un insieme di calcoli): non ha molto senso per un uso medio cercare di creare un metodo nuovo, mentre è più conveniente usare le funzioni già pronte (per es. del PHP) con una buona scelta di questo "numero di partenza".
Quasi sempre si usa un valore ricavato dal timer del computer.
Nel loro insieme si definiscono comunemente metodi "pseudo-casuali" (quindi, in questo senso, NON esistono metodi "casuali" puri).)
ho capito, mi sa che mi limito a sperimentare il sistema di crittografia, tralasciando la casualità della chiave, tanto lo faccio solo per prova, poi se volessi fare cose serie m'informo di piu' tralaltro ho trovato su internet dispositivi hardware da collegare al pc che generano numeri random ma chissa quanto costano![]()
considera che l'utilizzo delle funzioni esistenti nei linguaggi vari (tipo PHP) non sono male.
Secondo il progetto che devi fare naturalmente bisogna considerare vari fattori (quando si parla di crittografia c'è un problema di sicurezza certamente): il metodo che stai seguendo (è noto quindi se ne conoscono grosso modo pregi e difetti) ha tra i punti cruciali la trasmissione della chiave al lettore.
Eventualmente posta più in là i futuri problemi.
...anche se in un progetto di sicurezza o stabilisci una vera e propria collaborazione oppure ogni volta che dovrai chiedere informazioni dovrai essere alquanto criptico...
se poi ti servisse una mano mi occupo anche di queste cosucce.
ma è vero che il one time pad veniva usato durante la guerra fredda da usa e russia per crittografare le informazioni riservate da nascondere?
beh sì. Non solo.
E anche in scontri successivi... e anche precedenti.
Nel senso che il principio fondamentale veniva usato anche in tempi remoti (naturalmente con materiali più semplici e applicandolo a oggetti, visto che non esistevano i computers).