Pentru a putea publica, trebuie să vă înregistraţi.
Vf. folderul Spam după înregistrare.
Pune o întrebare

Newsletter


3.6k intrebari

6.8k raspunsuri

15.4k comentarii

2.5k utilizatori

2 plusuri 0 minusuri
353 vizualizari

Alta intrebare la care m-am gandit citind un articol recent de pe site, unde se afirma ca nu ar fi posibil sa generam cu adevarat aleatoriu numere folosindu-ne exclusiv de un PC si de software.

Se sustine ideea ca e nevoie de un dispozitiv hardware de negasit intr-un PC, ori de o modalitate diferita de a ne conecta la ceea ce exista intr-un PC, pentru a putea genera numere aleatorii de o maniera absolut imposibil de descifrat, lucru necesar, de pilda, in generarea cheilor folosite de sistemele criptografice in aplicatii unde securitatea informatiei este de importanta capitala.

Va puteti gandi totusi la vreo metoda?

O posibila varianta, mentionata si intr-un comentariu la respectivul articol, ar putea fi folosirea traseului pe unde se misca cursorul mouse-ului (asta presupune, desigur, ca acel PC, pe care generatorul ruleaza, sa aiba si un operator uman "la butoane", 24x7). Ideea asta e prezenta si prin lucrari de cercetare (de ex. aici). La fel daca folosim momentul apasarii tastelor de catre un operator uman...

Aveti alte idei? Mai e ceva prin banalul PC de care ne-am putea folosi, fara a-i modifica constructia, pentru a avea acces la o sursa de "true, pure randomness"?

Senior (7.8k puncte) in categoria Tehnologia Informatiei
1 0
Zgomotul detectat de microfon sau semnalul detectat de camera video sînt suficiente pentru a genera numere cu adevărat aleatoare, în șiruri neperiodice. Dar nu mă pricep la criptografie și nu știu la ce-ar folosi un număr cu adevărat aleator.
1 0
Acum vad comentariul dvs. De microfon am scris si eu mai jos, dupa dvs.

Nici eu nu ma pricep la criptografie, dar stiu ca foarte multe protocoale folosite in securizarea datelor au nevoie de parametri aleatori pentru a fi de incredere. Asa ca e foarte important sa avem acces la un generator de numere aleatoare care sa fie foarte greu sau imposibil de prezis. Ganditi-va, de pilda, ce s-ar putea intampla (si poate au si fost asemenea atacuri cu ani in urma) daca tokenurile pe care le folosim pentru a ne conecta la sistemele de e-banking si pentru a ne semna electronic tranzactiile ar genera respectivele parole folosind algoritmi predictibili...
0 0
Îmi pare rău, nu știu cum funcționează sistemul și de ce e importantă o sursă hardware de zgomot aleator.
0 0
Un mic exemplu cred ca vi-l pot da eu, detaliile tehnice probabil ca nu mai sunt de actualiate, pentru ca provin de la un curs foarte scurt de criptografie la care am asistat acum in jur de 15 ani.

Un token/e-token bancar genereaza acel asa-numit one time password (OTP) folosind un algoritm criptografic care face uz de un asa-numit seed, o valoare initiala asupra careia se aplica operatiuni matematice destul de complexe. Pentru un id de utilizator anume, la nivelul serverelor bancii, dar si in software-ul e-token-ului, respectiv firmware-ul token-ului, acel seed poate fi generat pe baza momentului de timp la care e utilizat token-ul. Astfel ca atat clientul (token-ul), cat si serverul (generatorul pseudoaleator de la nivelul serverelor bancii), pot genera acel seed si se pot pune de acord la momentul autentificarii clientului.

Daca cumva algoritmul respectiv e spart, in principiu un atacator poate genera parolele pentru orice id de utilizator.

Daca un token / e-token ar incorpora o metoda trully random de a genera acel seed (cum anume ar putea face asta simultan la distanta, si serverul bancii, nu stiu), acest pericol ar disparea.

Din cate imi amintesc de atunci, riscul e minimizat, pe de o parte, prin folosirea de operatii matematice foarte complexe, cat si prin limitarea validitatii unei OTP la doar cateva secunde de la generare...

Repet, e posibil ca astea sa fie chestiuni expirate de ani buni...
1 0
Mulțumesc, acum înțeleg cum funcționează OTP-ul. Am și eu aparat de generat tokenuri de la o bancă, ca un minuscul calculator de buzunar, și mă întrebam cum procedează. Dacă se bazează pe un seed bazat pe timp, atunci e clar. Dar dacă s-ar baza pe o sursă de zgomot cu adevărat aleator atunci nu mai știu cum ar funcționa. Ar trebui ca banca și tokenul meu să aibă acces la același zgomot.

Alte bănci folosesc OTP-uri pe care mi le transmit prin email sau SMS, dar asta presupune că între bancă și mine există un al doilea canal de comunicare, unul greu atacabil.
1 0
Da. Acum, ca tot vorbim despre asta, ma gandesc ca ar fi simplu ca prin internet un e-token si un soft de banca sa aiba acces la aceeasi sursa de zgomot. Doar ca apare discutia despre securizarea sursei de zgomot si a canalului de transmitere a informatiei catre e-token. Back to square one :)

2 Raspunsuri

2 plusuri 0 minusuri
Fara o sursa externa de "randomizare" (de ex. un material radioactiv) nu vad vreo solutie pentru "true, pure randomness".
Junior (820 puncte)
1 0
Pai tocmai asta cred ca e ideea, de a incerca sa gasim o sursa externa, usor accesibila, de randomizare, de care sa ne putem folosi cu un amarat de PC si cu un soft. De exemplu, cu microfonul din dotare, am putea sa incercam sa capturam sunetul de fond din curte, care ar trebui sa aiba unele caracteristici pur aleatorii... Asta e o idee pe care am gasit-o, dupa ce am mai citit putin, pe random.org...
0 0
Sunetul de fond din curte are un "patern", o functie periodica, mai ales daca stai in acelasi loc.Un material radioactiv, in cantitate minuscula(astfel incat sa nu afecteze sanatatea), ar putea da randomizarea despre care scrii.Nu e perfecta dar e peste "limita de intelegere" a fiintelor umane.
0 plusuri 0 minusuri

Este un pic de confuzie la mijloc – un numar generat aleator este ceva, iar un cod de criptare este cu totul altceva – cele doua nu au nici o legatura.
Orice PC are un generator de numere aleatoare, pana chiar si vechile calculatoare care opereaza pe 8 biti au asa ceva (Cobra, HC, Sinclair, Spectrum, etc.).
Pentru situatia mentionata (PC), un numar aleator se poate genera cu orice aplicatie care are acces la componentele Visual Basic “RND” si “RANDOMIZE”. De fiecare data cand este apelata functia de generare, este obtinut un numar aleator (la intamplare) SUBUNITAR, cuprins intre 0 (zero inclusiv) si 1 (unu exclusiv).
“RND” este o functie, iar “RANDOMIZE” este o declaratie. Este de retinut totusi un aspect destul de important – daca se foloseste doar functia RND, vor fi generate mereu aceleasi secvente de numere la fiecare utilizare a programului. Pentru a avea intr-adevar numere diferite, mai intai trebuie apelata declaratia RANDOMIZE – numai dupa aceea numerele generate de functia RND vor fi diferite de fiecare data.

… am vrut sa atasez o imagine cu dimensiuni decente (nu cat un timbru) dar site-ul nu are o optiune de “browse” pentru asa ceva – sorry

Asadar, PC-ul are tot ce-i trebuie pentru a genera numere aleatoare. Daca se doreste ceva mai complex, se pot face tot felul de artificii, de exemplu se genereaza (si memoreaza intr-o variabila declarata) 3 numere aleatoare si apoi se inmultesc aceste numere (rezultat in virgula flotanta, deoarece RND genereaza cel putin 6 zecimale).

Novice (105 puncte)
editat de
0 0
Confuzia e la dumneavoastra, zic eu."True random" e greu de inteles.Am putea folosi un creier evoluat, dar .... ce inseamna RANDOMIZE?Nu cumva o intindere infinita a unei "ERORI|?
0 0
Daca o eroare poate fi intinsa la infinit, este cel mai bun exemplu pentru ce am mentionat anterior.
Inca o data – un numar aleator si un cod de criptare sunt cu totul diferite, nu au nici o legatura intre ele.
Cat despre un creier evoluat … eu cred sincer ca mai intai ar incerca sa genereze un numar aleator inainte de a trage orice fel de concluzie – altfel, sansele ca acea concluzie sa fie gresita sunt maxime.
...