Schlüsselstreckung
Schlüsselstreckung ist eine kryptographische Schlüsselableitungsoperation, die einen schwachen Schlüssel, üblicherweise ein Passwort, sicherer machen soll, indem sie dafür sorgt, dass zum Durchprobieren aller Möglichkeiten mehr Mittel (Zeit, Speicher) benötigt werden. Stand der Technik ist das Verfahren Argon2. Im Einsatz sind auch sehr häufig noch PBKDF2, bcrypt oder scrypt anzutreffen, die jedoch bekannte Nachteile aufweisen.
Strecktechniken arbeiten im Allgemeinen wie folgt. Der Anfangsschlüssel wird in einen Algorithmus eingegeben, der einen verbesserten Schlüssel erzeugt. Der erweiterte Schlüssel muss groß genug sein, damit er nicht durch einen Brute-Force-Angriff entdeckt werden kann (er muss beispielsweise mindestens 128 Bit lang sein). Der Streckungsalgorithmus muss sicher sein, das heißt, es darf keine bekannten Mittel zum Berechnen des verbesserten Schlüssels mit einem Algorithmus geben, der weniger Prozessorzeit benötigt.
Der Angreifer, der einen gestreckten Schlüssel entdecken möchte, hat zwei Möglichkeiten: entweder alle möglichen Kombinationen des erweiterten Schlüssels auszuprobieren (unmöglich, wenn der Schlüssel lang genug ist), oder alle möglichen Kombinationen von Zeichen des ursprünglichen Schlüssels auszuprobieren, indem er sie vor dem Ausprobieren streckt. Wenn in diesem zweiten Ansatz der Anfangsschlüssel ein Passwort ist, wird der Angreifer üblicherweise wie folgt vorgehen: zuerst wird er jedes Wort einer Liste von häufigen Passwörtern ausprobieren, dann jedes Wort im Wörterbuch, und schließlich alle möglichen Kombinationen von Zeichen des Passworts. Das Dehnen der Schlüssel verhindert diese Vorgehensweise nicht, aber der Angreifer wird viel Zeit benötigen, da er jedes mögliche Passwort strecken muss und die Streckung eine beträchtliche Zeit benötigt.