Losowość w kryptografii

Losowość jest istotnym elementem w kryptografii gdzie między innymi jest wykorzystywana do generowania kluczy. Aczkolwiek aby losowość była tą rzeczywiście losową (RNG), a nie tylko pseudo losową (PRNG), potrzebne jest wysoki poziom entropii.

Entropia

To poziom nieuporządkowania. Jeśli entropia jest maksymalna to znaczy, że każdy wynik jest tak samo prawdopodobny – na przykład przy uczciwym rzucie monetą.

RNG – Random Number Generator

Są to generatory oparte o wartości analogowe, takie jak np. temperatura procesora czy ruchy myszką przez użytkownika. Takie wartości są zbierane i to one stanowią losowo wygenerowane liczby. Trzeba jednak pamiętać, że są one dobrym, lecz nie idealnym źródłem entropii. Tak naprawdę to ciężko określić poziom entropii i ilość tak wygenerowanych liczb może być ograniczona (na przykład użytkownik przestanie ruszać myszką).

PRNG – Pseudo Random Number Generator

Są to generatory oparte o algorytmy, które bez problemu generują dowolną ilość liczb (pseudo)losowych. Niestety takie algorytmy są najczęściej możliwe to przewidzenia – stąd nie są bezpiecznym źródłem liczb losowych.

RNG + PRNG

W systemach kryptograficznych najczęściej łączy się dwa rodzaje generatorów. RNG służy jako tak zwane ziarno dla generatorów PRNG. To najczęściej daje wystarczający poziom entropii.

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *