-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Prawdziwie losowe liczby
Date: Thu, 22 Sep 2016 23:03:02 +0200
Organization: ATMAN - ATM S.A.
Lines: 64
Message-ID: <ns1gu7$k68$1@node1.news.atman.pl>
References: <ns1fal$fdq$1@node2.news.atman.pl>
NNTP-Posting-Host: 89-70-119-159.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node1.news.atman.pl 1474578183 20680 89.70.119.159 (22 Sep 2016 21:03:03
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Thu, 22 Sep 2016 21:03:03 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.2.0
In-Reply-To: <ns1fal$fdq$1@node2.news.atman.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:209635
[ ukryj nagłówki ]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/rand
om_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/rand
om_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
Następne wpisy z tego wątku
- 22.09.16 23:23 Borneq
- 22.09.16 23:28 Borneq
- 22.09.16 23:29 grapeli23
- 22.09.16 23:30 bartekltg
- 22.09.16 23:31 slawek
- 22.09.16 23:33 bartekltg
- 22.09.16 23:37 Borneq
- 22.09.16 23:53 bartekltg
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=