Generator gesel Diceware — naključna besedna gesla
Ustvarite močna, nepozabna gesla, zgrajena iz naključnih resničnih besed z uporabo metode Diceware — prava kriptografska naključnost, z resnično prikazano dejansko entropijo v bitih.
Rezultat
To orodje generira gesla na način Diceware: namesto gostega niza naključnih znakov, ki jih je težko vnesti in si jih je še težje zapomniti, naniza več navadnih besed, naključno izbranih neodvisno. Geslo, kot je "forest-comet-lantern-guitar-oasis-thistle", nosi resnično, izračunljivo entropijo, hkrati pa je nekaj, kar lahko človeško bitje prebere na glas, tipka po tipkovnici telefona ali si zapomni po nekaj poskusih - kar je natanko kompromis, okrog katerega je bila zasnovana generacija v slogu Diceware.
Bistvo je v naključnosti, zato jo tukaj jemljemo resno: vsaka beseda je izbrana z brskalnikovim kriptografsko varnim generatorjem naključnih števil crypto.getRandomValues() z ustreznim vzorčenjem zavrnitev pri vsakem žrebanju. Neobdelana 32-bitna naključna vrednost je sprejeta le, če spada v obseg, ki je enakomerno deljiv z dolžino seznama besed; vrednosti v ostanku, neenakomeren ostanek se zavrže in ponovno zvrne. Če preskočite ta korak in samo izvedete vrednost % wordlistLength, bi zelo malo dali prednost besedam z nizkim indeksom pred tistimi z visokim indeksom – subtilna statistična pristranskost, ki bi jo naivna izvedba tiho vnesla. Ta generator nikoli ne ubere te bližnjice.
Iskrenost glede entropije je druga polovica zasnove. Skupni seznam besed vsebuje 1.821 edinstvenih, nedvoumnih, vsakdanjih angleških besed – velik, reprezentativen seznam, vendar ne specifičnega seznama s 7.776 besedami, ki ga uporablja klasični projekt Diceware, zato to orodje nikoli ne zahteva znamenite številke 12,9 bitov na besedo, ki velja samo za ta natančen seznam. Namesto tega se entropija na besedo izračuna v živo kot log2 (dolžina seznama), kar tukaj znaša približno 10,8 bitov na besedo, rezultat na zaslonu pa vedno prikazuje celotno formulo – število besed, pomnoženo z biti na besedo, plus pošten prispevek morebitnih dodatkov – tako da lahko natančno vidite, kako je bila skupna vrednost dosežena, namesto da zaupate tržni številki.
Izbirni preklopi se obravnavajo enako pošteno. Uporaba velike začetnice v vsaki besedi je fiksno, deterministično pravilo, ki se vsakič uporablja na enak način, tako da sploh ne doda prave entropije – napadalec, ki pozna pravilo, ne pridobi ničesar, če ne ve, katere črke so velike, in orodje to jasno pove. Nasprotno pa je dodajanje naključnega dvomestnega števila resnično dodatno naključno žrebanje med 100 enako verjetnimi vrednostmi, pri čemer se besedam doda resničnih in navedenih ~6,6 bitov. Vse se izračuna in upodablja lokalno v vašem brskalniku brez vključenega strežnika, tako da gesla, ki ga ustvarite, ne vidi nihče razen vas.