Náhodné číslo s HW podporou.

Uživatelský avatar
fulda
Příspěvky: 1359
Registrován: 04 led 2016, 17:18

Re: Náhodné číslo s HW podporou.

Příspěvek od fulda »

pgerla píše: 30 pro 2017, 16:49 Když všechno selže, přečti si návod.
https://arduino.cz/uzitecne-funkce-3/
A jako bonus uštříš nejen místo, ale i za šumový polovodič.
:?: :?: Nevím na kterou část se mám zaměřit. Já jsem si právě vybral tuhle:
https://arduino.cz/uzitecne-funkce-3/ píše:Ke správné funkci generátoru je ještě potřeba použít funkci randomSeed(). Ta slouží k nastavení výchozí hodnoty pro generátor. Má pouze jeden číselný parametr. Jako hodnota parametru se používá funkce analogRead() u pinu ke kterému není nic připojeno. Dochází kolem něj totiž k zachytávání elektromagnetického šumu, který může sloužit jako náhodná vstupní hodnota.
To celkem odpovídá tomu, co chci udělat, jen oni spoléhají na to, že mají vyvedenou "anténu" na pinovou lištu, to já ale nemám, protože nepoužívám modul arduina, ale pouřívám modul, který má schéma odvozené od arduina. Tedy nepoužité vývody ani po plošňáku netahám a tak bude šum malý. Proto se snažím jej nějak zvětšit a znáhodnět.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
gilhad
Příspěvky: 262
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: Náhodné číslo s HW podporou.

Příspěvek od gilhad »

pgerla píše: 30 pro 2017, 16:49 Když všechno selže, přečti si návod.

https://arduino.cz/uzitecne-funkce-3/
Jen bacha na to, ze neni vsechno tak krasne, jak se v navodech pise - napriklad map() vraci obcas dost ujete hodnoty, viz

http://forum.arduino.cc/index.php?topic=280819.0

val = map(val, 0, 3, 0, 1);

In this example 0,1,2 and 3 is mapped to 0 and 1. Mapped correctly it should be:

0 maps to 0
1 maps to 0
2 maps to 1
3 maps to 1

Using the equation in the the function as it is now, it is mapped as such:


0 maps to 0
1 maps to 0
2 maps to 0
3 maps to 1
Problem i reseni zname vice nez 3 roky, ale v aktualni verzi staze z githubu minuly tyden to furt bylo jeste blbe

(Jako ano - mapuje to vstupni rozsah nejak na vystupni, ale ne, rozhodne ne rovnomerne, pritom oprava je v te formuli na dvou mistech pricist jednicku - ale co, pro Arduino dobry ....)
drsnick
Příspěvky: 1
Registrován: 07 led 2018, 20:54

Re: Náhodné číslo s HW podporou.

Příspěvek od drsnick »

Zdravim v novem roce.

Ono asi zalezi jak moc kvalitni nahoda ma byt, pokud by slo o nejakou "vaznejsi" kryptografii, tak se to musi nejak jeste zamichat. Pro "nevazne" pouziti, pak treba staci seed odpichnout od doby podrzeni tlacitka pri startu a pak pouzit tu knihovni funkci. Trpi to asi nejakou statistickou nerovnomernosti, takze kolo stesti bych s tim asi nestavel, ale treba nejake vstupy pro nahodne testovani apod. by s tim delat asi sly.

Pro zajimavost - tady je crypto class projekt sice pro STM32, ale asi by sel priohnout:


https://www.gniibe.org/memo/development ... /neug.html


Zdrojem entropie je soucin sumu na napajeni a Vref a teplomeru. Vysledek jeste
pro jistotu rozemelou SHA256.

Zdravi Drsnick
DavidO
Příspěvky: 1133
Registrován: 01 kvě 2013, 21:27

Re: Náhodné číslo s HW podporou.

Příspěvek od DavidO »

Na Hackaday vyšel článek Entropy and The Arduino: When Clock Jitter is Useful o generování pseodonáhodných čísel na Arduinu a o inicializaci generátoru.

The not-very-random result of a thousand analogRead() calls
The not-very-random result of a thousand analogRead() calls
analogread-entropy_s.jpg (7.03 KiB) Zobrazeno 6439 x
The significantly more random result of a thousand Arduino Entropy Library calls
The significantly more random result of a thousand Arduino Entropy Library calls
library-entropy_s.jpg (11.46 KiB) Zobrazeno 6439 x
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Uživatelský avatar
fulda
Příspěvky: 1359
Registrován: 04 led 2016, 17:18

Re: Náhodné číslo s HW podporou.

Příspěvek od fulda »

Jo, to je dobré, zajímavé na tom je, že to používá ten časovač a nikoli šum.
Narazil jsem na takový starší článek, kde jsem to používal - a dokonce v komentářích na konci je odkaz na stejný Hackaday.
Já jsem vlastně zavrhl to použití WDT čistě proto, že v mém původním kódu se vrací přes reset a to se mi nehodilo s ohledem na boot loader. Ale v této knihovně si ho vrací přes int a to je o dost lepší.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
Příspěvky: 1359
Registrován: 04 led 2016, 17:18

Re: Náhodné číslo s HW podporou.

Příspěvek od fulda »

Tak TOHLE je masakr - hardwarový generátor.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
pgerla
Příspěvky: 400
Registrován: 11 dub 2013, 00:17

Re: Náhodné číslo s HW podporou.

Příspěvek od pgerla »

přehlédl jsem odpověď k čemu je potřeba náhodné číslo na úrovní bílého šumu?

Pokud to má sloužit k realistickému praskání dřeva v kotli parní lokomotivy ... pak je to debata o ...

Pokud k vyplňování tiketu sportky, tak zkuste raději vsázet na sport u Fortuny.
Uživatelský avatar
fulda
Příspěvky: 1359
Registrován: 04 led 2016, 17:18

Re: Náhodné číslo s HW podporou.

Příspěvek od fulda »

Hledám jen dobrý random seed.
A potřebuji ho například proto, aby všechny zářivky v tovární hale po zapnutí neblikali stejně.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
pgerla
Příspěvky: 400
Registrován: 11 dub 2013, 00:17

Re: Náhodné číslo s HW podporou.

Příspěvek od pgerla »

příklad zářivky byl na videu, akorát nevidím kde je problém udělat kopii. Všechny budou blikat stejně, pokud budou všechny na jednom drátu ;)
DavidO
Příspěvky: 1133
Registrován: 01 kvě 2013, 21:27

Re: Náhodné číslo s HW podporou.

Příspěvek od DavidO »

No já nevim, třeba tomu špatně rozumím, ale nechce Fulda, aby blikaly různě?

Jinak generátor náhodných čísel (nebo alespoň kvalitní a zároveň kvalitně inicializovaný generátor pseudonáhodných čísel) je užitečný v kryptografii. Tam je jednou ze základních myšlenek použití tajného a neodhadnutelného čísla, to se často získává generátorem, který by měl být náhodný, ale bohužel to je problém, protože zcela náhodný nebývá téměř nikdy (protože to je těžké zařídit). Reálně se jako kompromis používají generátory pseudonáhodných sekvencí, což vyžaduje inicializaci "co nejvíc náhodnou", aby ta sekvence nebyla snadno odhadnutelná nebo dokonce vždy stejná.

<vtip>
int nahodne_cislo(void)
{ return 5; // číslo 5 bylo zvoleno zcela náhodně
}
</vtip>
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Odpovědět