Förderjahr 2017 / Stipendien Call #12 / ProjektID: 2180 / Projekt: Automatisierte Generierung von personenbezogenen Passwortlisten
Im Schritt der Datenverarbeitung der extrahierten Wörter erfolgt eine Reihung nach Relevanz, die im folgenden Blogpost genauer beleuchtet wird.
Bereits im Februar habe ich in einem Blogpost den Prozess der Wortextraktion beschrieben. Dabei wird eine Reihe von Schritten abgearbeitet, die versuchen, aus den Postings eine Liste von nach Relevanz sortierten Wörtern zu machen. Diese Reihung wird dabei nach zwei Faktoren, der Häufigkeit und der Ausgefallenheit, vorgenommen.
Häufigkeit
Der erste Faktor für die Bestimmung der Relevanz ist die Häufigkeit des Wortes in der gesamten Extraktion. In der Diplomarbeit wird dieser Vorgang wie folgt beschrieben:
„Die Vorkommnisse jedes Wortes werden bei der Bearbeitung der Postings laufend mitgezählt und letztendlich durch die Anzahl der gesamten Wörter dividiert. Dies ergibt den Anteil eines Wortes an der gesamten Wörterliste. Dieser Anteil wird anschließend linear erneut auf den Bereich [0, 1] skaliert, wobei der maximal auftretende Anteil als neues Maximum gewählt wird.“
Ausgefallenheit
Wesentlich herausfordernder als die Häufigkeit war die Berechnung einer Ausgefallenheit. Dabei wird davon ausgegangen, dass ein selteneres Wort im Sprachgebrauch wahrscheinlicher für ein Passwort herangezogen wird und daher in der Liste der finalen Wörter weiter oben aufscheinen sollte.
Mit Hilfe des Python-Pakets wordfreq von Robert Speer ist es möglich, die relative Häufigkeit eines Wortes im Sprachgebrauch zu ermitteln. Dabei steht das Ergebnis 0 für ein Wort, das kein einziges Mal pro 100 Millionen Wörter vorkommt und eine 1 für ein Wort, das den gesamten Sprachgebrauch ausmacht, was also einen nicht zu erreichenden Wert darstellt. Das deutsche Wort mit der höchsten relativen Häufigkeit ist der Artikel „die“ mit einem Wert von 0,03236 also etwa 3,2%.
Nach einigen Versuchen diese sehr schiefe Verteilung der Werte zu korrigieren, konnte festgestellt werden, dass eine Anpassung nur einer besseren Lesbarkeit dienen würde und daher für die Berechnung der Relevanz nicht notwendig ist. Es erfolgt daher nur eine min-max Skalierung auf den Bereich [0, 1].
Abschließend wird die Ausgefallenheit als das Gegenteil der relativen Häufigkeit im Sprachgebrauch definiert. Daher muss der erhaltene Wert nur noch von 1 subtrahiert werden.
Score
Der finale Score, der die Relevanz der Wörter angibt, besteht aus einer Kombination aus Häufigkeit und Ausgefallenheit, wobei die Gewichtung als gleich angenommen wurde. Mit diesen Berechnungen konnten abschließend in praktischen Tests sehr gute Ergebnisse erzielt werden.
Referenzen
wordfreq: Robert Speer, Joshua Chin, Andrew Lin, Sara Jewett, and Lance Nathan. Luminosoinsight/wordfreq: v1.7, September 2017. https://doi.org/10.5281/zenodo.998161