True random number generator

poruka: 20
|
čitano: 2.339
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
5 godina
offline
True random number generator
Pozdrav ljudi, moze jedan savjet?!
Zelio bih napraviti true random number generator, tj. zelim da napravim true random seed za python scriptu.
(u pitanju je hobi projekat, nista posebno)
Imam dvije ideje.
Jedna je da uz pomoc RPi kamere i Python OpenCv pratim baloncice u boci ulja, koje bi pravio sa akvarijum pumpicom - i da na osnovu položaja generisem seed.
A druga ideja je da narucim jeftini gajger brojac sa aliexpress-a, i da onda brojim otkucaje na izlazu za piezo zujalicu - u ovom slucaju bi morao pronaci neki alpha emitter, da ga stavim uz cijev gajger brojaca, čisto da povecam broj otkucaja, jer pozadinsko zracenje proizvodi malo otkucaja - i onda na osnovu ovoga proizvedem seed.
Da li bi ovo bilo dovoljno random da bude true random number generator.
Pitam jer znam da postoje sistemi gdje kamere prate lava lampe i generišu seed na osnovu položaja voska u lampama - to sam negdje pročitao, nekad ranije.

Znam da je moguce čitati slobodan arduino analogni ulaz, ali to nije dovoljno random, obicno se brojevi zadrzavaju u malom rasponu, mogao bih citati prilicno osjetljiv senzor vlage, ali i on ima isti problem kao i pristup iznad, obicno su brojevi dugo vremena u malom odredjenom rasponu.

Volio bih cuti ideje za ovaj projekat?!

Za true random number generator, najludje ideje su obicno dobre! Mogu ja otici online, i naci najbolje rjesenje (na hackaday ili sl.), ali posto je u pitanju hobi projekat, sa tim nista ne dobijam. Hocu sam da uradim i da se malo zabavim :D
 
0 0 hvala 0
12 godina
offline
Re: True random number generator

Znaš li kako (stvarno) radi RND i što je seed?

Ovako RND je quazi RND tj ako znaš seed tad znaš redoslijed brojeva. Zato se randomizira seed... Ali ne tako da kemijaš nekim vanjskim generatorom (jer tad ne možeš dokazati da je to RND gen tj sve se može...)

Programerski... Npr uzmeš trenutni timestamp može RND gen koji će uz time dodati kao sumu quazi slučajan broj a ako je seed sam time tad ovisi o clocku kad upalim računalo ili app i time imaš skoro pravi RND.. tj dodaš toliko levela RND omizacije da postane stvarno RND i tad to koristiš za seed.

Naravno može i bilo koji drugi način npr webcam gleda ulicu i ovisno o boji auta da broj.. no tad nemaš dokaz u kodu da se sve generira RND jer ulica može biti filmski studio..fejk. dok Open softom tj kodom dokažeš da nema tajni broj kojeg ti znaš...

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
5 godina
offline
Re: True random number generator
Da pravim neku online lutriju, onda bih uzeo neku python biblioteku koja radi upravo to što si spomenuo da generisem seed i to je to (posebno u python-u, to je super jednostavno).
Ja hocu da se zajebavam sa nacinima za generisanje pravih random brojeva, gdje bi generator bio skriven od pogleda i u kutiji, a za izlaz cu napraviti mini web sajt (i vjerojatno ga ugasiti za koji da kad mi dosadi). Niti ce ko pokusavati da provali seed, niti treba kome da objasnjavam da je u pitanju pravi radom generator.

Edit:
mislim da je u pythonu cak dovoljno uraditi samo ovo: random = random.SystemRandom()
Ali nije to to sto ja zelim da uradim
Poruka je uređivana zadnji put pet 24.9.2021 13:55 (rangoj).
3 godine
offline
True random number generator

Razmisli o pracenju prirodnih procesa: mjehurici u vodi, pozadinski sum bijelog zvuka itd. mogucnosti je "bezbroj", ali nisu sve tako dobre, pouzdane, niti daju uniformne rezultate.

 

