Diceware-salalausegeneraattori – Satunnaissanat
Luo vahvoja, mieleenpainuvia salalauseita aidoista satunnaisista sanoista Diceware-menetelmällä – aitoa kryptografista satunnaisuutta, todellinen entropia bitteinä rehellisesti esitettynä.
🔒 Käsitelty kokonaan selaimessasi – mitään tähän kirjoittamaasi ei koskaan ladata.
Tulos
Tämä työkalu luo salalauseita Dicewaren tapaan: vaikeasti kirjoitettavan ja vielä vaikeammin muistettavan tiheän merkkijonon sijaan se yhdistelee useita toisistaan riippumattomasti satunnaisesti valittuja tavallisia sanoja. Salalause, kuten "forest-comet-lantern-guitar-oasis-thistle", sisältää aitoa, laskettavaa entropiaa, mutta on silti jotain, minkä ihminen voi lukea ääneen, kirjoittaa puhelimen näppäimistöllä tai painaa mieleensä muutamalla yrityksellä – juuri se kompromissi, jota varten Diceware-tyylinen tuottaminen on suunniteltu.
Satunnaisuus on koko jutun ydin, joten siihen suhtaudutaan täällä vakavasti: jokainen sana valitaan selaimen crypto.getRandomValues()-kryptografisesti turvallisella satunnaislukugeneraattorilla, käyttäen asianmukaista hylkäysotantaa jokaisella arvonnalla. Raaka 32-bittinen satunnaisarvo hyväksytään vain, jos se osuu alueelle, joka on tasan jaollinen sanalistan pituudella; ylijäävään, epätasaiseen jäännökseen osuvat arvot hylätään ja arvonta suoritetaan uudelleen. Tämän vaiheen ohittaminen ja pelkän value % wordlistLength -laskutoimituksen tekeminen suosisi hyvin hieman matalaindeksisiä sanoja korkeaindeksisiin nähden – hienovarainen tilastollinen vinouma, jonka naiivi toteutus toisi mukaan huomaamatta. Tämä generaattori ei koskaan oikaise tässä kohtaa.
Rehellisyys entropiasta on suunnittelun toinen puoli. Mukana tuleva sanalista sisältää 1 821 yksikäsitteistä, arkipäiväistä englanninkielistä sanaa – suuri, edustava lista, mutta ei sitä tiettyä 7 776 sanan listaa, jota klassinen Diceware-projekti käyttää, joten tämä työkalu ei koskaan väitä kuuluisaa 12,9 bittiä per sana -lukemaa, joka pätee vain juuri siihen listaan. Sen sijaan bittiä per sana -entropia lasketaan reaaliajassa kaavalla log2(listan pituus), josta saadaan täällä noin 10,8 bittiä per sana, ja ruudulla näkyvä tulos esittää aina koko kaavan – sanojen määrä kertaa bittiä per sana, plus mahdollisten lisien rehellinen osuus – jotta näet tarkalleen, miten kokonaismäärään päädyttiin, sen sijaan että luottaisit markkinointilukuun.
Valinnaisia painikkeita kohdellaan samalla rehellisyydellä. Jokaisen sanan isolla alkukirjaimella kirjoittaminen on kiinteä, deterministinen sääntö, jota sovelletaan samalla tavalla joka kerta, joten se ei tuo lainkaan todellista entropiaa – hyökkääjä, joka tuntee säännön, ei hyödy siitä, ettei tiedä mitkä kirjaimet ovat isoja, ja työkalu ilmoittaa tämän suoraan. Satunnaisen kaksinumeroisen luvun liittäminen loppuun on sitä vastoin aito satunnainen lisäarvonta sadan yhtä todennäköisen arvon joukosta, tuoden todelliset ja mainitut ~6,6 bittiä sanojen päälle. Kaikki lasketaan ja piirretään paikallisesti selaimessasi ilman palvelinta, joten luomaasi salalausetta ei koskaan näe kukaan muu kuin sinä.