Modifieringen av des gjordes i syfte att hindra lösenordsknäckning med hjälp av hårdvara, som var tillverkad för att kryptera och dekryptera med des. Dessutom krypterades lösenordet 25 gånger. Antalet gånger hade inget med styrkan i kryptoalgoritmen att göra, utan var till för att sakta ner en eventuell lösenordsforcering.
För att förhindra parallellforcering av lösenord, alltså om två användare valde ett likadant lösenord, användes ett salt (se ordlistan) som adderades till lösenordet innan det krypterades.

Knäckningen förutsätter som sagt att angriparen har tillgång till det krypterade lösenordet och att angriparen känner till algoritmen.
Angriparen väljer ett lösenord och låter det krypteras eller hashas på samma sätt som det lagrade krypterade lösenordet. Angriparen jämför sedan sitt eget krypterade eller hashade resultat med det lagrade.

Stämmer de överens har man gissat rätt lösenord.
Hur snabbt det går att knäcka lösenord beror på hur svårt lösenord användaren valt och vilka antaganden angriparen gör om lösenordets komplexitet.

Sannolika ord prioriteras
För att inte slösa tid i onödan brukar angripare prioritera testning med ”sannolika” lösenord. Vad som är sannolikt eller osannolikt är upp till angriparen, som samtidigt också måste ta hänsyn tas till vilken datorkapacitet som finns till förfogande för knäckandet.

I svenska språket finns cirka 20 000 ord att välja mellan om vi sätter en gräns på max 8 tecken långa lösenord. Om lösenordet väljs helt slumpmässigt (a–ö, A–Ö, 0–9, samt cirka 50 specialtecken) och varje bokstavs position kan väljas på 112 olika sätt får vi cirka 2,4 gånger 1016 möjliga lösenord.

Om ett ord väljs som lösenord motsvarar det alltså en miljarddels promille av alla möjliga valbara lösenord. Det här gör knäckandet ganska enkelt, och att lägga till en siffra eller två ökar inte komplexiteten nämnvärt.

Västa exemplet: Microsoft

Utifrån resonemanget ovan kan vi dra slutsatsen att styrkan på lösenordet till stor del bygger på hur användaren väljer lösenord, alltså på hur pass sannolikt det valda lösenordet är utifrån angriparens antaganden.

Fakta

gpu, graphics processing unit: Processor som finns på grafikkort. Arbetar med högre grad av parallellisering än en normal pro­cessor.
hash: Envägsfunktion. Resultatet från en hash går inte att räkna baklänges till vilket indata som angetts.
krigsringare: Gammal lösning som testar olika telefonnummer för att hitta modemingångar.
lm, lanman: Det sätt som användes för att autentisera Windows 95-klienter mot ett Windowsnätverk.
mjukt certifikat: Certifikat med privat nyckel som ges ut på fil.
iteration: Variabel som anger antal gånger som lösenordet hashats eller krypterats.
ntlm, nt lan manager: Det sätt som användes för att autentisera Windows NT-klienter mot ett Windows-NT nätverk.
pbes, password based encryption scheme: Beskriver vilken algoritm som används för att kryptera en annan kryptonyckel.
pbkdf, password based key derivation function: Beskriver på vilket sätt en nyckel eller hash tas fram. Om det är nyckel som tas fram används den för att dekryptera en annan kryptonyckel via pbes.
regnbågstabell: Tabell med förberäknade hash-kedjor. Snabbar upp formering av osaltade lösenord och därmed knäckning av krypterade lösenord.
salt: Slumpmässigt värde som läggs till ett lösenord för att göra det svårare att knäcka lösenordet. Lagras i klartext tillsammans med det krypterade lösenordet.
ssid, service set identification: Nätverks­identifierare för trådlösa nätverk.
wpa2, wi-fi protected access 2: Protokoll som används för att skydda autentisering mot trådlösa nätverk.
xor, ”exclusive or”: Operation som används i binära sammanhang. Om båda invärdena är samma blir resultatet noll, annars ett.