Npr zelis "random" broj izmedu 1 i 10: mozda zaista dobijes "nasumicno" 6, ali kad pokrenes taj svoj generator, ako on nasumicno pljuje van

1 3 6 6 3 6 6 6 1 

onda i nije bas koristan :)

 

Za hobi dakle bilo sto moze posluziti pod uvjetom da dovoljno istrazis. Za lutriju ili nagradnu igru se ne isplati zajebavati s time, uzmes neku poznatu biblioteku i rokas.

 

Za ozbiljne primjene tipa kriptografija, novci i sl. postoje specijalizirani uredjaji, ali mozda bi ti jeftinije bilo nabaviti najnoviji RTX 3090 :)

 
0 0 hvala 0
5 godina
offline
Re: True random number generator
"Npr zelis "random" broj izmedu 1 i 10: mozda zaista dobijes "nasumicno" 6, ali kad pokrenes taj svoj generator, ako on nasumicno pljuje van

1 3 6 6 3 6 6 6 1 "

To mi je jasno, od toga ne mogu pobjeći - samo ce seed biti radom.
Defintivno cu naruciti mali gajger poput ovog ovdje, i naci mali izvor zracenja, pa da vidim koliko cu otkucaja dobijati u sekundi, mozda budem mogao raditi direktno sa brojem koji dobijem iz brojaca - nemam predstavu kakav je izlaz, koliko cesto otkucava.

https://a.aliexpress.com/_mrNyigJ
12 godina
offline
True random number generator

Check my signature.

What is the only way to generate a truly random string? Put a Windows user in front of VI and tell him to quit.
 
5 0 hvala 0
5 godina
offline
Re: True random number generator

Moderni procesori imaju implementiran true random generator.

Seed ti ne treba za true random. Dali razumješ zašto seed služi?

https://www.youtube.com/channel/UCgos5WloYoxCvCeUIi47ZxQ
5 godina
offline
Re: True random number generator
Ma razumijem, ali ne znam kako da generisem vise brojeva iz +- 150 otkucaja gajgera u sekundi, bez da koristim neki niz i seed.

Kako da iz tog jednog slucajnog broja dobijem 50 brojeva? Vjerovatno bi mijenjao niz sa nekom funkcijom. Nisam jos došao do tog dijela.
5 godina
offline
Re: True random number generator
andrijam kaže...

Moderni procesori imaju implementiran true random generator.

Seed ti ne treba za true random. Dali razumješ zašto seed služi?

 

Ne razumijem kako moderni procesori mogu imati true random

number generator? To je pseudorandom, osim ako ne koriste mozda neka logicka kola koja prebacuje pozadinsko zracenje ili nesto slicno?! O_o (mozda i imaju, mrzi me da trazim, ali o tome nisam citao)

Poruka je uređivana zadnji put pet 24.9.2021 22:38 (rangoj).
12 godina
offline
Re: True random number generator

točno nije pravi random nego pseudo-quazi, jer radi i dalje na istoj osnovi, no seed se izračunava internim clockom-timerom od trenutka paljenja što osigurava randomizaciju...

.. npr za izvlačenje loto brojeva imaš neku osobu i neki button-taster koji ta osoba stisne u nekom trenutku i tako ovisno o milisekundi dobiješ drugi seed, zato takva osoba stisne button, tome služi :)

.. no i to može biti fejk, tj na tv prijenosu mi vidimo button ali nemamo nikakav dokaz da taj button ima ikakve veze s generiranim brojevima tj da nije fejk itd.. tj to osigurava komisija koja sjedi u studiju koji opet mogu biti fejkeri itd.. tj kraće, kao 'problem triju vojski' koji kao logička pitalica ostaje nerješiv, tj u nekom trenutku nekome moraš 'vjerovati' jer ne možeš sve provjeriti-kontrolirati. Npr u trgovini kupiš kilu šećera, postoji vaga i može provjeriti jel stvarno kilogram.. no što ako je vaga pogrešno kalibrirana? vjerujemo da je ispravna .. s time se krene..

 

