Hallo Ich habe eine Frage zu MD5... Im Wikipedia gibts ein schönes Bild zu einer MD5 Operation http://de.wikipedia.org/wiki/Message-Digest_Algorithm_5#Algorithmus Darunter steht: ine MD5-Operation. MD5 besteht aus 64 Operationen dieses Typs, gruppiert in 4 Durchläufen mit jeweils 16 Operationen. Wie muss ich das genau verstehen? Sind diese Operationen 16mal untereinander angeordnet und das 4 mal? Wo kommen die riesigen Datenmengen in die Operation rein? Danke schonmal
Die Bytes werden nach und nach in den Algorithmus reingewurstet wie in einen Fleischwolf. Jedesmal rattert und schnattert die md5-State-Machine dann ein paar Schaltvorgänge weiter.
Lies mal den RFC: http://tools.ietf.org/html/rfc1321 (Dort ist auch ne häufig verwendete Implementation drin=)
didadu schrieb: > Die Bytes werden nach und nach in den Algorithmus reingewurstet Bytes? Meinst du damit nen 32Bit block? Bartli schrieb: > (Dort ist auch ne häufig verwendete Implementation drin=) Danke... Stimmt denn meine annahme: Sind diese Operationen 16mal untereinander angeordnet und das 4 mal?
Die Verarbeitung der Inputdaten erfolgt in Blöcken von 512 Bit. Jeder Datenblock wird in vier Runden verarbeitet. Jede einzelne Runde besteht aus 16mal dem dargestellten Ablauf (16*32=512, daher kommt die Grösse der Datenblöcke). An der mit F gekennzeichneten Stelle wird dabei in jeder Runde eine andere Funktion benutzt. Falls es dir darum gehen sollte, das ganze zu implementieren: generell ist es bei allem, was mit Kryptographie zu tun hat, meist am besten, eine bereits vorhandene, möglichst weit verbreitete Implementierung des Algorithmus zu verwenden. Die Algorithmen sind komplex und schwer verständlich, und teilweise können schon kleine Fehler in der Implementierung (die sich nicht unbedingt gleich im Test durch Nicht-Funktion äussern müssen!) drastische Auswirkungen auf die Sicherheit haben. Von den gängigen Crypto-Algorithmen gibt es eigentlich auch immer irgendwelche im wesentlichen frei verwendbaren Implementierungen. Andreas
Andreas Ferber schrieb: > Die Verarbeitung der Inputdaten erfolgt in Blöcken von 512 Bit. Jeder > Datenblock wird in vier Runden verarbeitet. Jede einzelne Runde besteht > aus 16mal dem dargestellten Ablauf (16*32=512, daher kommt die Grösse > der Datenblöcke). An der mit F gekennzeichneten Stelle wird dabei in > jeder Runde eine andere Funktion benutzt. Vielen Dank Es geht mir nicht um die Implementierung... Ich muss eben einen Vortrag über MD5 halten und da ist es von vorteil wenn man die Funktion verstanden hat :)
Wenn dich die Details (noch nicht) so sehr interesieren, sonder der generelle Aufbau, gibt es hier: http://www.cast-inc.com/ip-cores/encryption/md5/cast_md5-x.pdf ein Blockdiagram (nur der mittlere Teil ist erstmal relevant) vieleicht hilfts ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.