Ich sehe durch die PIM das ganze eher als Salted Password. Wobei das Salt nicht in einer Datei steht, sondern manuell eingegeben werden muss.
Der PIM verändert ja nicht den Key, sondern die Verschlüsselungsiterationen.
2048 x 500 = 1 Milionen Iterationen bei der Ver-/Entschlüsselung
15000 + (500*1000) = 515000 Iterationen bei der Ver-/Entschlüsselung
Also wird der Key entsprechend oft gehasht. Also es wird der Hash vom Hash vom Hash vom Hash usw. gebildet, am Ende wird dieser Hash der nach x iterationen rauskommt für die Entschlüsselung genutzt. Hauptvorteil sehe ich hier eher bei Kollisionsangriffen. Der Key wird dadurch nicht länger und das Passwort selbst per se nicht sicherer.
Das hat nichts direkt mit den Entschlüsselungsversuchen zu tun. Es ist eher ein Nebeneffekt, dass man noch einen zweiten statischen Faktor bei der Entschlüsselung mit angeben muss. Langsam wird es durch die Iterationen, nicht durch die Passwortlänge.
Wenn angenommen nur Ansi Zeichen beim PW zugelassen sind. Beim PIM sind ja nur Zahlen zugelassen.
Bei 20 Zeichen: 255^20 * (10^3 - 98)
Wenn beim PW alle ANSI Zeichen nutzbar wären bei 8 Bit, wärem das 256 Zeichen, hoch 40 bei 40 Stellen.
Das ganze mit den Möglichkeiten der PIM mutlitpilziert (3 stellen und die 0-98 dürfen nicht genutzt werden), wird klar, dass die PIM auf die Sicherheite keinen so großen einfluss mehr hat.
Da die BF Attacke bei bekanntsein de PWs (255^20) sich nur noch auf die 10^3-98 bezieht, welche ich sogar als Mensch binnen 30 Minuten erraten habe.
Bei der Versuchsanzahl: a x b = c. Wenn a = PW bekannt ist (wie in der obigen Frage) und c durch erraten von b errechnet werden kann und man dafür nur 402 Versuche braucht, ist das schnellstens erraten, ganz ohne Spezial Bruteforce Software. Mit Finger und ohne Hirn, denn das braucht man für Iterationen ´+1 nicht.
Solange das PW nicht bekannt ist oder deren Richtigkeit ohne korrekter PIM nicht bestätigt ist, ist das sehr sehr sicher, aber wenn man aus irgendeinem Grund, und wenn es social engineering ist, das PW kennt, ist das nicht mehr so sicher.
Deshalb sollte man nach Möglichkeit eher auf eine dynamische 2FA zurückgreifen, oder eine Bruteforcesperre haben (geht in dem Fall nicht), die bei fehlerhaften Eingaben die Wartezeit stets verdoppelt