01/07/2026 / Cybersecurity /

Diceware - jak tworzyć mocne hasła z losowych słów (i dlaczego naprawdę działają)

Generator Diceware - hasło z losowych słów po polsku z entropią liczoną w bitach

Najmocniejsze losowe hasło ma jedną wadę praktyczną: nie da się go zapamiętać. Ciąg w stylu wn3RZ70=L^j{k~ME jest świetny dla menedżera haseł, ale beznadziejny, gdy musisz wpisać go z głowy - na nowym laptopie, na konsoli serwera albo przy odblokowywaniu samego menedżera. I tu wchodzi metoda, która godzi siłę z pamięcią ludzką: Diceware - hasło złożone z kilku losowych słów.

Fraza kotwica-deszcz-mostek-pralka-bocian-gniew wygląda jak żart przy haśle pełnym znaków specjalnych. A jednak, jeśli te słowa zostały wylosowane uczciwie, jest matematycznie mocniejsza niż większość haseł, które ludzie wymyślają sami. W tym artykule pokażę, dlaczego to działa, skąd bierze się jej entropia i jak wygenerować taką frazę w naszym generatorze haseł - po polsku albo po angielsku.

Czym właściwie jest Diceware

Metodę opracował Arnold Reinhold w 1995 roku i jest genialna w swojej prostocie. Bierzesz listę 7776 słów, gdzie każde ma przypisany pięciocyfrowy kod złożony z cyfr od 1 do 6. Skąd akurat 7776? To 6 do potęgi 5 - czyli liczba wyników pięciu rzutów zwykłą sześcienną kostką.

Rzucasz kostką pięć razy, odczytujesz na przykład 4-2-6-1-3 i znajdujesz odpowiadające temu słowo na liście. Powtarzasz to dla każdego słowa we frazie - typowo sześć lub siedem razy - i sklejasz wynik. Cała tajność hasła leży w fizycznej losowości rzutów, a nie w sprycie wymyślania.

Kluczowa intuicja: Diceware nie każe Ci być kreatywnym. Wręcz przeciwnie - odbiera Ci wybór i oddaje go kostce, bo człowiek jest fatalnym generatorem losowości.

Matematyka, czyli dlaczego to naprawdę jest mocne

Siłę hasła mierzymy w bitach entropii - czyli logarytmem dwójkowym z liczby wszystkich możliwych wariantów. Dla Diceware liczy się to wyjątkowo czysto, bo każde słowo jest wybierane niezależnie i z jednakowym prawdopodobieństwem z listy o znanej wielkości.

Jedno słowo z listy 7776 elementów to dokładnie log2(7776) ≈ 12,9 bita. Nie szacunek, nie heurystyka - twarda wartość. Entropia całej frazy to po prostu liczba słów pomnożona przez tę wartość:

4 słowa  ->  4 × 12,9  ≈  51,7 bita
5 słów   ->  5 × 12,9  ≈  64,6 bita
6 słów   ->  6 × 12,9  ≈  77,5 bita   (rekomendacja EFF)
7 słów   ->  7 × 12,9  ≈  90,4 bita
8 słów   ->  8 × 12,9  ≈ 103,4 bita

Dla porównania: szesnastoznakowe hasło ze wszystkich klas znaków (małe, wielkie, cyfry, symbole - około 92 znaki) ma około 104 bitów. Sześciowyrazowa fraza Diceware (77 bitów) jest więc trochę słabsza od takiego molocha, ale nieporównanie mocniejsza od haseł, które ludzie realnie wybierają - typowe „wymyślone" hasło ma efektywnie 25-40 bitów, bo opiera się na słowniku, dacie i przewidywalnym wzorcu.

Co oznacza 77 bitów w praktyce? Atakujący musiałby przejść średnio przez 2^76 prób. Nawet farma licząca bilion haseł na sekundę potrzebowałaby na to setek tysięcy lat. A wszystko to przy haśle, które wystukasz z pamięci.

Tajność jest w rzutach, nie w liście słów

Najczęstsze nieporozumienie: „skoro lista słów jest publiczna, to przecież atakujący ją zna". Owszem zna - i to nic nie zmienia. To jest dokładnie zasada Kerckhoffsa z kryptografii: bezpieczeństwo nie może opierać się na tajności metody, tylko na tajności klucza. Tutaj kluczem są Twoje rzuty kostką.

Atakujący znający listę i wiedzący, że masz frazę sześciowyrazową, wciąż stoi przed 7776^6 kombinacjami. Publiczna lista nie pomaga mu ani trochę, bo nie wie, które słowa wypadły. Dlatego listy Diceware są jawne i dobrze udokumentowane - lepsze są te dopracowane (krótkie słowa, brak mylących par, duży dystans edycyjny) niż tajne.

Kostka czy crypto - i kiedy to ma znaczenie

Oryginalny Diceware używa fizycznej kostki nie bez powodu. Chodzi o weryfikowalną losowość niezależną od komputera. Jeśli generujesz hasło główne do menedżera albo klucz, który ma chronić naprawdę poważne rzeczy, fizyczna kostka eliminuje ryzyko, że generator liczb na maszynie jest podstawiony albo źle zainicjowany.

Dla codziennego użytku w przeglądarce ten poziom paranoi nie jest konieczny - pod warunkiem, że narzędzie używa kryptograficznego generatora. Nasz generator losuje słowa przez crypto.getRandomValues(), czyli CSPRNG wbudowany w przeglądarkę, a nie przez Math.random(), który do haseł nie nadaje się nigdy. Dodatkowo stosujemy odrzucanie nadmiaru (rejection sampling), żeby nie wprowadzić tak zwanego modulo-bias - drobnego przekłamania, przez które niektóre słowa wypadałyby częściej.

Reguła kciuka: do rzeczy, które musisz wykuć na pamięć - hasło główne, szyfrowanie dysku - rozważ fizyczną kostkę. Do wszystkiego innego CSPRNG w dobrym narzędziu jest w zupełności wystarczający.

Polski czy angielski - czy język robi różnicę

To jest najczęstsze pytanie i odpowiedź jest pięknie matematyczna: język nie ma znaczenia, liczy się tylko wielkość listy. Entropia zawsze wynosi liczba_słów × log2(N), gdzie N to liczba słów na liście.

W naszym generatorze masz dwie listy do wyboru. Polska liczy 3887 słów (log2 ≈ 11,9 bita na słowo), angielska EFF 7775 słów (log2 ≈ 12,9 bita na słowo). Polskie słowa są krótsze i bez ogonków, więc łatwiej je wpisać i zapamiętać, ale dają minimalnie mniej entropii na słowo. Różnicę nadrabiasz dosłownie jednym słowem więcej: siedem polskich słów (≈ 83 bity) bije sześć angielskich (≈ 77 bitów).

To zresztą najlepsza ilustracja całej zasady - dwie różne listy, ten sam wzór, a generator liczy entropię na żywo z faktycznej wielkości listy. Nie ma magii w angielskim, nie ma magii w polskim. Jest tylko logarytm z liczby słów.

Jak wygenerować frazę w naszym generatorze

W generatorze haseł obok klasycznego przycisku znajdziesz tryb frazy:

  • Wybierz język listy - Polski albo English.
  • Ustaw suwakiem liczbę słów. Domyślne sześć to dobry punkt startowy; do rzeczy poważnych ustaw siedem lub osiem.
  • Kliknij Generuj metodą Diceware. Fraza pojawi się w polu, a obok zobaczysz uczciwą entropię liczoną jako liczba słów razy log2 listy - nie z liczby znaków.

Wszystko dzieje się lokalnie w przeglądarce - żadne hasło ani fraza nie są nigdzie wysyłane. Możesz też wpisać własną frazę w to samo pole, a narzędzie oszacuje jej siłę.

Czego nie robić

Diceware jest odporne tylko wtedy, gdy nie zepsujesz go „poprawkami":

  • Nie wybieraj słów samodzielnie. Gdy człowiek „losuje" słowa z głowy, wpada w skojarzenia i przewidywalne ciągi - cała entropia znika.
  • Nie skracaj listy. Mniejsza lista to mniej bitów na słowo. Jeśli odrzucisz słowa, które Ci się nie podobają, osłabiasz hasło.
  • Nie dorabiaj przewidywalnych ozdobników. Doklejanie 123! na końcu daje pozory siły, ale crackery sprawdzają takie wzorce w pierwszej kolejności. Lepiej dołożyć jeszcze jedno losowe słowo.
  • Nie używaj jednej frazy wszędzie. Nawet najmocniejsza fraza staje się bezużyteczna, gdy serwis ją wyciekł. Świeże hasło sprawdzisz w naszej sprawdzarce wycieków.

Gdzie Diceware sprawdza się najlepiej

Passphrase nie zastępuje menedżera haseł - uzupełnia go. Idealne zastosowanie to te kilka haseł, które naprawdę musisz pamiętać: hasło główne do menedżera, hasło do szyfrowania dysku, login do komputera, klucz do kopii zapasowych. Do setek pozostałych kont używaj długich, w pełni losowych haseł znakowych z menedżera - ich i tak nie wpisujesz ręcznie.

Diceware to pomost między dwoma światami: twardą entropią, którą rozumie matematyk, a ludzką pamięcią, która lubi obrazy i słowa. Sześć losowych słów mieści się w głowie znacznie łatwiej niż szesnaście losowych znaków - a chroni równie skutecznie. Jeśli chcesz zobaczyć obie metody obok siebie, otwórz nasz generator haseł i porównaj entropię frazy z entropią klasycznego hasła.

Listy słów użyte w generatorze: polska lista Diceware autorstwa MaciekTalaska (licencja MIT) oraz angielska EFF Large Wordlist (Electronic Frontier Foundation, licencja CC BY 3.0 US).

Najczęściej zadawane pytania

Czy hasło z losowych słów jest naprawdę bezpieczne?
Tak, pod warunkiem że słowa zostały wylosowane uczciwie. Sześć słów z listy 7776-wyrazowej daje około 77 bitów entropii - to setki tysięcy lat łamania nawet dla farmy liczącej bilion prób na sekundę. Słabe są frazy wymyślone samodzielnie, nie te wylosowane.
Ile słów powinna mieć fraza Diceware?
Sześć słów to rozsądne minimum dla zwykłych kont (około 77 bitów). Do haseł, które chronią naprawdę poważne rzeczy - hasło główne menedżera, szyfrowanie dysku - ustaw siedem lub osiem słów.
Polska czy angielska lista - co wybrać?
Język nie ma znaczenia dla bezpieczeństwa, liczy się tylko wielkość listy. Polska lista (3887 słów) daje nieco mniej entropii na słowo niż angielska EFF (7775 słów), ale różnicę nadrabiasz jednym słowem więcej. Wybierz ten język, w którym łatwiej Ci zapamiętać frazę.
Czy publiczna lista słów nie osłabia hasła?
Nie. To zasada Kerckhoffsa: bezpieczeństwo opiera się na tajności losowania, nie na tajności metody. Atakujący zna listę, ale nie wie, które słowa wypadły - wciąż stoi przed liczbą kombinacji równą wielkości listy podniesionej do liczby słów.
Czy Diceware zastępuje menedżer haseł?
Nie, uzupełnia go. Frazy używaj do tych kilku haseł, które musisz pamiętać z głowy. Do setek pozostałych kont stosuj długie, w pełni losowe hasła znakowe przechowywane w menedżerze.