Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #28809
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Newsgroups | pl.comp.programming |
| Subject | Re: Prawdziwie losowe liczby |
| Date | 2016-09-22 23:03 +0200 |
| Organization | ATMAN - ATM S.A. |
| Message-ID | <ns1gu7$k68$1@node1.news.atman.pl> (permalink) |
| References | <ns1fal$fdq$1@node2.news.atman.pl> |
On 22.09.2016 22:35, Borneq wrote: > Chodzi mi o sposób generowania przez zdarzenia związane z klawiaturą i > myszką. W Linuxie jest zbiornik losowości, ale po pierwsze chcę użyć w > Windows a po drugie generować na bieżąco. Biblioteka standardowa, nagłowek <random>, klasa random_device. http://en.cppreference.com/w/cpp/numeric/random/random_device Sprawdź, czy w Twojej implementacji działa metoda entropy(); Powinna informować, czy dostałeś "prawdziwie losowe" dane, ale z implementacją różnie bywa. > Jest zdarzenie, odczytujemy najmłodsze bity licznika instrukcji rdtsc. > Pojawia się pierwszy problem - w Windows i Linuxie nie ma bezpośredniej > możliwości odczytu z przerwania sprzętowego w trybie użytkownika. Trzeba > odczytać rdtsc po jakimś czasie z obsługi biblioteki graficznej. W C++ > może to być np. OpenCV. Teraz najmłodsze bity będą zupełnie losowe, jest > to problem matematyczny - do którego bitu jest losowo? A może losowość > zmniejsza się stopniowo - co to znaczy? Na pewno bity zmieniające się co > godzinę nie są losowe, bo przez jedną godzinę będą same zera a za > godzinę same jedynki. Jeśli odczytujesz w równych odstępach, w nawet najmłodszy bit nie będzie losowy! Losowość musi przyjść albo od użytkownika, albo ze sprzętowego generatora. > Myślę że do bębnienia w klawiaturę wystarczy > granica niemierzalna przez człowieka 1/30 s. Choć z drugiej strony > przerwania myszki mogą być częstsze (?) i wtedy kolejne zdarzania będą > miały te same a nie losowe bity rzędu 1/30 s. > Zegar ma 3 GHz, 1 30 s to 100 mln, czyli dało by radę 26 bitów z jednego > klepnięcia z klawiaturę, lub może przyjąć 24 bity czyli 3 bajty z > jednego zderzania np. tez mousemove myszki. Użyj gotowca. Random device pod linuxem gada /dev/urandom, /dev/random lub sprzętowym https://en.wikipedia.org/wiki/RdRand http://en.cppreference.com/w/cpp/numeric/random/random_device/random_device VS też obiecuje "non-deterministic and cryptographically secure" https://msdn.microsoft.com/library/bb982250.aspx > Inna sprawa. Zapowiadane były procesory ze sprzętową generacją liczb > losowych które mogły by generować ich wielką ilość. Jak się sprawy mają. Dwa linki do tyłu. Podsumowując, użyj gotowca. Podałem namiary na c++, ale jeśli nie piszesz w COBOLU, będziesz miał do tego dostęp. A i dobrze się zastanów, czy aby na pewno potrzebujesz "prawdziwych" liczb losowych. Poza kryptografią nie są takie konieczne. pzdr bartekltg
Back to pl.comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Prawdziwie losowe liczby Borneq <borneq@antyspam.hidden.pl> - 2016-09-22 22:35 +0200
Re: Prawdziwie losowe liczby bartekltg <bartekltg@gmail.com> - 2016-09-22 23:03 +0200
Re: Prawdziwie losowe liczby Borneq <borneq@antyspam.hidden.pl> - 2016-09-22 23:23 +0200
Re: Prawdziwie losowe liczby Borneq <borneq@antyspam.hidden.pl> - 2016-09-22 23:28 +0200
Re: Prawdziwie losowe liczby bartekltg <bartekltg@gmail.com> - 2016-09-22 23:33 +0200
Re: Prawdziwie losowe liczby bartekltg <bartekltg@gmail.com> - 2016-09-22 23:30 +0200
Re: Prawdziwie losowe liczby Borneq <borneq@antyspam.hidden.pl> - 2016-09-22 23:37 +0200
Re: Prawdziwie losowe liczby bartekltg <bartekltg@gmail.com> - 2016-09-22 23:53 +0200
Re: Prawdziwie losowe liczby grapeli23 <grapeli23@googlemail.com> - 2016-09-22 21:29 +0000
Re: Prawdziwie losowe liczby slawek <fake@fakeemail.com> - 2016-09-22 23:31 +0200
csiph-web