-svaki različit seed koji izabereš za rnd će dati drugačije rezultate-redosljed brojki. Ako izbor seeda prepustiš nekoj slučajnosti kao button-vrijeme u milisekundi kad osoba pristisne taster ili od paljenja računala tad si recimo osigurao da kao npr programer nisi utjecao na izbor seeda, tj tad ni ti kao programer ne znaš što će biti seed.. to se tad smatra 'pravim' randomom, tj kad netko nema kontrolu-mogućnost manipulacije izborom a time i rezultatom.. tj eliminiraš to drugim randomom, kao što želiš mjehurićima zraka u fluidu i sl. ali to nije programersko riješenje tj umjesto programskim kodom to riješavaš nekom zatvorenom kutijom, vanjskim izvorom koji kao sve ostalo može biti fejk.. kao što znamo da mađioničar nije stvorio zeca u šeširu, da je to trik, mada izgleda dobro.. 'stvarno'. :)

 

btw, postoje različiti nizovi, npr loto, nema ponavljanja izvučenog broja jer samo jednom je jedan broj-kuglica izvučena, drugi slučaj je pismo-glava ili kocka, kad neograničeni broj puta možeš ponoviti, kao beskonačno generiranje znamenki ili izračun broja pi na tisućitu decimalu..

 

broj pi je ono što se korisit kao jedini neponovljivi niz, jednistven, za kriptografiju ili randomizaciju.. ali je fizički proglem računala što ima ograničen broj decimala ili veličinu podataka s kojim može računati, npr 32-64bitni dword-long.. može to biti 1k podatak, može tisuću znamenaka, no tad su opet ograničeni s krajem.. ili preciznost kojom sempliraš digitalizirani uzorak do tog teoretskog extrema da ne možeš čak i da imaš takvo računalo zapisati takav beskonačan broj jer bi prije potrošio sve atome u svemiru za zapis.. a broj ide dalje.

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
5 godina
offline
Re: True random number generator
Hvala za objašnjenje, neke od stvari znam od ranije.
Ja zelim random generator u školskom smislu, znači da je slučajno stvarno slučajno i da ne postoji deterministicki faktor koji ga može izračunati unaprijed u teoriji.

Znam od ranije da se PI koristi za niz, i razumijem da se koriste razno razne stvari da se napravi "kobajagi" random broj, od pomijeranja misa, pa do mjerenja vremena raznih akcija na PC. Ko u ostalom nije pakovao nekad fajlove sa True Cript pa onda program traži da pomijeras mis sto duže da proizvede ključ za enkripciju.

To je sve ok, za nekoga ko će praviti takav software, ali to nije ono što mene interesuje - niti želim praviti nesto slično, biti razumijem u detalje kako radi.
Hoću da generisem random brojeve koji su u kvantnom smislu random! Zanimaju me najbolji načini da se takavi brojevi proizvedu.
4 godine
offline
Re: True random number generator

@synmaster ahahaha... ovo je zapravo genijano :) (potpis)

NULL!=NULL
Poruka je uređivana zadnji put sub 25.9.2021 14:39 (VladRi).
11 godina
offline
Re: True random number generator
rangoj kaže...
Pozdrav ljudi, moze jedan savjet?!
Zelio bih napraviti true random number generator, tj. zelim da napravim true random seed za python scriptu.
(u pitanju je hobi projekat, nista posebno)
Imam dvije ideje.
Jedna je da uz pomoc RPi kamere i Python OpenCv pratim baloncice u boci ulja, koje bi pravio sa akvarijum pumpicom - i da na osnovu položaja generisem seed.
A druga ideja je da narucim jeftini gajger brojac sa aliexpress-a, i da onda brojim otkucaje na izlazu za piezo zujalicu - u ovom slucaju bi morao pronaci neki alpha emitter, da ga stavim uz cijev gajger brojaca, čisto da povecam broj otkucaja, jer pozadinsko zracenje proizvodi malo otkucaja - i onda na osnovu ovoga proizvedem seed.
Da li bi ovo bilo dovoljno random da bude true random number generator.
Pitam jer znam da postoje sistemi gdje kamere prate lava lampe i generišu seed na osnovu položaja voska u lampama - to sam negdje pročitao, nekad ranije.

