Entropia hasła - czym jest i jak ją obliczyć

„Silne hasło" to pojęcie względne - 8 znaków, które w 2005 roku wymagało lat łamania, dziś pada w kilka godzin. Entropia pozwala zmierzyć siłę hasła w sposób uniwersalny, niezależny od aktualnej mocy komputerów. To liczba, która mówi Ci dokładnie, ile wysiłku musi włożyć atakujący - dziś, za rok i za dekadę.


Ten artykuł jest bardziej techniczny niż pozostałe w bazie wiedzy. Jeśli szukasz prostych zasad tworzenia haseł, zacznij od: Jak stworzyć bezpieczne hasło.

Czym jest entropia?

Entropia to pojęcie z teorii informacji, wprowadzone przez Claude'a Shannona w 1948 roku. W kontekście haseł entropia mierzy nieprzewidywalność - ile informacji zawiera hasło, której atakujący nie może zgadnąć.

Entropię wyrażamy w bitach. Jeden bit entropii oznacza wybór między dwiema równie prawdopodobnymi opcjami (jak rzut monetą). Dwa bity to wybór między czterema opcjami, trzy bity - między ośmioma, i tak dalej.

Intuicja za entropią

Wyobraź sobie, że ustawiasz 4-cyfrowy PIN. Każda cyfra może mieć wartość 0-9, czyli 10 opcji. Łącznie masz:

10 × 10 × 10 × 10 = 10 000 możliwych kombinacji

Entropia tego PIN-u to logarytm dwójkowy z liczby kombinacji:

log₂(10 000) ≈ 13.3 bita

Co to oznacza w praktyce? Atakujący, który zgaduje losowo, musi średnio sprawdzić połowę wszystkich kombinacji, czyli około 5000 prób. Każdy dodatkowy bit entropii podwaja tę liczbę.

Dlaczego entropia to najlepsza miara siły hasła?

Niezależność od technologii

Moc komputerów rośnie z roku na rok. Hasło, które w 2010 roku wymagało miesiąca łamania, dziś pada w godziny. Mierzenie siły hasła w „czasie łamania" jest zawodne - wynik zmienia się z każdą generacją sprzętu.

Entropia jest stała. Hasło o entropii 60 bitów zawsze oznacza 2⁶⁰ kombinacji do sprawdzenia - niezależnie od tego, czy atakujący używa komputera z 2010, czy 2030 roku. Zmienia się tylko czas potrzebny na przeszukanie tej przestrzeni, nie jej rozmiar.

Porównywalność różnych typów haseł

Jak porównać siłę hasła xK9#mL2$ z passphrase krowa lampa ocean zegar? Jedno ma 8 znaków, drugie 23. Jedno wygląda „skomplikowanie", drugie to zwykłe słowa.

Entropia daje wspólną jednostkę:

  • xK9#mL2$ (8 losowych znaków z 95): ~52 bity
  • krowa lampa ocean zegar (4 słowa z 7776): ~51 bitów

Oba hasła mają praktycznie identyczną siłę, mimo zupełnie różnej formy.

Obiektywność

