Moin!
Hmm, ich verwende (eine abgewandelte Variante von) MD5-based block cypher. Das es (deutlich) sicherer ist als Kalle_Bs XOR-Spielereien, davon gehe ich auch als Nicht-Kryptographie-Experte aus.
Warum gehst du davon aus?
Auch dieser Algorithmus verwendet als grundlegende "Verschlüsselung" eine XOR-Operation.
Er macht zwar gewisse Dinge "richtiger", aber in meinen Augen reicht das nicht aus - das Ding sieht eher aus, wie selbstgestrickt, und versucht durch Schlüsselworte wie "MD5" eine psychologische Sicherheit zu erzeugen - weil ja jeder weiß, dass MD5 unknackbar hasht.
Dinge, die "richtiger" gemacht werden, sind der zufällige Initialisierungsvektor (der wird allerdings - zwingend - als allererstes im Chiffre-String gespeichert), die Ausnutzung des gesamten Bytebereichs fürs XOR (das Resultat von MD5 wird als 16-Byte-Sequenz genutzt) und die rekursive Wiedereinspielung des vorherigen Blocks in den neuen Initialisierungsvektor.
Das halte ich aber nicht für ausreichend.
Bei Kenntnis des Algorithmus und eines Ciphertextes ist eine Known-Plaintext-Attacke immer zielführend. Und du hast ja gesehen, dass man da nur richtig raten muß, um auf ein Ergebnis zu kommen. Auch durch eine komplexe XOR-Operation "scheinen" interessante Dateiformat-Infos hindurch.
Dachte auch, er wäre hinreichend sicher, aber nun ...
... frage ich dich mal lieber ;-): Für dich knackbar? Oder nur für Institutionen mit Arsch viel Rechenleistung? Oder eher gar nicht?
Ich tippe ja auf letzteres ...
Die Sache ist doch ganz einfach: Welchen Grund gibt es für dich, einen potentiell knackbaren Algorithmus einzusetzen, von dessen Sicherheit du dich selbst nicht überzeugt hast, und der aufgrund der Tatsache, dass er komplett in PHP implementiert ist, auch noch arschlangsam ist. Was spricht gegen die Nutzung des mcrypt-Moduls in Verbindung mit einem als sicher angesehenen Algorithmus wie AES? Alternativ könnte es auch PGP/GnuPG sein, das hätte sogar den großen Vorteil, dass der verschlüsselnde Server den Key zum Entschlüsseln gar nicht kennt.
- Sven Rautenberg
"Love your nation - respect the others."