Sprzętowy generator liczb losowych - Hardware random number generator

Ta komputerowa karta akceleratora TLS wykorzystuje sprzętowy generator liczb losowych do generowania kluczy kryptograficznych do szyfrowania danych przesyłanych przez sieci komputerowe.

W obliczeniowej , A generator liczb losowych sprzętu ( HRNG ) lub prawdziwe generator liczb losowych ( TRNG ) znajduje się urządzenie, które generuje liczby losowe z procesów fizycznych , zamiast za pomocą algorytmu . Takie urządzenia często opierają się na zjawiskach mikroskopowych, które generują niskopoziomowe, statystycznie losowe sygnały „ szumowe ”, takie jak szum termiczny , efekt fotoelektryczny z udziałem dzielnika wiązki i inne zjawiska kwantowe . Te procesy stochastyczne są teoretycznie całkowicie nieprzewidywalne, dopóki równanie rządzące takimi zjawiskami jest nieznane lub nieobliczalne, a twierdzenia teorii o nieprzewidywalności podlegają testom eksperymentalnym . Jest to sprzeczne z paradygmatem generowania liczb pseudolosowych powszechnie stosowanym w programach komputerowych .

Sprzętowy generator liczb losowych zazwyczaj składa się z przetwornika do konwersji niektórych aspektów zjawisk fizycznych na sygnał elektryczny, wzmacniacza i innych obwodów elektronicznych w celu zwiększenia amplitudy fluktuacji losowych do mierzalnego poziomu oraz pewnego rodzaju sygnału analogowego do konwerter cyfrowy do konwersji sygnału wyjściowego na liczbę cyfrową, często prostą cyfrę binarną 0 lub 1. Przez wielokrotne próbkowanie losowo zmieniającego się sygnału uzyskuje się szereg liczb losowych.

Głównym zastosowaniem sprzętowych generatorów liczb losowych jest kryptografia , gdzie są one wykorzystywane do generowania losowych kluczy kryptograficznych w celu bezpiecznego przesyłania danych. Są szeroko stosowane w internetowych protokołach szyfrowania, takich jak Transport Layer Security (TLS).

Generatory liczb losowych można również zbudować z „losowych” procesów makroskopowych, przy użyciu urządzeń takich jak rzucanie monetą , kości , koła ruletki i automaty do loterii . Obecność nieprzewidywalności w tych zjawiskach może być uzasadniona teorią niestabilnych układów dynamicznych i teorią chaosu . Chociaż procesy makroskopowe są deterministyczne w mechanice Newtona , wynik dobrze zaprojektowanego urządzenia, takiego jak koło ruletki, nie może być w praktyce przewidywany, ponieważ zależy on od wrażliwych, mikroszczegółów warunków początkowych każdego użycia.

Chociaż kości były używane głównie w grach hazardowych i jako elementy „losowe” w grach (np. w grach fabularnych ), wiktoriański naukowiec Francis Galton opisał w 1890 roku sposób użycia kości do jawnego generowania liczb losowych do celów naukowych.

Sprzętowe generatory liczb losowych zazwyczaj generują tylko ograniczoną liczbę losowych bitów na sekundę. Aby zwiększyć dostępną szybkość transmisji danych wyjściowych, są one często używane do generowania " ziarna " dla szybszego, bezpiecznego kryptograficznie generatora liczb pseudolosowych , który następnie generuje pseudolosową sekwencję wyjściową ze znacznie większą szybkością transmisji danych.

Zastosowania

Nieprzewidywalne liczby losowe zostały po raz pierwszy zbadane w kontekście hazardu , a wiele urządzeń losujących, takich jak kości do gry , tasowanie kart do gry i koła ruletki , zostało najpierw opracowanych do takiego użytku. Prawidłowo wytworzone liczby losowe są niezbędne w grach elektronicznych, a sposoby ich tworzenia są czasami regulowane przez rządowe komisje gier.

Liczby losowe są również wykorzystywane do celów niehazardowych, zarówno tam, gdzie ich użycie ma znaczenie matematyczne, takie jak próbkowanie do sondaży opinii , jak i w sytuacjach, w których uczciwość jest przybliżana przez randomizację , takich jak loterie wojskowe i wybór jurorów .

Kryptografia

Głównym zastosowaniem sprzętowych generatorów liczb losowych jest szyfrowanie danych , na przykład tworzenie losowych kluczy kryptograficznych i kodów jednorazowych potrzebnych do szyfrowania i podpisywania danych. Są bezpieczniejszą alternatywą dla generatorów liczb pseudolosowych (PRNG), programów powszechnie używanych w komputerach do generowania liczb „losowych”. PRNG używają deterministycznego algorytmu do tworzenia sekwencji liczbowych. Chociaż te sekwencje pseudolosowe przechodzą testy wzorców statystycznych pod kątem losowości , znając algorytm i warunki użyte do jego inicjalizacji, zwane „ziarnem”, można przewidzieć dane wyjściowe. Ponieważ sekwencja liczb tworzonych przez PRNG jest w zasadzie przewidywalna, dane zaszyfrowane liczbami pseudolosowymi są potencjalnie podatne na kryptoanalizę . Sprzętowe generatory liczb losowych generują sekwencje liczb, co do których zakłada się, że nie są przewidywalne, a zatem zapewniają najwyższe bezpieczeństwo, gdy są używane do szyfrowania danych.

Wczesna praca

Jednym z wczesnych sposobów tworzenia liczb losowych była odmiana tych samych maszyn używanych do gry w keno lub wybierania liczb na loterii . Obejmowały one mieszane, numerowane piłki pingpongowe z wdmuchiwanym powietrzem, być może połączone z mieszaniem mechanicznym, i wykorzystywały pewną metodę do wyciągania piłek z komory mieszania ( patent US 4 786 056 ). Ta metoda daje w pewnym sensie rozsądne wyniki, ale generowane w ten sposób liczby losowe są drogie. Metoda jest z natury powolna i nie nadaje się do użytku w większości aplikacji komputerowych.

29 kwietnia 1947 r. firma RAND Corporation zaczęła generować losowe cyfry za pomocą „elektronicznego koła ruletki”, składającego się ze źródła impulsów o losowej częstotliwości około 100 000 impulsów na sekundę, bramkowanego raz na sekundę impulsem o stałej częstotliwości i podawanego do pięciobitowego licznika binarnego . Douglas Aircraft zbudował sprzęt, realizując sugestię Cecila Hastinga (RAND P-113) dotyczącą źródła szumu (najprawdopodobniej dobrze znane zachowanie miniaturowej tuby gazowej tyratronu 6D4 po umieszczeniu w polu magnetycznym). Dwadzieścia z 32 możliwych wartości liczników zmapowano na 10 cyfr dziesiętnych, a pozostałych 12 wartości liczników odrzucono.

Wyniki długiego przebiegu z maszyny RAND, przefiltrowane i przetestowane, zostały przekształcone w tabelę, która została opublikowana w 1955 roku w książce A Million Random Digits with 100 000 Normal Deviates . Stół RAND był znaczącym przełomem w dostarczaniu liczb losowych, ponieważ tak duży i starannie przygotowany stół nigdy wcześniej nie był dostępny. Jest to przydatne źródło do symulacji, modelowania i wyprowadzania arbitralnych stałych w algorytmach kryptograficznych, aby zademonstrować, że stałe nie zostały wybrane złośliwie. Wśród aplikacji korzystających z tablicy RAND znajdują się szyfry blokowe Chufu i Khafre . Zobacz: Nic w moich numerach w rękawie .

Zjawiska fizyczne o losowych właściwościach

Kwantowe właściwości losowe

Istnieją dwa podstawowe źródła praktycznej losowości fizycznej mechaniki kwantowej : mechanika kwantowa na poziomie atomowym lub subatomowym oraz szum termiczny (niektóre z nich mają pochodzenie z mechaniki kwantowej). Mechanika kwantowa przewiduje, że pewne zjawiska fizyczne, takie jak rozpad jądrowy atomów, są zasadniczo losowe i w zasadzie nie można ich przewidzieć (omówienie empirycznej weryfikacji nieprzewidywalności kwantowej można znaleźć w eksperymentach testowych Bella ). A ponieważ świat istnieje w temperaturze powyżej zera absolutnego , każdy system ma pewną losową zmienność swojego stanu; na przykład cząsteczki gazów tworzących powietrze nieustannie odbijają się od siebie w sposób losowy ( patrz mechanika statystyczna ). Ta losowość również jest zjawiskiem kwantowym ( patrz fonon ).

Ponieważ wyniku zdarzeń mechaniki kwantowej nie można przewidzieć nawet co do zasady, są one " złotym standardem " generowania liczb losowych. Niektóre zjawiska kwantowe wykorzystywane do generowania liczb losowych obejmują:

Klasyczne właściwości losowe

Zjawiska termiczne są łatwiejsze do wykrycia. Są one w pewnym stopniu podatne na atak poprzez obniżenie temperatury systemu, chociaż większość systemów przestanie działać w temperaturach wystarczająco niskich, aby zredukować hałas dwukrotnie (np. ~150 K). Niektóre z zastosowanych zjawisk termicznych obejmują:

W przypadku braku efektów kwantowych lub szumu termicznego można wykorzystać inne zjawiska, które wydają się być przypadkowe, choć w sposób niełatwy do scharakteryzowania przez prawa fizyki. Kiedy kilka takich źródeł zostanie starannie połączonych (jak na przykład algorytm Yarrowa lub Fortuna CSPRNG ), można zebrać wystarczającą entropię do tworzenia kluczy kryptograficznych i jednorazowych , choć generalnie z ograniczoną szybkością. Zaletą jest to, że takie podejście zasadniczo nie wymaga specjalnego sprzętu. Wadą jest to, że wystarczająco dobrze poinformowany napastnik może potajemnie zmodyfikować oprogramowanie lub jego dane wejściowe, zmniejszając w ten sposób losowość danych wyjściowych, być może znacznie. Podstawowym źródłem losowości zwykle stosowanym w takich podejściach jest precyzyjne synchronizowanie przerwań powodowanych przez mechaniczne urządzenia wejścia/wyjścia, takie jak klawiatury i napędy dysków , różne liczniki informacji systemowych itp.

To ostatnie podejście musi być zaimplementowane ostrożnie i może zostać zaatakowane, jeśli nie jest. Na przykład, do przodu zabezpieczenie generatora w jądrze Linux 2.6.10 mógłby zostać uszkodzony z 2 64 lub 2 96 czasu złożoności.

Dryf zegara

Innym zmiennym zjawiskiem fizycznym, które można łatwo zmierzyć, jest dryf zegara. Istnieje kilka sposobów mierzenia i wykorzystywania dryftu zegara jako źródła losowości.

Układ Intel 82802 Firmware Hub (FWH) zawierał sprzętowy RNG wykorzystujący dwa wolno działające oscylatory, jeden szybki i jeden wolny. Do modulacji częstotliwości powolnego oscylatora służy źródło szumu termicznego (szum niewspólny z dwóch diod), który następnie wyzwala pomiar szybkiego oscylatora. Te dane wyjściowe są następnie osłabiane przy użyciu etapu dekorelacji typu von Neumanna (patrz poniżej). Szybkość wyjściowa tego urządzenia jest nieco mniejsza niż 100 000 bitów/s. Układ ten był opcjonalnym składnikiem rodziny chipsetów 840, która obsługiwała wcześniejszą magistralę Intela. Nie jest zawarty w nowoczesnych komputerach.

Wszystkie mikroprocesory VIA C3 zawierają sprzętowy RNG na chipie procesora od 2003 roku. Zamiast szumu termicznego, surowe bity są generowane przy użyciu czterech swobodnie działających oscylatorów, które są zaprojektowane do pracy z różnymi prędkościami. Wyjście dwóch jest XOR-owane, aby kontrolować odchylenie trzeciego oscylatora, którego wyjście taktuje wyjście czwartego oscylatora w celu wytworzenia surowego bitu. Niewielkie zmiany temperatury, charakterystyki krzemu i lokalnych warunków elektrycznych powodują ciągłe zmiany prędkości oscylatora, a tym samym powodują entropię surowych bitów. Aby dodatkowo zapewnić losowość, na każdym chipie znajdują się w rzeczywistości dwa takie RNG, każdy umieszczony w innym środowisku i obrócony na krzemie. Ostateczne wyjście to mieszanka tych dwóch generatorów. Surowa szybkość wyjściowa wynosi od dziesiątek do setek megabitów na sekundę, a wybielona szybkość wynosi kilka megabitów na sekundę. Oprogramowanie użytkownika może uzyskać dostęp do wygenerowanego losowego strumienia bitów za pomocą nowych instrukcji nieuprzywilejowanego języka maszynowego.

Programowa implementacja powiązanego pomysłu na zwykłym sprzęcie jest zawarta w CryptoLib, bibliotece procedur kryptograficznych. Algorytm nazywa się truerand . Większość nowoczesnych komputerów ma dwa oscylatory kwarcowe, jeden dla zegara czasu rzeczywistego i jeden dla głównego zegara procesora; truerand wykorzystuje ten fakt. Wykorzystuje usługę systemu operacyjnego, która ustawia alarm, działający na podstawie zegara czasu rzeczywistego. Jeden podprogram uruchamia alarm w jednym tyknięciu zegara (zwykle 1/60 sekundy). Inny następnie wchodzi w pętlę while czekając na wyzwolenie alarmu. Ponieważ alarm nie zawsze zostanie wyzwolony dokładnie w jednym takcie, najmniej znaczące bity liczby iteracji pętli, między ustawieniem alarmu a jego wyzwoleniem, będą się zmieniać losowo, prawdopodobnie wystarczająco dla niektórych zastosowań. Truerand nie wymaga dodatkowego sprzętu, ale w systemie wielozadaniowym należy zachować szczególną ostrożność, aby uniknąć nielosowych zakłóceń z innych procesów (np. w zawieszeniu procesu pętli zliczania, gdy program planujący systemu operacyjnego uruchamia i zatrzymuje różne procesy ).

Kod RDRANDoperacyjny zwróci wartości z wbudowanego generatora liczb losowych. Jest obecny w procesorach Intel Ivy Bridge i procesorach AMD64 od 2015 roku.

Radzenie sobie z uprzedzeniami

Strumień bitów z takich systemów może być stronniczy, z przewagą jedynek lub zer. Istnieją dwa podejścia do radzenia sobie z uprzedzeniami i innymi artefaktami. Pierwszym z nich jest zaprojektowanie RNG tak, aby zminimalizować błąd systematyczny związany z działaniem generatora. Jedna metoda, aby to skorygować, zwraca wygenerowany strumień bitów, przefiltrowany przez filtr dolnoprzepustowy, aby dostosować odchylenie generatora. Według centralnego twierdzenia granicznego pętla sprzężenia zwrotnego ma tendencję do bycia dobrze dostrojoną " prawie przez cały czas ". Bardzo szybkie generatory liczb losowych często używają tej metody. Nawet wtedy generowane liczby są zwykle nieco stronnicze.

Wybielanie programowe

Drugim podejściem do radzenia sobie z uprzedzeniami jest zmniejszenie ich po generowaniu (w oprogramowaniu lub sprzęcie). Istnieje kilka technik zmniejszania błędu systematycznego i korelacji, często nazywanych algorytmami „ wybielania ”, przez analogię do powiązanego problemu wytwarzania białego szumu ze skorelowanego sygnału.

John von Neumann wynalazł prosty algorytm do naprawienia prostych błędów i zmniejszenia korelacji. Rozważa dwa bity na raz (nie nakładają się), podejmując jedno z trzech działań: gdy dwa kolejne bity są równe, są one odrzucane; sekwencja 1,0 staje się 1; a sekwencja 0,1 staje się zerem. W ten sposób reprezentuje zbocze opadające z 1 i zbocze narastające z 0. Eliminuje to proste odchylenie i jest łatwe do zaimplementowania jako program komputerowy lub w logice cyfrowej. Ta technika działa bez względu na to, jak bity zostały wygenerowane. Nie może jednak zapewnić losowości w swoim wyjściu. To, co może zrobić (przy znacznej liczbie odrzuconych bitów), to przekształcenie losowego strumienia bitów z polaryzacją w strumień nieobciążony.

Inną techniką ulepszania prawie losowego strumienia bitów jest wyłączenie strumienia bitów z wyjściem wysokiej jakości kryptograficznie bezpiecznego generatora liczb pseudolosowych, takiego jak Blum Blum Shub lub silny szyfr strumieniowy . Może to poprawić dekorelację i stronniczość cyfr przy niskich kosztach; można to zrobić za pomocą sprzętu, takiego jak FPGA, co jest szybsze niż robienie tego za pomocą oprogramowania.

Pokrewnym sposobem, który zmniejsza odchylenie w prawie losowym strumieniu bitów, jest wzięcie dwóch lub więcej nieskorelowanych, prawie losowych strumieni bitów i wykluczających lub ich razem. Niech prawdopodobieństwo wytworzenia przez strumień bitów 0 będzie 1/2 +  e , gdzie −1/2 ≤  e  ≤ 1/2. Wtedy e jest odchyleniem strumienia bitów. Jeśli dwa nieskorelowane strumienie bitów z odchyleniem e są ze sobą wykluczające, wówczas obciążenie wyniku będzie wynosić 2 e 2 . Można to powtórzyć z większą liczbą strumieni bitów (patrz także lemat Piling-up ).

Niektóre projekty stosują kryptograficzne funkcje skrótu, takie jak MD5 , SHA-1 lub RIPEMD-160 lub nawet funkcję CRC do całego lub części strumienia bitów, a następnie wykorzystują dane wyjściowe jako losowy strumień bitów. Jest to atrakcyjne, częściowo dlatego, że jest stosunkowo szybkie.

Wiele zjawisk fizycznych można wykorzystać do wygenerowania bitów, które są wysoce stronnicze, ale każdy bit jest niezależny od pozostałych. Licznik Geigera (z czasem próbkowania dłuższym niż czas powrotu lampy) lub półprzezroczysty lustrzany detektor fotonów generują strumienie bitów, które w większości są „0” (cichy lub transmisja) ze sporadycznie „1” (klik lub odbicie). Jeśli każdy bit jest niezależny od pozostałych, strategia Von Neumanna generuje jeden losowy, nieobciążony bit wyjściowy dla każdego z rzadkich bitów „1” w tak silnie obciążonym strumieniu bitów. Techniki wybielania, takie jak zaawansowana strategia wielopoziomowa (AMLS), mogą wydobyć więcej bitów wyjściowych – bitów wyjściowych, które są równie losowe i bezstronne – z tak mocno obciążonego strumienia bitów.

PRNG z okresowo odświeżanym losowym kluczem

Inne projekty wykorzystują to, co uważa się za prawdziwe losowe bity jako klucz do wysokiej jakości algorytmu szyfru blokowego , przyjmując zaszyfrowane dane wyjściowe jako losowy strumień bitów. W takich przypadkach należy jednak zachować ostrożność, aby wybrać odpowiedni tryb bloku . W niektórych implementacjach PRNG jest uruchamiany przez ograniczoną liczbę cyfr, podczas gdy urządzenie generujące sprzęt wytwarza nowe ziarno.

