Forum: PC-Programmierung MD5 Wikipedia ist kompliziert :(


von C. H. (hedie)


Lesenswert?

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

von didadu (Gast)


Lesenswert?

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.

von Bartli (Gast)


Lesenswert?

Lies mal den RFC: http://tools.ietf.org/html/rfc1321

(Dort ist auch ne häufig verwendete Implementation drin=)

von C. H. (hedie)


Lesenswert?

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?

von Andreas F. (aferber)


Lesenswert?

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

von C. H. (hedie)


Lesenswert?

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 :)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.