-
Data: 2011-06-24 16:19:30
Temat: Re: Pojemnik na liczby losowe
Od: Tubylerczyk <t...@d...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2011-06-24 09:09, Mariusz Marszałkowski pisze:
> srand( wszystko_co_ci_przyjdzie_do_glowy );
> time_t s = time(NULL) + 2;
> while( s> time(NULL) )
> rand();
> return rand();
Ja to rozwiązałem w ten sposób:
Podczepić hooka pod zdarzenia przycisku klawiatury. W przypadku
uderzenia klawisza odczytujemy czas - ilość taktów zegara CPU za pomocą
rdtsc. Wyliczamy odstępy między kolejnymi uderzeniami - liczba dodatnia
(aby nie było problemów, program musi działać tylko na jednym rdzeniu
SetProcessAffinityMask(GetCurrentProcess(), 1) bo inaczej raz odczyta z
jednego licznika a raz z drugiego).
Sam odstęp jeszcze nie mówi ile bitów losowych da się z niego uzyskać,
autorepeat klawisza daje niemal identyczne czasy i mało w nim bitów
losowych. Potrzebna jest różnica, o ile zmienił się odstęp - im większa,
tym więcej bitów losowych. Wyliczyć ile bitów - z wartości bezwzględnej
policzyć indeks najstarszego zapalonego bitu + 1.
Bitami losowymi będą najmłodsze bity ostatniego czasu. Nie da się
wykorzystać znaku różnicy odstępów ponieważ ma rozkład nie losowy.
Typowe bębnienie po klawiaturze dawało strumień rzędu 800 bitów/s.
Następne wpisy z tego wątku
- 27.06.11 07:25 Paweł Kierski
- 27.06.11 10:03 Tubylerczyk
- 27.06.11 10:25 Michoo
- 27.06.11 10:33 Michoo
- 27.06.11 19:19 Jędrzej Dudkiewicz
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow
- 2026-01-27 Warszawa => APM/Observability Engineer (Presales Engineer) <=
- 2026-01-26 #Motodziennik 365 Powrót spalinowych Renault Megane i Scenica, Volvo EX60 oraz ID.Tiguan
- 2026-01-26 Ciekawe fikoły
- 2026-01-26 Toruń => Preseles Inżynier (background baz danych) <=
- 2026-01-26 sznurowadła kwestia prawna




Jak kupić pierwsze mieszkanie? Eksperci podpowiadają