Korzystanie z zaobserwowanych zdarzeń

Inżynierowie oprogramowania bez prawdziwych generatorów liczb losowych często próbują je rozwijać, mierząc fizyczne zdarzenia dostępne dla oprogramowania. Przykładem jest mierzenie czasu między naciśnięciami klawiszy przez użytkownika, a następnie przyjmowanie najmniej znaczącego bitu (lub dwóch lub trzech) liczby jako losowej cyfry. Podobne podejście mierzy planowanie zadań, trafienia w sieć, czasy wyszukiwania głowic dysku i inne zdarzenia wewnętrzne. Jeden projekt Microsoftu zawiera bardzo długą listę takich wewnętrznych wartości, formę kryptograficznie bezpiecznego generatora liczb pseudolosowych . Lampy lawowe zostały również wykorzystane jako fizyczne urządzenia do monitorowania, tak jak w systemie Lavarand .

Metoda jest ryzykowna, gdy wykorzystuje zdarzenia kontrolowane przez komputer, ponieważ sprytny, złośliwy atakujący może być w stanie przewidzieć klucz kryptograficzny, kontrolując zdarzenia zewnętrzne. Jest to również ryzykowne, ponieważ rzekome zdarzenie generowane przez użytkownika (np. naciśnięcia klawiszy) może zostać sfałszowane przez wystarczająco pomysłowego atakującego, umożliwiając kontrolę „losowych wartości” używanych przez kryptografię.

Jednak z należytą starannością można zaprojektować system, który wytwarza kryptograficznie bezpieczne liczby losowe ze źródeł losowości dostępnych we współczesnym komputerze. Podstawowym projektem jest utrzymywanie „puli entropii” losowych bitów, które z założenia są nieznane atakującemu. Nowa losowość jest dodawana, gdy jest dostępna (na przykład, gdy użytkownik naciśnie klawisz) i zachowywana jest szacunkowa liczba bitów w puli, która nie może być znana atakującemu. Niektóre z używanych strategii obejmują:

  • Gdy żądane są losowe bity, zwróć tę liczbę bitów pochodzących z puli entropii (na przykład przez kryptograficzną funkcję mieszającą) i zmniejsz oszacowanie liczby losowych bitów pozostałych w puli. Jeśli nie ma wystarczającej liczby nieznanych bitów, poczekaj, aż będzie dostępna wystarczająca liczba. Jest to projekt najwyższego poziomu urządzenia " /dev/random " w Linuksie, napisany przez Theodore Ts'o i używany w wielu innych uniksopodobnych systemach operacyjnych. Zapewnia wysokiej jakości liczby losowe, o ile szacunki losowości wejściowej są wystarczająco ostrożne. Linuxowe urządzenie "/dev/urandom" jest prostą modyfikacją, która ignoruje oszacowania losowości danych wejściowych i dlatego jest raczej mniej prawdopodobne, że w rezultacie uzyska wysoką entropię.
  • Utrzymuj szyfr strumieniowy z kluczem i wektorem inicjalizacji (IV) uzyskanymi z puli entropii. Po zebraniu wystarczającej liczby bitów entropii zastąp klucz i IV nowymi losowymi wartościami i zmniejsz szacowaną entropię pozostałą w puli. Takie podejście stosuje biblioteka krwawnika . Zapewnia odporność na niektóre ataki i zachowuje trudną do uzyskania entropię.

(Zde)centralizowane systemy

Prawdziwym generatorem liczb losowych może być usługa (de)centralna. Jednym z przykładów scentralizowanego systemu, w którym można uzyskać liczbę losową, jest usługa losowego sygnału nawigacyjnego z National Institute of Standards and Technology ; innym przykładem jest Random.org , usługa, która wykorzystuje szum atmosferyczny do generowania losowych cyfr binarnych (bitów).

