Nachdem ich nun in den letzten Wochen Staffelweise 24 geschaut habe, will ich einige Aussagen (die ich so gehört habe) kommentieren.
„das ist Blowfish verschlüsselt, das erkennt man am Header.“
Klingt gut, ist aber Unsinn. Eine verschlüsselte Datei bzw. ein verschlüsselter Container besitzt keinen besonderen Header. Natürlich könnte man dem zurecht entgegenhalten das dies Anwendungsspezifisch ist. Jedoch wo liegt der Sinn einem Angreifer schon vor Eingabe des Passworts den Algorithmus zu verraten (lassen wir Kerkhoff außen vor). Sofern kein besonderer Verschlüsselungsalgorithmus ausgewählt ist, führen Programme „Probeentschlüsselungen“ durch und prüfen auf Plausibilität.
Decryption is considered successful if the first 4 bytes of the decrypted data contain the ASCII string “TRUE“, and if the CRC-32 checksum of the last 256 bytes of the decrypted data (volume header) matches the value located at byte #8 of the decrypted data (this value is unknown to an adversary because it is encrypted – see the section Header Key Derivation, Salt, and Iteration Count). If these conditions are not met, the process continues from (3) again, but this time, instead of the data read in (1), the data read in (2) are used (i.e., possible hidden volume header). If the conditions are not met again, mounting is terminated (wrong password, corrupted volume, or not a TrueCrypt volume).
Quelle: http://www.truecrypt.org/docs/encryption-scheme.php
Außerdem ist Blowfish (128 Bit) schwer veraltet.
Definieren wir das Ganze einfach mal als zweifelhaft.
Als nächstes:
„das ist eine affine Chiffre, die kann man nicht knacken“
Okay, Blowfish geht, aber eine (linear) affine Chiffre nicht. Die Affine Chiffre ist (das findet auch jeder in Google) eine einfache Blockchiffre, welche allerdings im Gegensatz zur einfachen Verschiebechiffre noch einen 2. Schlüssel hat. Der Schlüssel ist also ein zwei-Tupel: k=(a,b). Wenn wir eine Alphabetsgröße von 26 festlegen, verschlüsselt sich Text mit Hilfe folgender Formel:
c = a*p + b mod 26
Wobei c das neue Chiffre- und p ein Klartextzeichen ist. Ein Beispiel:
Klartext: „ABC“, Key: (2,3)
2 * 0 (A) + 3 mod 26 = 3 (C)
2 * 1 (B) + 3 mod 26 = 5 (E)
2 * 2 (C) + 3 mod 26 = 7 (G)
Chiffretext = „CEG“
Zum entschlüsseln muss ein mulitplikatives Inverses berechnet werden.
Das versteht man also unter einer affinen Chiffre. Natürlich ist etwas kniffeliger als eine reine Verschiebe oder Vignerechiffre, jedoch nicht wirklich ein Problem. Mit ein wenig Verstand bekommt man es auch noch gut auf dem Papier hin.
Diese Aussage können wir zweifelsfrei als Unsinn bezeichnen.