Ich hatte eine sehr anregende Unterhaltung im IRC mit kiesner über den Login-Mechanismuß von PyLucid gehabt. Mitschnitt unter: [wiki]JensDiemer/CryptoIdeeCRDA[/wiki]
Dabei ist aufgefallen, das man den bisherigen Mechanismus verbessern kann.
(btw. den Ablaufplan des bisherigen Mechanismus hab ich noch mal aktualisiert)
Momentan wird ja das Passwort in zwei Teile geteilt (gerade und ungerade Buchstaben)
Von beiden Teilen wird ein MD5 Hash erstellt, wobei ein Teil noch zusätzlich die Zufallszahl des Server erhält...
Das könnte man ändern, wenn man in Python und per JS eine initial Value für die MD5 bildung angeben könnte...
Dann könnte man das gesammte Passwort + Zufallszahl als MD5 Hash übermitteln...
Lange Rede kurzer Sinn:
Wo gibt es eine Python Implementation eines MD5-Algos, bei dem man die initial-Value vorgeben kann???
PyLucid's MD5-JS-Login verbessern...
Warum so viel hick-hack?
Wenn dus hashen und nicht rekonstruiren willst, nimm stinknormales md5, sha oder irgendeinen anderen verbreiteten hash.
Die aktuellen hashes sind hinreichend gut, ich glaube nicht, dass man die weiter verwursteln muss.
Wenn du dass Passwort auf der anderen Seite rekonstruieren willst solltest du dich mal über Diffie-Hellmann, RSA, Rabin und/oder ElGamal schlau machen, es gibt da unter anderem auch die Möglichkeit geheime Daten auszutauschen, ohne Schlüssel publik zu machen (Stichwort "no-key kryptografie"). (und diese Systeme sind dabei sicher auch gegen replays)
Sorry, dass ich deine eigentliche Frage nicht beantworten kann :-/.
Das crypt das in den meisten *nix systemen verwendet wird hat aber z.B. ein "salt", das könnte evtl. für dich interessant sein.
Wenn dus hashen und nicht rekonstruiren willst, nimm stinknormales md5, sha oder irgendeinen anderen verbreiteten hash.
Die aktuellen hashes sind hinreichend gut, ich glaube nicht, dass man die weiter verwursteln muss.
Wenn du dass Passwort auf der anderen Seite rekonstruieren willst solltest du dich mal über Diffie-Hellmann, RSA, Rabin und/oder ElGamal schlau machen, es gibt da unter anderem auch die Möglichkeit geheime Daten auszutauschen, ohne Schlüssel publik zu machen (Stichwort "no-key kryptografie"). (und diese Systeme sind dabei sicher auch gegen replays)
Sorry, dass ich deine eigentliche Frage nicht beantworten kann :-/.
Das crypt das in den meisten *nix systemen verwendet wird hat aber z.B. ein "salt", das könnte evtl. für dich interessant sein.