-
Generazione valori casualiScritto daNon Autenticatoil 2013-08-11 00:44:23.0 alle 2013-08-11 00:44:23.0Le funzioni che generano caratteri psedocasuali
- possono avere come salt una stringa di lunghezza arbitraria?
- la corrispondenza fra salt e stringa generata è biunivoca?
- dalla stringa generata è possibile risalire al salt?-
Re: Generazione valori casualiScritto daNon Autenticatoil 2013-08-11 00:47:53.0 alle 2013-08-11 00:47:53.0> Le funzioni che generano caratteri psedocasuali
>
> - possono avere come salt una stringa di lunghezza arbitraria?
>
> - la corrispondenza fra salt e stringa generata è biunivoca?
>
> - dalla stringa generata è possibile risalire al salt?
Dimenticavo: la stringa generata è sicuramente non periodica?-
Re: Generazione valori casualiScritto daSeuTrombeur de femmesil 2013-08-11 01:01:45.0 alle 2013-08-11 01:01:45.0Trollate totali: 2082Scritto da:
> > Le funzioni che generano caratteri psedocasuali
> >
> > - possono avere come salt una stringa di lunghezza arbitraria?
> >
> > - la corrispondenza fra salt e stringa generata è biunivoca?
> >
> > - dalla stringa generata è possibile risalire al salt?
>
> Dimenticavo: la stringa generata è sicuramente non periodica?
Cosa usi per generare i numeri casuali?Atoms & Love-
Re: Generazione valori casualiScritto daNon Autenticatoil 2013-08-11 01:07:02.0 alle 2013-08-11 01:07:02.0> > > Le funzioni che generano caratteri psedocasuali
> > >
> > > - possono avere come salt una stringa di lunghezza arbitraria?
> > >
> > > - la corrispondenza fra salt e stringa generata è biunivoca?
> > >
> > > - dalla stringa generata è possibile risalire al salt?
> >
> > Dimenticavo: la stringa generata è sicuramente non periodica?
>
> Cosa usi per generare i numeri casuali?
Riferiamoci a funzioni disponibili nei linguaggi di programmazione, tipo PHP.-
Re: Generazione valori casualiScritto daaltgutente che non utieneil 2013-08-11 01:55:04.0 alle 2013-08-11 01:55:04.0Trollate totali: 11540> > > > Le funzioni che generano caratteri psedocasuali
> > > >
> > > > - possono avere come salt una stringa di lunghezza arbitraria?
> > > >
> > > > - la corrispondenza fra salt e stringa generata è biunivoca?
> > > >
> > > > - dalla stringa generata è possibile risalire al salt?
> > >
> > > Dimenticavo: la stringa generata è sicuramente non periodica?
> >
> > Cosa usi per generare i numeri casuali?
>
> Riferiamoci a funzioni disponibili nei linguaggi di programmazione, tipo PHP.
Io in PHP usavo sempre mt_rand, cioe` il Mersenne Twister. Nell'implementazione originaria ammette un vettore di stato di um... boh, forse 327 elementi a 32 bit se non ricordo male, era un numero del genere. Pero` forse il PHP non aveva una API che permettesse l'accesso a quel che nell'implementazione originale e` la funzione "lsgenrand", cioe` quella che prende tutto il vettore.
um...
http://www.php.net/manual/en/function.mt-srand.php
mi pare ci sia solo questa, che prende un intero e quindi corrisponde a sgenrand (senza la L all'inizio). Quella pero` nell'intenzione degli autori dell'MT era un wrapper per la funzione lsgenrand, che genera il vettore di stato a partire dal seme scalare, cioe` piglia il numero che gli dai e "s'inventa" un vettore di 327 elementi o quel che erano, cosa che non permette di sfruttare tutta la versatilita` dell'MT. Se ci fosse lsgenrand si potrebbe riempire direttamente il vettore di stato, usando molta piu` informazione e avendo zilioni di combinazioni iniziali... tipo 2327*32
-
-
-
Re: Generazione valori casualiScritto daaltgutente che non utieneil 2013-08-11 01:48:38.0 alle 2013-08-11 01:48:38.0Trollate totali: 11540> > Le funzioni che generano caratteri psedocasuali
> >
> > - possono avere come salt una stringa di lunghezza arbitraria?
Non e` che intendi "seed" quando dici "salt"? Il "salt" e` un'affare che c'entra qualcosa nella crittografia, non nella generazione di numeri pseudocasuali, ma io ho sempre avuto un blocco psicologico insuperabile per la crittografia in quanto trovo sbagliato nascondersi o nascondere qualcosa, sicche` non sono mai riuscito a studiare granche` di crittografico, e in particolare il concetto di "salt" ricordo vagamente che e` forse un numero da aggiungere a qualcosa di crittografato per crittografarlo meglio, o qualcosa del genere.
Sul seed invece sono preparato: il seed (inteso come seed di partenza) e` il numero di partenza di una sequenza pseudocasuale, il valore che viene elaborato per ottenere il risultato, assieme a un nuovo seed, la prima volta che l'algoritmo viene eseguito. A ogni seed corrisponde una sequenza, che di solito e` diversa da tutte le altre generate da altri seed (a meno che il PRNG faccia cagare).
Con un buon PRNG c'e` una distribuzione uniforme dei risultati nella sequenza, si genera una e una sola sequenza per ogni seme diverso (nell'ambito dei semi ammessi, ad esempio se il seme e` un numero a 64 bit ci saranno 264 sequenze possibili) e le sequenze generate tendono a ripetersi il piu` tardi possibile.
Pero` magari non c'entra un cacchio perche` intendevi proprio "salt" e io quello lo metto solo sulla roba da mangiare.
-
Re: Generazione valori casualiScritto daNon Autenticatoil 2013-08-11 02:05:33.0 alle 2013-08-11 02:05:33.0> > > Le funzioni che generano caratteri psedocasuali
> > >
> > > - possono avere come salt una stringa di lunghezza arbitraria?
>
> Non e` che intendi "seed" quando dici "salt"? Il "salt" e` un'affare che c'entra qualcosa nella crittografia, non nella generazione di numeri pseudocasuali, ma io ho sempre avuto un blocco psicologico insuperabile per la crittografia in quanto trovo sbagliato nascondersi o nascondere qualcosa,

> sicche` non sono mai riuscito a studiare granche` di crittografico, e in particolare il concetto di "salt" ricordo vagamente che e` forse un numero da aggiungere a qualcosa di crittografato per crittografarlo meglio, o qualcosa del genere.
>
> Sul seed invece sono preparato: il seed (inteso come seed di partenza) e` il numero di partenza di una sequenza pseudocasuale, il valore che viene elaborato per ottenere il risultato, assieme a un nuovo seed, la prima volta che l'algoritmo viene eseguito. A ogni seed corrisponde una sequenza, che di solito e` diversa da tutte le altre generate da altri seed (a meno che il PRNG faccia cagare).
>
> Con un buon PRNG c'e` una distribuzione uniforme dei risultati nella sequenza, si genera una e una sola sequenza per ogni seme diverso (nell'ambito dei semi ammessi, ad esempio se il seme e` un numero a 64 bit ci saranno 264 sequenze possibili) e le sequenze generate tendono a ripetersi il piu` tardi possibile.
>
> Pero` magari non c'entra un cacchio perche` intendevi proprio "salt" e io quello lo metto solo sulla roba da mangiare.
Sì intendevo seed. Il fatto è che la prima volta che ho letto del seed doveva essere in un posto che lo chiamava salt, e ho continuato a chiamarlo così.
Il mio intento sarebbe di vedere se un algoritmo generatore di valri pseudocasuali possa servire a trasformare una stringa mnemonica seed=password in una stringa di lunghezza arbitraria da impiegare come OTP.-
Re: Generazione valori casualiScritto daaltgutente che non utieneil 2013-08-11 02:25:10.0 alle 2013-08-11 02:25:10.0Trollate totali: 11540> > > > Le funzioni che generano caratteri psedocasuali
> > > >
> > > > - possono avere come salt una stringa di lunghezza arbitraria?
> >
> > Non e` che intendi "seed" quando dici "salt"? Il "salt" e` un'affare che c'entra qualcosa nella crittografia, non nella generazione di numeri pseudocasuali, ma io ho sempre avuto un blocco psicologico insuperabile per la crittografia in quanto trovo sbagliato nascondersi o nascondere qualcosa,
>
>
>
> > sicche` non sono mai riuscito a studiare granche` di crittografico, e in particolare il concetto di "salt" ricordo vagamente che e` forse un numero da aggiungere a qualcosa di crittografato per crittografarlo meglio, o qualcosa del genere.
> >
> > Sul seed invece sono preparato: il seed (inteso come seed di partenza) e` il numero di partenza di una sequenza pseudocasuale, il valore che viene elaborato per ottenere il risultato, assieme a un nuovo seed, la prima volta che l'algoritmo viene eseguito. A ogni seed corrisponde una sequenza, che di solito e` diversa da tutte le altre generate da altri seed (a meno che il PRNG faccia cagare).
> >
> > Con un buon PRNG c'e` una distribuzione uniforme dei risultati nella sequenza, si genera una e una sola sequenza per ogni seme diverso (nell'ambito dei semi ammessi, ad esempio se il seme e` un numero a 64 bit ci saranno 264 sequenze possibili) e le sequenze generate tendono a ripetersi il piu` tardi possibile.
> >
> > Pero` magari non c'entra un cacchio perche` intendevi proprio "salt" e io quello lo metto solo sulla roba da mangiare.
>
> Sì intendevo seed. Il fatto è che la prima volta che ho letto del seed doveva essere in un posto che lo chiamava salt, e ho continuato a chiamarlo così.
>
> Il mio intento sarebbe di vedere se un algoritmo generatore di valri pseudocasuali possa servire a trasformare una stringa mnemonica seed=password in una stringa di lunghezza arbitraria da impiegare come OTP.
Possibile, ma non consigliabile. Se generi l'OTP tramite un seed a entropia limitata, perche` il seed scalare alla fine e` un pugnetto di bits, hai tante sequenze quanti seed sono possibili in quella quantita` di bits, che non e` un numero computazionalmente grande. Se poi usi l'OTP, dopo qualche password un man in the middle potrebbe testare i PRNG noti alla ricerca di una sequenza che contiene quella che ha osservato, indovinare quale algoritmo usi per la sequenza (nonche` il seme, cioe` quello che avra` usato nella sequenza che casualmente gli ha dato un match) e infine dedurre le prossime passwords.
Io l'OTP lo genererei da un segnale equivalente al rumore bianco, e poi passerei da SSH per trasmettere l'OTP al server; se pero` non e` possibile trasmettere tutto l'ambaradan in segretezza, c'era anche un modo che non ricordo che dava una sequenza sicura e che si basava su una funzione-seme, piuttosto che su un numero-seme, e sull'impossilita` pratica di dedurre la funzione inversa... solo che non ricordo chi l'avesse inventato o come si chiamasse.
-
Re: Generazione valori casualiScritto daNon Autenticatoil 2013-08-11 15:01:25.0 alle 2013-08-11 15:01:25.0> > > > > Le funzioni che generano caratteri psedocasuali
> > > > >
> > > > > - possono avere come salt una stringa di lunghezza arbitraria?
> > >
> > > Non e` che intendi "seed" quando dici "salt"? Il "salt" e` un'affare che c'entra qualcosa nella crittografia, non nella generazione di numeri pseudocasuali, ma io ho sempre avuto un blocco psicologico insuperabile per la crittografia in quanto trovo sbagliato nascondersi o nascondere qualcosa,
> >
> >
> >
> > > sicche` non sono mai riuscito a studiare granche` di crittografico, e in particolare il concetto di "salt" ricordo vagamente che e` forse un numero da aggiungere a qualcosa di crittografato per crittografarlo meglio, o qualcosa del genere.
> > >
> > > Sul seed invece sono preparato: il seed (inteso come seed di partenza) e` il numero di partenza di una sequenza pseudocasuale, il valore che viene elaborato per ottenere il risultato, assieme a un nuovo seed, la prima volta che l'algoritmo viene eseguito. A ogni seed corrisponde una sequenza, che di solito e` diversa da tutte le altre generate da altri seed (a meno che il PRNG faccia cagare).
> > >
> > > Con un buon PRNG c'e` una distribuzione uniforme dei risultati nella sequenza, si genera una e una sola sequenza per ogni seme diverso (nell'ambito dei semi ammessi, ad esempio se il seme e` un numero a 64 bit ci saranno 264 sequenze possibili) e le sequenze generate tendono a ripetersi il piu` tardi possibile.
> > >
> > > Pero` magari non c'entra un cacchio perche` intendevi proprio "salt" e io quello lo metto solo sulla roba da mangiare.
> >
> > Sì intendevo seed. Il fatto è che la prima volta che ho letto del seed doveva essere in un posto che lo chiamava salt, e ho continuato a chiamarlo così.
> >
> > Il mio intento sarebbe di vedere se un algoritmo generatore di valri pseudocasuali possa servire a trasformare una stringa mnemonica seed=password in una stringa di lunghezza arbitraria da impiegare come OTP.
>
> Possibile, ma non consigliabile. Se generi l'OTP tramite un seed a entropia limitata, perche` il seed scalare alla fine e` un pugnetto di bits, hai tante sequenze quanti seed sono possibili in quella quantita` di bits, che non e` un numero computazionalmente grande.
Lo stesso si può dire per una password con un comune metodo di cifratura: se sai che la password ha al massimo 8 caratteri, puoi provarle tutte. Per questo chiedevo se il seed possa essere una stringa di lunghezza arbitraria.
> Se poi usi l'OTP, dopo qualche password un man in the middle potrebbe testare i PRNG noti alla ricerca di una sequenza che contiene quella che ha osservato, indovinare quale algoritmo usi per la sequenza (nonche` il seme, cioe` quello che avra` usato nella sequenza che casualmente gli ha dato un match) e infine dedurre le prossime passwords.
Per l'uso che ne farei, uno spione non avrebbe accesso all'OTP. Ma l'obiezione è valida in generale, qualora uno volesse usare il metodo per comunicare e quindi trasmettere la chiave.
Trasmettere l'intero OTP è più complicato che trasmettere una password da cui generarlo, per questo mi chiedevo se un generatore di numeri casuali servisse alla bisogna. Da quanto ho letto ci sono molti aspetti da tenere in considerazione.
> Io l'OTP lo genererei da un segnale equivalente al rumore bianco, e poi passerei da SSH per trasmettere l'OTP al server; se pero` non e` possibile trasmettere tutto l'ambaradan in segretezza, c'era anche un modo che non ricordo che dava una sequenza sicura e che si basava su una funzione-seme, piuttosto che su un numero-seme, e sull'impossilita` pratica di dedurre la funzione inversa... solo che non ricordo chi l'avesse inventato o come si chiamasse.

-
Re: Generazione valori casualiScritto daaltgutente che non utieneil 2013-08-11 18:40:08.0 alle 2013-08-11 18:40:08.0Trollate totali: 11540> > > > > > Le funzioni che generano caratteri psedocasuali
> > > > > >
> > > > > > - possono avere come salt una stringa di lunghezza arbitraria?
> > > >
> > > > Non e` che intendi "seed" quando dici "salt"? Il "salt" e` un'affare che c'entra qualcosa nella crittografia, non nella generazione di numeri pseudocasuali, ma io ho sempre avuto un blocco psicologico insuperabile per la crittografia in quanto trovo sbagliato nascondersi o nascondere qualcosa,
> > >
> > >
> > >
> > > > sicche` non sono mai riuscito a studiare granche` di crittografico, e in particolare il concetto di "salt" ricordo vagamente che e` forse un numero da aggiungere a qualcosa di crittografato per crittografarlo meglio, o qualcosa del genere.
> > > >
> > > > Sul seed invece sono preparato: il seed (inteso come seed di partenza) e` il numero di partenza di una sequenza pseudocasuale, il valore che viene elaborato per ottenere il risultato, assieme a un nuovo seed, la prima volta che l'algoritmo viene eseguito. A ogni seed corrisponde una sequenza, che di solito e` diversa da tutte le altre generate da altri seed (a meno che il PRNG faccia cagare).
> > > >
> > > > Con un buon PRNG c'e` una distribuzione uniforme dei risultati nella sequenza, si genera una e una sola sequenza per ogni seme diverso (nell'ambito dei semi ammessi, ad esempio se il seme e` un numero a 64 bit ci saranno 264 sequenze possibili) e le sequenze generate tendono a ripetersi il piu` tardi possibile.
> > > >
> > > > Pero` magari non c'entra un cacchio perche` intendevi proprio "salt" e io quello lo metto solo sulla roba da mangiare.
> > >
> > > Sì intendevo seed. Il fatto è che la prima volta che ho letto del seed doveva essere in un posto che lo chiamava salt, e ho continuato a chiamarlo così.
> > >
> > > Il mio intento sarebbe di vedere se un algoritmo generatore di valri pseudocasuali possa servire a trasformare una stringa mnemonica seed=password in una stringa di lunghezza arbitraria da impiegare come OTP.
> >
> > Possibile, ma non consigliabile. Se generi l'OTP tramite un seed a entropia limitata, perche` il seed scalare alla fine e` un pugnetto di bits, hai tante sequenze quanti seed sono possibili in quella quantita` di bits, che non e` un numero computazionalmente grande.
>
> Lo stesso si può dire per una password con un comune metodo di cifratura: se sai che la password ha al massimo 8 caratteri, puoi provarle tutte. Per questo chiedevo se il seed possa essere una stringa di lunghezza arbitraria.
Il seed e` per forza un numero contenente una quantita` d'informazione fissa, e non arbitraria, pero` se la quantita` e` alta, magari fa al tuo scopo. Boh.
> > Se poi usi l'OTP, dopo qualche password un man in the middle potrebbe testare i PRNG noti alla ricerca di una sequenza che contiene quella che ha osservato, indovinare quale algoritmo usi per la sequenza (nonche` il seme, cioe` quello che avra` usato nella sequenza che casualmente gli ha dato un match) e infine dedurre le prossime passwords.
>
> Per l'uso che ne farei, uno spione non avrebbe accesso all'OTP. Ma l'obiezione è valida in generale, qualora uno volesse usare il metodo per comunicare e quindi trasmettere la chiave.
>
> Trasmettere l'intero OTP è più complicato che trasmettere una password da cui generarlo, per questo mi chiedevo se un generatore di numeri casuali servisse alla bisogna. Da quanto ho letto ci sono molti aspetti da tenere in considerazione.
Si`, a questo punto dovresti usare un generatore che prende come seed un numero grandissimo, ma per esempio a occhio non ti so dire come regisce il MT se riempi il vettore di stato con due numeri grandissimi molto simili, che magari differiscono in un solo bit, cioe` non so se per esempio il seed 123...999 (con un sacco di cifre tra 123 e 999) differisca dal seed 123...998 radicalmente, oppure produca una sequenza quasi uguale che permetterebbe molte collisioni.
Mah, comunque, sempre a occhio, direi che se uno prende il MT e usa una stringa piuttosto lunga per riempire il vettore di stato, l'OTP che si ottiene dalla sequenza risultante darebbe parecchi grattacapi a chi volesse provare a riconoscere la sequenza. Tutto sommato, a queste condizioni potrebbe essere una buona idea, ma per applicarla bisogna usare un'implementazione del MT che lasci al chiamante l'accesso alla funzione lsgenrand, o direttamente al vettore di stato. Se la mt_rand del PHP non lo fa, mi sa che ti tocca reimplementare il Mersenne Twister in PHP. Poi io conosco solo il MT che prenda un seed cosi` lungo, ma magari ce ne sono altri, dovresti cercare e appunto, come hai detto, fare parecchie considerazioni alla luce di quel che s'e` detto.
-
-
-
-
-
-