Znam da je moguce čitati slobodan arduino analogni ulaz, ali to nije dovoljno random, obicno se brojevi zadrzavaju u malom rasponu, mogao bih citati prilicno osjetljiv senzor vlage, ali i on ima isti problem kao i pristup iznad, obicno su brojevi dugo vremena u malom odredjenom rasponu.

Volio bih cuti ideje za ovaj projekat?!

Za true random number generator, najludje ideje su obicno dobre! Mogu ja otici online, i naci najbolje rjesenje (na hackaday ili sl.), ali posto je u pitanju hobi projekat, sa tim nista ne dobijam. Hocu sam da uradim i da se malo zabavim :D

 Radis li ovo u sklopu fakulteta? Moj savjet ti je da se za pocetak upoznas s pseudo i kvazi RNGovima i na koji se nacin validira njihova "kvaliteta". Bez dublje teorijske pozadine neces moci kvalitetno opisati ono sto si napravio, a postoji i sansa da ces nesto pogrijesiti.

 

Ovo nije obicno strikanje koda i zahtjeva akademski pristup 

You have to be odd to be number one
5 godina
offline
Re: True random number generator

Pričaš glupost, koje bi možda prošle prije 30 godina.

https://spectrum.ieee.org/behind-intels-new-randomnumber-generator.

I druge arhitekture procesora imaju svoje verzije implementacije.

Sam seed se izračunava kako god želiš. Broj tikova od kada je procesor aktiva, broj milisekundi od 1.1.1970, Iz pomicanja miša ili klikanja tipkovnice.

Ili ponovno iz random generatora.

https://www.youtube.com/channel/UCgos5WloYoxCvCeUIi47ZxQ
12 godina
offline
Re: True random number generator
andrijam kaže...

Pričaš glupost,,,

 -? u čemu je problem? implementiran seed generator u cpu je identičan algoritmu koji se koristi za seed-randomizaciju samo na hw osnovi kao i ostali fičeri npr enkripcija.. sve to je soft, razlika je samo klasičan soft ili u siliciju-chipu.. no isti smisao-algoritam-pravilo.

-svaki seed čim postoji daje kvazi rnd ne pravi, tj ponovljiv je i može ga se zloupotrijebiti npr 'pogoditi'.. zato se skriva i ugrađuje u cpu kako programer ne bi imao utjecaj na izbor seeda, odnosno kad se to napravi u klasičnom softu tad se može provjeriti, kao što se ostalo može provjeriti u opensoftu tj kodu dostupnom javnosti, nasuprot nečem zatvorenom nad čime nemaš kontrolu .. a tu je cpu ili neki chip-generator 'rizičniji', jer svi imaju neki extra-fičer koji se nakon više godina pojavi u medijima kao backdoor i sl exploiti.. recimo intelchipset-mreža i moguć pristup drugoj strani koja to može iskoristiti.

 

-možeš kritizirati, ne slagati se, ispraviti netočno.. no čemu riječ glupost? može li se nešto napisati bez takovg vrijeđanja sugovornika? Može li identičan post bez riječi glupost?

-ako može, tad pokušajmo tako.. ako ne može, tad nije smisao argumentacija nego vrijeđanje..

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
Poruka je uređivana zadnji put ned 26.9.2021 10:28 (ihush).
3 godine
offline
True random number generator

CPU-i nemaju "true" RNG, ali imaju "kriptografski siguran" RNG, što je dovoljno dobro (jer se to smatra najzahtjevnijom mogućom upotrebom). Ako je dovoljno dobar za enkripciju, dovoljno je dobar i za npr loto, nagradne igre, selekciju random boje u nekoj igrici i sl. 

 

