Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Tutto e di + - Qualcuno vuol provare a decrittare questo file?
Forum - Tutto e di + - Qualcuno vuol provare a decrittare questo file? - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
AldoBaldo (Member)
Guru


Messaggi: 702
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 20:10
Giovedì, 29/01/2015
Scusate se non ho risposto prima, ma ho avuto problemi di accesso alla rete per un paio di giorni.

Innanzi tutto volevo ringraziare chi ha eliminato dal post le lunghissime serie di cifre usando il "paste bin" (non avevo idea che potesse servire a quello).

Pierotofy: "come fai a distinguere quando inizia e finisce una nuova lettera?"

Mi dispiace un po' svelare il "trucchetto", però siccome è tutto sommato banalotto lo svelo comunque: codifico gli indici secondo una base ottale, e uso a caso l'8 o il 9 come delimitatori. Semplice, no? Però, per come la vedo, una mente "hi-tech" non andrebbe mai a immaginare una roba del genere, e forse è proprio lì la validità di soluzioni tanto "basse". Alzi la mano, con onestà, chi ci avrebbe pensato! :heehee:

A latere: in questi giorni ho provato a immaginare un metodo per estrarre a sorte numeri di valore superiore al RAND_MAX tipico del C (32767, per quel che ne so) per poter usare con maggiore efficacia testi chiave di grandi dimensioni. Che ne dite? E' funzionale o è fallato?

Codice sorgente - presumibilmente C++

  1. /*******************************************************************************
  2.    FUNZIONE rand_ul() - 28 gennaio 2015
  3.  
  4.    prototipo:
  5.        unsigned long rand_ul( unsigned long max );
  6.  
  7.    La funzione rand_ul() estrae a sorte un valore unsigned long compreso tra
  8.    0 e max, con max avente valore massimo ULONG_MAX.
  9.  
  10.    Si presuppone che il tipo unsigned long sia costituito da 32 bit e che la
  11.    funzione di libreria standard rand() restituisca valori compresi tra 0 e
  12.    32767. Non credo funzioni in altre situazioni.
  13. *******************************************************************************/
  14.  
  15. #include <stdio.h>
  16. #include <stdlib.h>
  17. #include <limits.h>
  18. #include <time.h>
  19.  
  20.  
  21. unsigned long rand_ul( unsigned long max ) {
  22.     return ((((unsigned long)rand())<<17)+(((unsigned long)rand())<<2)+rand()%4)%max;
  23. }
  24.  
  25.  
  26. int main() {
  27.     /* giusto per un rapido test */
  28.     int i, n, c;
  29.  
  30.     n = 0;
  31.     srand( time(NULL) );
  32.  
  33.     while( 1 ) {
  34.         for( i=1; (i%11); ++i )
  35.             printf( "\n estrazione #%04d = %10lu", ++n, rand_ul(ULONG_MAX) );
  36.  
  37.         printf( "\n\n   Continuo? " );
  38.         if( (c=getchar()) == 'n' ) break;
  39.  
  40.         while( c!='\n' && c!=EOF )
  41.             c = getchar();
  42.     }
  43.  
  44.     return 0;
  45. }



ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 702
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 20:21
Giovedì, 29/01/2015
Con spirito dichiaratamente polemico, anche se tanti potrebbero non essere d'accordo con me, aggiungo che oggi come oggi a preoccuparmi non sono quelli che solitamente vengono additati come "malintenzionati" (anche perché non ho niente, sul computer, che possa far loro gola) ma proprio i governi e le loro "emanazioni", forze speciali incluse. Non so, i miei sensi di ragno mi dicono che non sono lì per il mio interesse...


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 20:29
Giovedì, 29/01/2015
il brutto di srand e rand è che una persona con il tuo stesso compilatore che inizializza srand con lo stesso numero che hai usato tu otterrà le stesse estrazioni "casuali"

PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 702
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 20:39
Giovedì, 29/01/2015
Testo quotato

Postato originariamente da TheDarkJuster:

il brutto di srand e rand è che una persona con il tuo stesso compilatore che inizializza srand con lo stesso numero che hai usato tu otterrà le stesse estrazioni "casuali"



Dunque, se uno avesse un computer sufficientemente potente potrebbe provare una quantità di seed in sequenza fino a incappare in quello giusto? Per fortuna rimarrebbe il problema non secondario di identificare la chiave di riferimento.

Come potrei aggirare la caratteristica di rand() che hai evidenziato? Magari tentando di implementare una funzione simile a rand() ma che usi un algoritmo tutto suo e non condiviso?


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 20:48
Giovedì, 29/01/2015
Sinceramente non mi sono mai interessato a come generare un numero casuale, di veramente casuale ho visto solo i risultati dei miei algoritmi che dovrebbero produrre a parità di input sempre lo stesso output, ma che invece di divertono a prendermi in giro ahahahahah. Comunque wikipedia ha una pagina in cui c'è dello pseudo-codice: http://en.wikipedia.org/wiki/Random_number_generation . In merito a questo argomento ci sono comunque diversi libri se ti interessa....

PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 702
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 21:36
Giovedì, 29/01/2015
Testo quotato

Postato originariamente da TheDarkJuster:
wikipedia ha una pagina in cui c'è dello pseudo-codice: http://en.wikipedia.org/wiki/Random_number_generation .



Grazie per la segnalazione, l'ho letto tutto quanto. Tra i metodi mi ha colpito quello che passa attraverso la misurazione di fenomeni fisici casuali. Un metodo semplice da attuare su un comune portatile potrebbe essere quello di fare riferimento ai campioni di input audio da microfono in ambiente caoticamente rumoroso, oppure di usare come generatore un qualsiasi file musicale, oppure quello di prelevare a intervalli forniti da rand() i campioni dalle predette fonti. Se anche rand() fosse prevedibile, non sarebbe prevedibile la misura dell'ampiezza del campione posto a rand() millisecondi nel file audio xyz ignoto al potenziale decrittatore indesiderato, né quella del campione prelevato dalla scheda audio nel momento xyz da una strada trafficata. Direi che siamo a livelli di paranoia, però a livello speculativo è una discussione interessante.

Edit: Bella la battuta sugli algoritmi! :asd: Tristemente, conosco fin troppo bene il fenomeno.

Ultima modifica effettuata da AldoBaldo il 29/01/2015 alle 21:38


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 22:15
Giovedì, 29/01/2015
Ora che mi ci fai pensare ho visto che con arduino si usa seed/random, ma per inizializzare l'estrazione si passa a seed il valore di ritorno dell'ADC integrato purchè non collegato, così il valore convertito sarà del rumore elettrico dovuto a campi magnetici vari.

PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 702
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 0:26
Venerdì, 30/01/2015
Ho appena piazzato il mio "Codificatore" nella sezione "Progetti". Premetto che per me è un'assoluta novità e che non ho idea di come muovermi. Cosa mi aspetto? Magari a qualcuno viene in mente di dargli un'occhiata, scoprire chissà quante porcherie e darmi una mano a imparare qualcosa di nuovo (alla mia portata, per favore, secondo la politica dei piccoli passi). Chi mi fa da tutor?


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo