Newsgroup: it.hobby.fai-da-te
Titolo: Algoritmo fai da te

Data una stringa numerica di x cifre decimali, diciamo 18, è
 possibile risalire all'algoritmo che la ha generata?
 
La risposta è logicamente no, ma supponiamo di averne 10.000 di
 queste stringhe, quale è la risposta?
 
La stringa ha delle cifre di controllo logicamente è un codice
 diciamo di sicurezza, siccome so che siete curiosi vi dico che
 non è di nulla ma un quesito che mi ha fatto un amico per pura
 curiosità a cui non so rispondere.
 
Grazie 
 
-- 

El_Ciula ha scritto:

direi ch'è pane per il matematico esoterico del ng: socrates
solo una mente iperatrofizzata come la sua puo estrapolare
il risultato...sempre che l'amico della sua mamma smetta di
importunalo sessualmente
 


Penso che la risposta sia comunque no, qualsiasi sia il numero 
di stringhe a disposizione anche se non so dimostrarlo 
formalmente. Per la dimostrazione forse sul gruppo di 
matematica ti rispondono.
 
Dal punto di vista pratico gli algoritmi in uso non sono 
infiniti, probabilmente è implementata qualche variante di 
algoritmi noti. E allora forse testandoli uno a uno si trova. 
C'è però sempre la possibilità di un algoritmo originale che 
probabilmente discenderà da qualcuno noto ma dopo troppi 
passaggi ed elaborazioni potrebbe non essere individuabile.

 ha scritto:

No, se si suppone un codice di sicurezza l'algoritmo penso sia x
 forza proprietario se no che sicurezza c'è?
Quello che chiedo io è se esiste qualche software o metodo che fa
 una comparazione tra i codici x capire la natura delle
 elaborazioni numeriche applicate in generazione.
Mi chiedo, anzi ci chiediamo in 2 ormai, figuriamoci se non ci ha
 sbattuto la testa qualcuno ad alti livelli x motivi
 scientifici/militari.
-- 

   queste stringhe, quale è la risposta?
 
secondo me si dovrebbe poter fare, se l'algoritmo segue una logica 
matematica. Che si possa fare non è detto che poi ci si riesca, ma 
avendo tante soluzioni di combinazioni possibili (10000 stringhe sono 
tantissime) credo che si possa arrivare alla soluzione, quando dipende 
dalla difficoltà.
Esiste "un qualcosa del genere", l'algoritmo di hashing, dove viene 
generata una stringa da un file, per poi poter controllare se stato 
alterato (contro modifiche fatte da persone o altro)
Questi algoratmi nei tempi sono stati cambiati perchè si riusciva a far 
creare la stessa stringa modificando il file, di conseguenza resi 
insicuri, ovviamente oggi è molto più difficile :)
 
 
Poi sono tantissimi i giochi dove danno le soluzioni per scoprire come 
sono state generate, ovviamente la difficoltà è minore.
 

Il 11/02/23 21:31, El_Ciula ha scritto:

E' una bella domanda, dipende dalle intenzioni e dalle competenze di chi 
ha creato l'algoritmo.
Se si dispone di un discreto numero di casi e, soprattutto, si dispone 
delle sorgenti che li hanno generati (e di un computer all'altezza) c'e' 
qualche probabilita' di risalire all'algoritmo.
Trattandosi di sole cifre decimali tendo ad escludere che si tratti di 
un qualche tipo di hash forte.
 
angelo

  scientifici/militari.
 
  Alan Turing con la sua macchina enigma forse potrebbe entrarci in
qualche modo. Non me ne intendo ma credo che qualsiasi algoritmo possa
esser craccato, c'e' solo da capire quanto tempo ed energie ci vogliono
e se il rapporto risultato/lavoro e' maggiore di uno.
 
  Un saluto,
 
 
-- 
Gianfranco Bertozzi

   Alan Turing con la sua macchina enigma forse potrebbe entrarci in
 
  Correggo per precisione: la macchina non era sua, lui ideo'
l'algoritmo per craccarla. Scusatemi.


 ha scritto:

Infatti noi si ragionava proprio per discorsi bellici e di
 sicurezza, ho detto apposta decimale per semplificare il
 quesito.
Ci vorrebbe che capitasse qualcuno che mastica di sicurezza.
L'esempio della macchina che decifrava l'enigma è buono.
-- 

Per rispondere  vogliamo la medaglia Fields
 
 
-- 
 
 
----Android NewsGroup Reader----
https://piaohong.s3-us-west-2.amazonaws.com/usenet/index.html
 

 forza proprietario se no che sicurezza c'è? 
 
Bruce Schneier, uno dei massimi esperti mondiali di crittografia, dice che una delle
regole fondamentali della crittologia è che per essere sicuro un algoritmo deve essere
pubblico perchè questo permette l'analisi della sua sicurezza da parte di studiosi indipendenti.
Il motivo è che un algoritmo di cifratura o generatore pseudorandom o di hash
deve avere una sicurezza intrinseca dimostabile matematicamente per mezzo della
crittoanalisi e non solo per il fatto che viene manetenuto segreto.
L'unica cosa segreta devono essere le chiavi.
 
A questo proposito ricordo l'enorme danno causato dal costruire algoritmi alla cazzo.
Telecon Italia molti anni fa forniva ID e PW numerici per accedere al servizo Videotel e la
PW preimpostata era un numero di 4 cifre ottenuto dalla somma e dal prodotto
delle cifre dell'ID.
Quando si è scoperto questo fatto, l'hobby era diventato provare ID a caso con la
PW calcolata e la pesca era molto facile perchè la maggior parte degli utenti lasciava
la PW originale. Ma non solo, esistevano migliaia di account non ancora assegnati ma
già attivi.
ID e PW permettevano di accedere a servizi a pagamento anche piuttosto cari.
Per esempio visure di targhe di veicoli, o visure di camera di commercio al prezzo di 20 o 30
mila lire al colpo, o servizi di prenotazione di biglietti aerei, o servizi di chat a centinaia di lire al minuto.
Così era facile che ad un account venissero addebitate decine di milioni di lire, che ovviamente
Telecom Italia non poteva riscuotere ma che in parte doveva pagare all'ente che forniva il servizio.
Si parlava di un danno complessivo per T.I. di centinaia di miliardi di lire anche perchè
la pacchia è andata avanti per almeno 3 o 4 anni!
E tutto per aver inventato un algoritmo di hash senza criterio.

 ha scritto:

Grazie, quindi gli algoritmi in teoria sono noti ma le chiavi no.
-- 

  possibile risalire all'algoritmo che la ha generata?
 
Cos'e' una "stringa" per te?
 
un numero fatto di X cifre, o una sequenza di numeri piu' o meno
lunghi?
 
se e' un numero, lungo a piacere, non si puo' dire niente.
 
Se e' una sequenza, piu' la sequenza e' prolungata piu' magari
si puo' risalire a un eventuale algoritmo.
 
Esempio:
 
123456789012345678
123456789012345677
123456789012345676
123456789012345675
 
scopri l'algoritmo
 
 
-- 
"Le Mondine" Fan Club
 
 

 ha scritto:

Molto complesso ci vuole Socratis.
 
 
-- 

 Grazie, quindi gli algoritmi in teoria sono noti ma le chiavi no. 
 
Esattamente è questo che dice la scienza della crittografia.  Non
esiste un buon algoritmo se non è di pubblico dominio e non sia stato studiato
e analizzato da esperti.
La mia opinione personalissima però è leggermente diversa, ossia se riesci a
mantenere veramente segreto un algoritmo, allora aumenti la sicurezza complessiva
di un sistema.
Logicamente parliamo di algoritmi meno idioti di quello del vdeotel!
E per mantelerlo segreto bisogna che il programma sia resto inaccessibile,
per esempio nella memoria protetta di un microcontrollore.
 
Ad ogni modo, per restare off topic ecco la notizia dell'epoca.
https://ricerca.repubblica.it/repubblica/archivio/repubblica/1991/07/13/pirati-del-videotel-inventavano-clienti.html
 
Notare che il p.m. era un nome ancora sconosciuto: Antonio Di Pietro.
E poi c'è qualche imprecisione. Carol Alt era in prov. di Vicenza ma non era di Montecchio, dove
invece c'era la mitica Led Zeppelin. Inoltre c'era Asia Argento (autentica) e Satana, ossia
Marco Dimitri che faceva proseliti per i Bambini di Satana, 
Bei tempi! Almeno una volta al mese c'era un raduno degli utenti delle chat in giro per l'Italia.
Tutto pagato, ovviamente, dai proprietari delle chat che col trucchetto delle password guadagnavano
come maiali. Grazie all'agoritmo scemo :-)
 
 
 

 ha scritto:

Mizzega che storia...
-- 

  queste stringhe, quale è la risposta?
 
La risposta è che nell'epoca dei social tutti amano usare i paroloni
tipo "algoritmo", ma magari forse quelle sono stringhe random.

 ha scritto:

Si in campo militare e sicurezza?!
-- 

 Si in campo militare e sicurezza?!
 
"In campo miliare" non vuol dire una ceppa, matematica e informatica
sono le stesse anche con le mostrine sulla giacca.

 di un sistema.
 
questa è giusta, tanto la perfezione non la raggiungerai mai, ma 
l'errore subito :)


Ma qui si potrebbe aprire un'infinita discussione filosofica sulla casualità.
Esiste il caso? O noi chiamiamo caso tutto ciò che non siamo capaci di spiegare?
Per noi il risultato del lancio di un dado è casuale.
Ma se conoscessimo esattamente con precisione atomica la geometria
di un dado, il moto che le imprime la mano, le caratteristiche della superficie dove
rimbalza, dell'aria, ecc. ecc, riusciremmo a sapere con certezza il punteggio farà
perchè è solo una questione di leggi fisiche.
Considerato che non sapremo mai calcolare tutte le variabili, diciamo che il
risultatò sarà dovuto al caso.
Allo stesso modo se non abbiamo conoscenza dell'algoritmo di un generatore di numeri
pseudorandom e del "seme" iniziale, quella sequenza di numeri ci sembrerà casuale anche
se in realtà è assolulamente deterministica.
Comunque secondo la fisica pare che il mondo subatomico sia regolato dalla meccanica quantistica
dove funziona tutto un po' per caso. Tant'è che i generatori di "veri" numeri casuali sono basati
sullla rivelazione di particelle emesse da sostante radioattive che sono effettivamente il risultato
di fenomeni subatomici quantistici.

 ha scritto:

Nei microcontrollori per generare un numero "casuale" spesso si
 usa come seme il rumore captato da un ADC lasciato aperto, ma chi
 ne sa scrive che non è del tutto randomico, tu ne
 sai?
-- 

 sai? 
 
Effettivamente i bit meno significativi di un ADC sono affetti da rumore.
In particolre gli ADC integrati nei micro. Rumore che in minima parte è rumore termico o
comunque rumore intriseco dei componenti elettronici analogici e che può definirsi
come tensione variabile in modo casuale,  ma per la maggior parte sono disturbi causati
dalle commutazioni dei circuiti digitali presenti sullo stesso chip e che per definizione
non sono casuali.
In queste situazioni i numeri che leggi da un ADC a vuoto non sono completamente  casuali ma
sono una fonte di entropia che va bene per generare numeri veramente casuali per usi pratici.
A proposito racconto un aneddoto.
Una volta ho avuto per le mani un token hardware di autenticazione che in risposta a una sequenza di
bit inviatigli produceva una stringa apparentemente infinita di bit causali che venivano riconosciuti dal
sistema a cui veniva collegato
come una chiave.
Fortunatamente produceva i bit abbastanza velocemente, circa 100k al secondo così
era più facile analizzarli in grossi volumi.
Dopo qualche tentativo infruttuoso di cercare qualche relazione tra i bit immessi e quelli in uscita  mi
sono accorto che la frequenza degli 0 era leggermente superiore a quella degli 1, una differenza inferiore al 1%.
Cosa che mi ha fatto sospettare a dei bit generati da qualche sistema analogico non perfettamente
bilanciato. La conferma l'ho avuta riscaldando il token e osservando che questo sbilanciamento variava
di pochissimo ma in modo inequivocabile, cosa che un generatore di numeri pseudocasuali digitale
non avrebbe  mai fatto.
A questo punto mi sono messo ad analizzare la distribuzione statistica di ogni singolo bit della sequenza,
facendola ripartire da capo ogni volta. Analizzando miliardi di bit, è risultato evidente che la maggior parte
dei bit confermava la deviazione statistica già vista, ma in alcune posizioni  della sequenza
la frequenza di 0 e 1 era stabilmente vicinissima al 50%. Da qui l'ipotesi che queste posizioni contenessero dei
bit generati per via digitale e formassero la "firma" di autenticazione del token, cosa poi verificata e che
ha portato al cracking completo del sistema.
Morale: i progettisti del token avevano usato un generatore analogico di numeri (bit) casuali convinti
che generasse veri numeri casuali in mezzo ai quali nascondere il codice di autenticazione in modo
pressochè impossiibile da scoprire. In realtà è stata una piccola deviazione statistica dei bit casuali
proprio del generatore analogico ad essere la falla dei sistema.

 ha scritto:

Che poi basterebbe introdurre tempi di stop se viene interrogato
 di nuovo doppo i tentativi di un uso consono.
--