Ono što suvremeni procesori imaju jest hardware random number generator, koji je između ostalog seedan tvornički zapečenim svojstvima čipa, pa bi kao takav trebao

  • dati izvor nasumičnosti koji ne ovisi o OS-u (Linux/Windows, Mac)
  • biti različit za svaki čip (pa time i "nepredvidiv")
  • biti nedostupan vanjskom promatraču (npr rastaviš CPU i tražiš taj broj - nema ga)
  • doprinijeti nasumičnosti tako što koristiš više izvora, npr taj zapečeni seed ukombinirano sa trenutnim vremenom i sl.

 

Problem s oslanjanjem na tako nešto tajno i poznato samo proizvođaču je što tada moraš vjerovati tom proizvođaču da nije surađivao s NSA ili da su jednostavno dovoljno sigurni da ih NSA nije uspjela "zaobići". A povjerenje u slučaju kriptografije je no-no

Poruka je uređivana zadnji put ned 26.9.2021 22:49 (encoding).
 
3 0 hvala 0
13 godina
offline
Re: True random number generator
rangoj kaže...
Ma razumijem, ali ne znam kako da generisem vise brojeva iz +- 150 otkucaja gajgera u sekundi, bez da koristim neki niz i seed.

Kako da iz tog jednog slucajnog broja dobijem 50 brojeva? Vjerovatno bi mijenjao niz sa nekom funkcijom. Nisam jos došao do tog dijela.

To je kao da pitaš kako da od litre benzina dobiješ pun rezervar - razliku možeš naliti vodom, ali onda više nemaš pun rezervar benzina.

 

Ne znam ti točne formule jer sam teoriju informacija odavno učio i nikad mi nije previše zanimljiva, ali može se točno izačunati koliko ti tvoj generator može brojeva izbaciti na sat, da su oni true random. To se računa preko entropije i svaka matematička operacija kojom pokušaš broj brojeva u jedinici vremena povećati iznad te brojke, više ne daje true random brojeve. 

Privatne poruke su za privatne razgovore. Ne odgovaram na općenita pitanja vezana uz neku temu.
2 tjedna
offline
Re: True random number generator

Znanstvena zajednica kaže da jedini pravi način generiranja radnom brojeva jest kvatno računalo, sve ostalo ima pravila koje ti ionako nitko neće iči dešifirati:=)

 

Ideja ti ide u skladu kako sam ja pristupio riješenju imati dinamički seed, no ispalo na kraju nepotrebno jer ionako matematičari i bez toga ućine dovoljno random.

 

Jedino u prirodi što je slučajno, za sada je kvatna fizika, ako želiš pravi radnom generator brojeva onda bi trebao ići izmjeriti momenat ili poziciju, kvatne čestice:)

 

I da ti dadem disklajmer, nemam blagog pojma o čemu pričam sa znanstvene strane, pričam ti onako sa laičke.

 

Nemoguče je i nepotrebno je:) Matematičari su dovoljno pametni da učine simulaciju slučajnosti:)

 

 

5 godina
offline
Re: True random number generator

jokoono34 kaže...

Znanstvena zajednica kaže da jedini pravi način generiranja radnom brojeva jest kvatno računalo, sve ostalo ima pravila koje ti ionako nitko neće iči dešifirati:=)

 

Ideja ti ide u skladu kako sam ja pristupio riješenju imati dinamički seed, no ispalo na kraju nepotrebno jer ionako matematičari i bez toga ućine dovoljno random.

 

Jedino u prirodi što je slučajno, za sada je kvatna fizika, ako želiš pravi radnom generator brojeva onda bi trebao ići izmjeriti momenat ili poziciju, kvatne čestice:)

 

I da ti dadem disklajmer, nemam blagog pojma o čemu pričam sa znanstvene strane, pričam ti onako sa laičke. 

 

Nemoguče je i nepotrebno je:) Matematičari su dovoljno pametni da učine simulaciju slučajnosti:)

 

Upravo zato sam ja kontao da koristim gajger za generisanje brojeva - bez pristupa laboratorijskoj opremi, to je vjerovatno najbliže RNG što je moguće od kuće. :D

Poruka je uređivana zadnji put sub 9.10.2021 15:51 (rangoj).
5 godina
offline
Re: True random number generator
Top Bugovac kaže...
rangoj kaže...
Pozdrav ljudi, moze jedan savjet?!
Zelio bih napraviti true random number generator, tj. zelim da napravim true random seed za python scriptu.
(u pitanju je hobi projekat, nista posebno)
Imam dvije ideje.
Jedna je da uz pomoc RPi kamere i Python OpenCv pratim baloncice u boci ulja, koje bi pravio sa akvarijum pumpicom - i da na osnovu položaja generisem seed.
A druga ideja je da narucim jeftini gajger brojac sa aliexpress-a, i da onda brojim otkucaje na izlazu za piezo zujalicu - u ovom slucaju bi morao pronaci neki alpha emitter, da ga stavim uz cijev gajger brojaca, čisto da povecam broj otkucaja, jer pozadinsko zracenje proizvodi malo otkucaja - i onda na osnovu ovoga proizvedem seed.
Da li bi ovo bilo dovoljno random da bude true random number generator.
Pitam jer znam da postoje sistemi gdje kamere prate lava lampe i generišu seed na osnovu položaja voska u lampama - to sam negdje pročitao, nekad ranije.

Znam da je moguce čitati slobodan arduino analogni ulaz, ali to nije dovoljno random, obicno se brojevi zadrzavaju u malom rasponu, mogao bih citati prilicno osjetljiv senzor vlage, ali i on ima isti problem kao i pristup iznad, obicno su brojevi dugo vremena u malom odredjenom rasponu.

Volio bih cuti ideje za ovaj projekat?!

Za true random number generator, najludje ideje su obicno dobre! Mogu ja otici online, i naci najbolje rjesenje (na hackaday ili sl.), ali posto je u pitanju hobi projekat, sa tim nista ne dobijam. Hocu sam da uradim i da se malo zabavim :D

 Radis li ovo u sklopu fakulteta? Moj savjet ti je da se za pocetak upoznas s pseudo i kvazi RNGovima i na koji se nacin validira njihova "kvaliteta". Bez dublje teorijske pozadine neces moci kvalitetno opisati ono sto si napravio, a postoji i sansa da ces nesto pogrijesiti.

 

Ovo nije obicno strikanje koda i zahtjeva akademski pristup 

 

Ma jok buraz, nije za faks - samo za sebe, iz hobija. Inace, moj posao su 3D modelovanje i vizualizacije, sto mi je postalo monotono, posebno nakon nekog vremena, pa vec neko vrijeme radim u pythonu, zadnjih 4/5 godina. Imam nekoliko RPi-ja koje koristim kao kućne servere za mini web stranice i sl., za moje projekte, pravim igre, zezam se sa senzorima i podacima i sl.

 

Provjerio sam malo ovo sto je "ihush" rekao i cak i Raspberry Pi od 2014, od prve verzije ima analogni hardwerski random bit generator, oko 1 milion bitova u 1 sekundi, i to je odlično - kao i sto sam predpostavio, a sad i provjerio, pristupam mu preko radom.SystemRandom(), onda ignorise eventualno ranije dati seed u kodu i koristi urandom, koji se svako malo hrani iz hardware radom generatora (/dev/hwrng)
To je sve ekstra, ali to meni ne treba, jer ne pravim nikakav secure radomisation projekat (nit' bi se usudio da pravim tako nesto) vec se malo igram na ovu temu.

 

P. S. 

Na zalost, nemam nikog od raje koga ovo zanima, za pricu ili neke zajednicke projekte - zato sam dosao ovdje. :)

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice