Jak używamy komputera jako generatora liczb losowych?

generator liczb losowychKomputery generują losową liczbę do wszystkiego, od kryptografii po gry wideo i hazard. Istnieją dwie kategorie liczb losowych — prawdziwe liczby losowe i liczby pseudolosowe. A różnica jest istotna dla bezpieczeństwa systemów szyfrowania. W tym artykule porozmawiamy o tym, jak używamy komputera jako generatora liczb losowych. Zaczynajmy!





Ten temat stał się ostatnio bardziej kontrowersyjny, podobnie jak wiele osób kwestionujących, czy wbudowany sprzętowy układ generatora liczb losowych Intela jest godny zaufania, czy nie. Aby zrozumieć, dlaczego może nie być godny zaufania, musisz to zrozumieć. To, jak w pierwszej kolejności generowane są liczby losowe i do czego są wykorzystywane.



Do czego są używane liczby losowe | generator liczb losowych

Liczby losowe są używane od wielu tysięcy lat. Niezależnie od tego, czy chodzi o rzucanie monetą, czy rzucanie kostką, celem jest pozostawienie wyniku końcowego przypadkowi. Generator liczb losowych w komputerze jest podobny. Są próbą osiągnięcia nieprzewidywalnego, przypadkowego wyniku.

Generatory liczb losowych są bardzo przydatne do wielu różnych celów. Oprócz oczywistych zastosowań, takich jak generowanie liczb losowych w celach hazardowych lub tworzenie nieprzewidywalnych wyników w grze komputerowej, losowość jest bardzo ważna w kryptografii.



Kryptografia wymaga liczb, których atakujący nie mogą odgadnąć. Nie możemy po prostu używać tych samych liczb w kółko. Chcemy generować te liczby w bardzo nieprzewidywalny sposób, aby atakujący nie mogli ich odgadnąć. Te liczby losowe są ważne dla bezpiecznego szyfrowania. niezależnie od tego, czy szyfrujesz własne pliki, czy po prostu korzystasz z witryny HTTPS w Internecie.



Prawdziwe liczby losowe | generator liczb losowych

Być może zastanawiasz się, w jaki sposób komputer może wygenerować liczbę losową. Gdzie to się dzieje? losowość pochodzić z? Jeśli jest to tylko fragment kodu komputerowego, czy nie jest możliwe, aby liczby generowane przez komputer były przewidywalne?

Generalnie grupujemy komputery wygenerowanej liczby losowej na dwa typy. To zależy od tego, jak są generowane: Prawdziwe liczby losowe i liczby pseudolosowe.



wyłącz system Android z wieloma oknami

Aby wygenerować prawdziwe liczba losowa, komputer mierzy pewien rodzaj zjawiska fizycznego, które ma miejsce poza komputerem. Na przykład komputer może mierzyć rozpad radioaktywny atomu. Zgodnie z teorią kwantową nie ma sposobu, aby wiedzieć na pewno, kiedy nastąpi rozpad radioaktywny. Więc to jest zasadniczo czysta przypadkowość ze wszechświata. Atakujący nie byłby w stanie przewidzieć, kiedy nastąpi rozpad radioaktywny. Więc nie znaliby wartości losowej.



Na przykład komputer może polegać na hałasie atmosferycznym lub po prostu używać dokładnego czasu naciśnięcia klawiszy na klawiaturze jako źródła nieprzewidywalnych danych lub entropii. Na przykład komputer może zauważyć, że nacisnąłeś klawisz dokładnie o 0,23423523 sekundy po godzinie 14.00. Chwyć wystarczająco dużo konkretnych czasów związanych z tymi naciśnięciami klawiszy, a będziesz miał źródło entropii, którego możesz użyć do wygenerowania prawdziwe Liczba losowa. Nie jesteś przewidywalną maszyną. Tak więc atakujący nie może odgadnąć dokładnego momentu naciśnięcia tych klawiszy. Urządzenie /dev/random w systemie Linux, które generuje liczby losowe, Bloki i nie zwraca wyniku, dopóki nie zgromadzi wystarczającej entropii, aby zwrócić naprawdę losową liczbę.

Liczby pseudolosowe | generator liczb losowych

Liczby pseudolosowe są alternatywą dla prawdziwe losowe liczby. Komputer mógłby użyć wartości początkowej i algorytmu do generowania liczb, które wydają się losowe, ale w rzeczywistości jest to przewidywalne. Komputer nie zbiera żadnych losowych danych z otoczenia.

To niekoniecznie jest złe w każdej sytuacji. Na przykład, jeśli grasz w grę wideo. Tak naprawdę nie ma znaczenia, czy wydarzenia, które mają miejsce w tej grze, są spowodowane przez prawdziwe liczby losowe lub liczby pseudolosowe. Z drugiej strony. Jeśli używasz szyfrowania, nie chcesz używać liczb pseudolosowych, które atakujący może odgadnąć.

Na przykład, powiedzmy, że atakujący zna algorytm i wartość inicjatora, którego używa generator liczb pseudolosowych. I powiedzmy, że algorytm szyfrowania otrzymuje z tego algorytmu liczbę pseudolosową. I używa go do generowania klucza szyfrowania bez dodawania dodatkowej losowości. Jeśli atakujący wie wystarczająco dużo, może cofnąć się i określić liczbę pseudolosową. W takim przypadku musiał wybrać algorytm szyfrowania, łamiąc szyfrowanie.

Sprzętowy generator liczb losowych NSA i Intela

Aby ułatwić programistom i pomóc w generowaniu bezpiecznych liczb losowych. Chipy Intela zawierają sprzętowy generator liczb losowych znany jako RdRand. Ten układ wykorzystuje źródło entropii na procesorze i podaje losowe liczby do oprogramowania, gdy oprogramowanie ich zażąda.

Problem polega na tym, że generator liczb losowych jest zasadniczo czarną skrzynką i nie wiemy, co się w niej dzieje. Gdyby RdRand zawierał backdoora NSA, rząd byłby w stanie złamać klucze szyfrujące. Zostało to wygenerowane tylko z danych dostarczonych przez ten generator liczb losowych.

To poważny problem. W grudniu 2013 r. programiści FreeBSD usunęli obsługę bezpośredniego używania RdRand jako źródła losowości, mówiąc, że nie mogą mu ufać. [Źródło] Dane wyjściowe urządzenia RdRand zostaną wprowadzone do innego algorytmu, który dodaje dodatkową entropię. Zapewnia to, że wszelkie backdoory w generatorze liczb losowych nie będą miały znaczenia. Linux już działał w ten sposób, dodatkowo losując losowe dane pochodzące z RdRand, aby nie było to przewidywalne, nawet gdyby istniał backdoor. [Źródło] W ostatnim AMA ( Zapytaj mnie o cokolwiek ) na Reddicie, dyrektor generalny Intela Brian Krzanich nie odpowiedział na pytania dotyczące tych obaw. [Źródło]

Oczywiście to prawdopodobnie nie tylko problem z układami Intela. Twórcy FreeBSD również wymienili chipy Via po imieniu. Ta kontrowersja pokazuje, dlaczego generowanie liczb losowych, które są naprawdę losowe i nie są przewidywalne, jest tak ważne.

Generować prawdziwe liczby losowe, gromadzą generatory liczb losowych entropia, lub pozornie losowe dane z otaczającego ich świata fizycznego. Dla liczb losowych, które nie naprawdę muszą być losowe, mogą po prostu używać algorytmu i wartości początkowej.

Wniosek

W porządku, to było wszystko! Mam nadzieję, że spodobał Ci się ten artykuł o generatorze liczb losowych i uznasz go za pomocny. Przekaż nam swoją opinię na ten temat. Również jeśli chcesz zadać dalsze pytania z tym związane. Daj nam znać w sekcji komentarzy poniżej. Wkrótce się z tobą skontaktujemy.

avast pochłania procesor

Miłego dnia!

Zobacz także: NSFW: znaczenie i jak to właściwie działa