Dit is meer een filosofische vraag.
Stel dat u probeert een goed wachtwoord te kiezen voor een bepaalde online dienst, bijvoorbeeld de e-bankingdienst van uw bank. Nu heeft de bank enkele beperkingen met betrekking tot de wachtwoorden die het toestaat: u kunt alleen (kleine letters) letters en (decimale) cijfers gebruiken, en de wachtwoord mag maximaal 6 tekens lang zijn . Dus wat is een "goede" manier om zo'n wachtwoord te selecteren?
Men zou het volgende kunnen doen (noem dit schema 1 ): selecteer willekeurig 6 karakters uit de set [a- z0-9] met uniforme waarschijnlijkheid. Dit schema heeft het nadeel dat het "zwakke" wachtwoorden kan produceren, zoals wachtwoorden die alleen letters of alleen cijfers bevatten (er is een kans van 14,2% [1] dat dit gebeurt).
Dus hier is een ander idee (bel dit schema 2 ): selecteer willekeurig (en uniform) één letter, één cijfer en 4 tekens uit de set [a-z0-9]. Gebruik dan een willekeurige permutatie van deze 6 karakters als wachtwoord. Dit garandeert dat het wachtwoord tekens bevat uit beide klassen (letters en cijfers).
Dus de vraag is: welk van de twee schema's produceert "betere" wachtwoorden?
Aan de ene In de tweede plaats produceert het tweede schema wachtwoorden die waarschijnlijk beter bestand zijn tegen eenvoudige brute force-aanvallen. Aan de andere kant staat het eerste schema strikt meer combinaties toe dan het tweede: 2 ^ 31,0 [2] versus 2 ^ 30,8 [3]; in feite is de set wachtwoorden van schema 1 een superset van die van schema 2.
Opmerking: ik bekijk dit vanuit het perspectief van de partij die het wachtwoord genereert en niet de partij die de wachtwoordbeleid.
[1] (26 ^ 6 + 10 ^ 6) / 36 ^ 6 = 0.142
[2] log2 (26 ^ 6) = 31.0
[3] log2 (36 ^ 6-26 ^ 6-10 ^ 6) = 30.8 dwz alle combinaties van 6 tekens behalve degene met alleen letters (26 ^ 6) en degene met alleen cijfers (nog eens 10 ^ 6 )