Jako przykład zdecentralizowanego systemu platforma Cardano wykorzystuje uczestników ich zdecentralizowanego protokołu proof-of-stake do generowania liczb losowych.

Problemy

Bardzo łatwo jest pomylić sprzęt lub oprogramowanie, które próbują generować liczby losowe. Ponadto większość „łamie się” po cichu, często tworząc coraz mniej losowe liczby w miarę ich degradacji. Fizycznym przykładem może być gwałtownie zmniejszająca się radioaktywność wspomnianych wcześniej detektorów dymu, gdyby to źródło było używane bezpośrednio. Tryby awarii w takich urządzeniach są liczne i skomplikowane, powolne i trudne do wykrycia. Bardziej niezawodne są metody, które łączą wiele źródeł entropii.

Ponieważ wiele źródeł entropii jest często dość delikatnych i zawodzą po cichu, testy statystyczne na ich wyjściu powinny być wykonywane w sposób ciągły. Wiele, ale nie wszystkie takie urządzenia zawierają takie testy w oprogramowaniu, które odczytuje urządzenie.

Ataki

Podobnie jak w przypadku innych elementów systemu kryptograficznego, programowy generator liczb losowych powinien być zaprojektowany tak, aby był odporny na określone ataki . Obrona przed tymi atakami jest trudna bez sprzętowego źródła entropii.

Szacowanie entropii

Istnieją matematyczne techniki szacowania entropii ciągu symboli. Żadna z nich nie jest tak wiarygodna, aby można było w pełni polegać na ich szacunkach; zawsze istnieją założenia, które mogą być bardzo trudne do potwierdzenia. Są one przydatne na przykład do określenia, czy w puli nasion jest wystarczająca entropia, ale ogólnie nie mogą odróżnić prawdziwego źródła losowego od generatora pseudolosowego. Problemu tego unika się dzięki konserwatywnemu wykorzystaniu sprzętowych źródeł entropii.

Test wydajności

Sprzętowe generatory liczb losowych powinny być stale monitorowane pod kątem prawidłowego działania. RFC 4086, FIPS Pub 140-2 i specjalna publikacja NIST 800-90b zawierają testy, które można do tego wykorzystać. Zobacz także dokumentację nowozelandzkiej biblioteki oprogramowania kryptograficznego cryptlib .

Ponieważ wiele praktycznych projektów opiera się na źródle sprzętowym jako wejściu, przydatne będzie przynajmniej sprawdzenie, czy źródło nadal działa. Testy statystyczne mogą często wykryć awarię źródła szumu, na przykład stacji radiowej nadającej na kanale, który jest uważany za pusty. Wyjście generatora szumu powinno zostać pobrane do testów przed przejściem przez „wybielacz”. Niektóre projekty wybielaczy mogą przejść testy statystyczne bez losowych danych wejściowych. O ile wykrycie dużego odchylenia od perfekcji byłoby oznaką, że prawdziwe losowe źródło szumu uległo degradacji, o tyle małe odchylenia są normalne i mogą wskazywać na prawidłowe działanie. Korelacja polaryzacji wejść do konstrukcji generatora z innymi parametrami (np. temperatura wewnętrzna, napięcie szyny) może być dodatkowo przydatna jako dalsze sprawdzenie. Niestety, przy obecnie dostępnych (i przewidywanych) testach, zaliczenie takich testów nie wystarczy, aby mieć pewność, że sekwencje wyjściowe są losowe. Starannie dobrany projekt, weryfikacja, czy wyprodukowane urządzenie realizuje ten projekt i ciągłe fizyczne zabezpieczenie przed manipulacją, mogą być potrzebne oprócz testów pod kątem zastosowań o wysokiej wartości.

Zobacz też

Bibliografia

Ogólne odniesienia

Zewnętrzne linki