Subiektywne oceny („to hasło wygląda na silne") są zawodne. Hasło p@ssw0rd2024! wygląda imponująco, ale opiera się na przewidywalnym wzorcu - jego efektywna entropia jest znacznie niższa niż sugeruje długość.

Entropia zmusza do precyzyjnego myślenia: ile jest naprawdę możliwych kombinacji, które atakujący musi sprawdzić?

Jak obliczyć entropię hasła?

Wzór podstawowy

Dla hasła składającego się z losowo wybranych elementów:

Entropia = log₂(liczba możliwych kombinacji) = log₂(N^L) = L × log₂(N)

Gdzie:

  • N - rozmiar alfabetu (liczba możliwych znaków lub słów)
  • L - długość hasła (liczba znaków lub słów)

Entropia na znak

Przydatne jest pojęcie entropii na pojedynczy znak:

Alfabet Rozmiar (N) Entropia na znak
Cyfry (0-9) 10 3.32 bita
Małe litery (a-z) 26 4.70 bita
Małe + wielkie litery 52 5.70 bita
Litery + cyfry 62 5.95 bita
Litery + cyfry + symbole 95 6.57 bita

Przykłady obliczeń

Hasło 8-znakowe (małe litery)

Alfabet: 26 znaków
Długość: 8
Kombinacje: 26⁸ = 208 827 064 576
Entropia: 8 × 4.70 = 37.6 bita

Hasło 12-znakowe (litery + cyfry + symbole)

Alfabet: 95 znaków
Długość: 12
Kombinacje: 95¹² ≈ 5.4 × 10²³
Entropia: 12 × 6.57 = 78.8 bita

PIN 6-cyfrowy

Alfabet: 10 cyfr
Długość: 6
Kombinacje: 10⁶ = 1 000 000
Entropia: 6 × 3.32 = 19.9 bita

Entropia passphrase

Dla passphrase obliczenia są analogiczne, ale zamiast znaków liczymy słowa:

Entropia = liczba słów × log₂(rozmiar słownika)

Entropia na słowo

Słownik Rozmiar Entropia na słowo
Diceware (standard) 7 776 12.9 bita
EFF Large Wordlist 7 776 12.9 bita
Słownik niezgadniesz.pl 19 000 14.2 bita
Pełny słownik języka polskiego ~350 000 18.4 bita

Wartość entropii dla passphrase generowanych przez niezgadniesz.pl jest w rzeczywistości nieco trudniejsza do policzenia. Wynika to ze sposóbu, w jaki słowa dobierane są z poszczególnych kategorii gramatycznych, których generator wykorzystuje prawie 200. Wartość 14.2 jest wartością maksymalną w przypadku całkowicie losowego doboru słów. W rzeczywistości jest nieco mniejsza.

Przykłady obliczeń

Passphrase 4 słowa (Diceware)

Słownik: 7 776 słów
Liczba słów: 4
Kombinacje: 7776⁴ ≈ 3.66 × 10¹⁵
Entropia: 4 × 12.9 = 51.7 bita

Passphrase 5 słów (Diceware)

Słownik: 7 776 słów
Liczba słów: 5
Kombinacje: 7776⁵ ≈ 2.84 × 10¹⁹
Entropia: 5 × 12.9 = 64.6 bita

Passphrase 6 słów (słownik niezgadniesz.pl 19 000 słów)

Słownik: 19 000 słów
Liczba słów: 6
Kombinacje: 19000⁶ ≈ 4.7 × 10²⁵
Entropia: 6 × 14.2 = 85.2 bita

Porównanie: hasło losowe vs passphrase

Hasło Entropia Łatwość zapamiętania
8 znaków (a-z, A-Z, 0-9, symbole) 52.6 bita Bardzo trudne
4 słowa (Diceware) 51.7 bita Łatwe
12 znaków (pełny alfabet) 78.8 bita Praktycznie niemożliwe
6 słów (Diceware) 77.5 bita Umiarkowanie łatwe

Passphrase oferuje podobną entropię przy znacznie lepszej zapamiętywalności.

Ile entropii potrzebujesz?

Wymagana entropia zależy od wartości chronionego zasobu i możliwości atakującego.

Orientacyjne poziomy bezpieczeństwa

Entropia Kombinacje Zastosowanie
~20 bitów ~1 milion PIN do telefonu (z blokadą po kilku próbach)
~40 bitów ~1 bilion Konta o niskiej wartości, ataki online
~50-60 bitów ~10¹⁵ - 10¹⁸ Większość kont internetowych
~70-80 bitów ~10²¹ - 10²⁴ Hasło główne do managera haseł
~100+ bitów ~10³⁰+ Szyfrowanie długoterminowe, klucze kryptograficzne

Wpływ algorytmu hashującego

Wymagana entropia zależy też od tego, jak serwis przechowuje hasła:

  • Słaby hash (MD5, SHA-1) - atakujący testuje ~10¹¹ haseł/s na jednym GPU. Potrzebujesz więcej entropii.
  • Silny hash (bcrypt, Argon2) - atakujący testuje ~10³-10⁴ haseł/s. Mniejsza entropia wystarczy.

Ponieważ nie wiesz, jakiego algorytmu używa serwis, bezpiecznie jest zakładać najgorszy scenariusz.

Pułapki przy szacowaniu entropii

Entropia teoretyczna vs efektywna

Obliczenia entropii zakładają, że hasło jest naprawdę losowe. W praktyce ludzie wprowadzają wzorce, które drastycznie obniżają efektywną entropię.

Przykład: Tr0ub4dor&3

Teoretycznie: 11 znaków z alfabetu 95 = ~72 bity.

Efektywnie: słowo troubador + przewidywalne zamiany (o→0, a→4) + symbol i cyfra na końcu. Atakujący z regułami hybrydowymi złamie to w minuty.

Przykład: KochamMojegoPsa123

Teoretycznie: 18 znaków = ~85 bitów.

Efektywnie: sensowna fraza po polsku + cyfry na końcu. Znajduje się w słownikach ataków. Entropia bliska zeru.

Atakujący zna Twoją metodę

Przy obliczaniu entropii zakładamy, że atakujący wie, jakiej metody użyłeś:

  • Jeśli używasz Diceware, atakujący wie, że testujesz kombinacje z 7776 słów
  • Jeśli używasz losowych znaków, atakujący wie, że testujesz alfabet 95 znaków

To konserwatywne założenie (tzw. zasada Kerckhoffsa) - bezpieczeństwo nie powinno zależeć od tajności metody, tylko od losowości wyniku.

Nie dodawaj entropii tam, gdzie jej nie ma

Częsty błąd: „dodam znak specjalny, to zwiększy entropię". To prawda tylko dla haseł losowych. Jeśli zawsze dodajesz ! na końcu, atakujący to wie - entropia wzrasta o ułamek bita, nie o pełne log₂(33) ≈ 5 bitów.

Losowość musi być prawdziwa

Ludzki mózg jest fatalny w generowaniu losowości. Gdy prosisz kogoś o „losowe" słowo, dostaniesz nieproporcjonalnie często: kot, dom, drzewo - słowa krótkie, częste, podstawowe.

Prawdziwa losowość wymaga generatora: kryptograficznie bezpiecznego generatora liczb losowych w komputerze lub fizycznych kostek w metodzie Diceware.

Podsumowanie

Entropia to uniwersalna miara siły hasła, wyrażona w bitach. Mówi, ile kombinacji musi sprawdzić atakujący - niezależnie od formy hasła czy aktualnej mocy komputerów.

Kluczowe wzory:

  • Hasło losowe:
    Entropia = długość × log₂(rozmiar alfabetu)
  • Passphrase:
    Entropia = liczba słów × log₂(rozmiar słownika)

Praktyczne minimum to 70+ bitów - dla hasła głównego warto celować w 80+, by mieć margines bezpieczeństwa. Passphrase z 5 słów (Diceware) daje ~65 bitów, hasło 12-znakowe z pełnego alfabetu - ~79 bitów.

Pamiętaj: obliczenia entropii są prawdziwe tylko dla haseł naprawdę losowych. Każdy przewidywalny wzorzec - słowa ze słownika, typowe zamiany, sensowne frazy - drastycznie obniża efektywną entropię, często do zera.