www.wikidata.de-de.nina.az
Merkles Meta Verfahren auch Merkle Damgard Konstruktion ist eine Methode zur Konstruktion von kryptographischen Hash Funktionen die auf Arbeiten von Ralph Merkle und Ivan Damgard zuruckgeht Gegeben ist eine Kompressionsfunktion f 0 1 a b 0 1 b displaystyle f colon 0 1 a b rightarrow 0 1 b die eine a b displaystyle a b Bit lange Eingabe auf eine b displaystyle b Bit lange Ausgabe abbildet Sie ist kollisionssicher das heisst es ist nicht mit realistischem Aufwand moglich zwei verschiedene Eingaben zu finden die auf die gleiche Ausgabe abgebildet werden Durch die Anwendung von Merkles Meta Verfahren ergibt sich daraus eine kollisionssichere Hash Funktion h 0 1 0 1 b displaystyle h colon 0 1 rightarrow 0 1 b die beliebig lange Nachrichten auf einen Hashwert von b displaystyle b Bit abbildet Inhaltsverzeichnis 1 Vorgehensweise 2 Padding 3 Schwachen 4 Verbesserungen 5 Einzelnachweise 6 LiteraturVorgehensweise Bearbeiten nbsp Aus den Nachrichtenblocken wird durch wiederholte Anwendung der Kompressionsfunktion der Hashwert erzeugtDie Nachricht m displaystyle m nbsp wird zunachst mit einem Padding Verfahren zu m displaystyle overline m nbsp erweitert so dass die Lange von m displaystyle overline m nbsp ein Vielfaches der Blockgrosse a displaystyle a nbsp ist Dann wird m displaystyle overline m nbsp in n displaystyle n nbsp Blocke der Lange a displaystyle a nbsp aufgeteilt m m 1 m 2 m n displaystyle overline m m 1 m 2 ldots m n nbsp mit m i a displaystyle m i a nbsp Die Kompressionsfunktion f displaystyle f nbsp wird iterativ auf die b displaystyle b nbsp Bit lange Ausgabe der vorherigen Iteration und den nachsten Block m i displaystyle m i nbsp der erweiterten Nachricht angewandt bis diese ganz verarbeitet ist Bei der ersten Iteration besteht die Eingabe aus einem b displaystyle b nbsp Bit langen konstanten Initialisierungsvektor H 0 displaystyle H 0 nbsp und dem ersten Nachrichtenblock m 1 displaystyle m 1 nbsp H i f H i 1 m i 1 i n displaystyle H i f H i 1 m i quad 1 leq i leq n nbsp Der Hash Wert wird dann aus der letzten Kompressionsausgabe durch eine Finalisierungsfunktion berechnet h final H n displaystyle h operatorname final H n nbsp Diese ist haufig die Identitat oder eine Trunkierung nbsp Davies Meyer Kompressionsfunktion nbsp Matyas Meyer Oseas Kompressionsfunktion nbsp Miyaguchi Preneel KompressionsfunktionDie Kompressionsfunktion wird oft aus einer Blockverschlusselung konstruiert wofur es hauptsachlich zwei Moglichkeiten gibt Eine ist die Davies Meyer Kompressionsfunktion H i E m i H i 1 H i 1 displaystyle H i E m i H i 1 oplus H i 1 nbsp Sie nutzt den Nachrichtenblock m i displaystyle m i nbsp als Schlussel um damit den Verkettungswert H i 1 displaystyle H i 1 nbsp zu verschlusseln Danach wird noch der so berechnete Schlusseltext mit dem Klartext verknupft z B durch bitweises XOR Dadurch wird die Eigenschaft einer Blockchiffre aufgehoben den Klartext bijektiv auf den Schlusseltext abzubilden und die Abbildung von H i 1 displaystyle H i 1 nbsp auf H i displaystyle H i nbsp ahnelt wesentlich mehr einer Zufallsfunktion Sonst ware die Kompressionsfunktion auch nicht kollisionssicher denn ein Angreifer konnte H i displaystyle H i nbsp vorgeben und mit verschiedenen m i displaystyle m i nbsp entschlusseln Die zweite ist die Matyas Meyer Oseas Kompressionsfunktion H i E k i m i m i displaystyle H i E k i m i oplus m i nbsp mit k i g H i 1 displaystyle k i g H i 1 nbsp oder k i H i 1 displaystyle k i H i 1 nbsp Sie verschlusselt den Nachrichtenblock mit dem Verkettungswert als Schlussel Auch hier werden Klar und Schlusseltext anschliessend verknupft Die Funktion g displaystyle g nbsp erweitert oder komprimiert H i 1 displaystyle H i 1 nbsp zur Anpassung an die gegebene Schlussellange Als Modifikation von Matyas Meyer Oseas gibt es noch die Miyaguchi Preneel Kompressionsfunktion die sich nur dadurch unterscheidet dass auch H i 1 displaystyle H i 1 nbsp mit dem Schlusseltext verknupft wird H i E k i m i m i H i 1 displaystyle H i E k i m i oplus m i oplus H i 1 nbsp Das ist vor allem dann von Nutzen wenn die Funktion g displaystyle g nbsp den Verkettungswert komprimieren muss denn so geht dessen gesamter Informationsgehalt in H i displaystyle H i nbsp ein Padding BearbeitenDamit die Kollisionssicherheit der Kompressionsfunktion sich beweisbar auf die Hashfunktion ubertragt muss das Paddingverfahren bestimmte Bedingungen erfullen Folgende Bedingungen sind dafur hinreichend 1 m displaystyle m nbsp ist ein Anfangsstuck von m displaystyle overline m nbsp d h die Nachrichten werden nicht verandert nur mit einem Endstuck erweitert Zwei Nachrichten der gleichen Lange werden mit gleich langen Endstucken erweitert Zwei verschieden lange Nachrichten werden unterschiedlich erweitert so dass sie sich im letzten Block der in die letzte Kompressionsstufe eingegeben wird unterscheiden Typischerweise wird beim Padden eine Codierung der Bitlange m displaystyle left m right nbsp an die Nachricht angehangt und dazwischen werden ggfs Bits mit dem Wert 0 eingefugt damit m displaystyle overline m nbsp ein Vielfaches der Blockgrosse a displaystyle a nbsp ist m m 0 k m displaystyle overline m m 0 k m nbsp Schwachen BearbeitenEine Schwache ist ein moglicher Erweiterungs Angriff Extension Attack Wenn die Finalisierungsfunktion umkehrbar ist dann kann man aus dem Hashwert h m displaystyle h m nbsp einer unbekannten Nachricht m displaystyle m nbsp leicht den Hashwert h m y displaystyle h overline m y nbsp einer Nachricht bestimmen die aus der wie oben erweiterten Nachricht durch Anfugen einer Erweiterung y displaystyle y nbsp hervorgeht Man kann also Hashwerte zu Nachrichten bestimmen die m displaystyle m nbsp als Anfangsstuck haben auch wenn man m displaystyle m nbsp nicht kennt 2 Da ein Zufallsorakel diese Eigenschaft nicht hat konnen sich daraus Angriffe auf Verfahren ergeben die nur im Random Oracle Modell einen Sicherheitsbeweis haben 3 Daraus folgt auch wenn man einmal eine Kollision zweier Nachrichten mit gleicher Blockanzahl n displaystyle n nbsp gefunden hat kann man durch Erweiterung leicht weitere Kollisionen bestimmen Mehrfachkollisionen zu finden also mehrere Nachrichten die alle den gleichen Hashwert haben erfordert nur wenig mehr Aufwand als das Bestimmen einer einzelnen Kollision 4 Ein Herding Angriff also zu einem selbst gewahlten Hashwert z und einem gegebenen Anfangsstuck m displaystyle m nbsp einer Nachricht ein passendes Endstuck zu finden so dass die gesamte Nachricht zu z hasht d h ein y displaystyle y nbsp mit h m y z displaystyle h m y z nbsp zu finden erfordert zwar mehr Aufwand als das Finden einer Kollision aber wesentlich weniger als es fur ein Zufallsorakel als Hashfunktion h displaystyle h nbsp der Fall sein sollte 5 Ein Angriff zur Bestimmung eines zweiten Urbildes second preimage attack bei dem man zu einer gegebenen Nachricht m displaystyle m nbsp eine zweite m displaystyle m prime nbsp mit demselben Hashwert h m h m displaystyle h m h m prime nbsp sucht ist bei einer Nachricht der Lange von 2 k displaystyle 2 k nbsp Blocken mit dem Zeitaufwand k 2 b 2 1 2 b k 1 displaystyle k2 b 2 1 2 b k 1 nbsp moglich und damit bei langen Nachrichten erheblich schneller als durch systematisches Probieren brute force was etwa 2 b displaystyle 2 b nbsp Schritte erfordert 6 Verbesserungen BearbeitenZur Uberwindung dieser Schwachen hat Stefan Lucks die wide pipe hash Konstruktion vorgeschlagen 7 Um einen Hashwert von b displaystyle b nbsp Bit Lange zu berechnen verwendet man eine Kompressionsfunktion f displaystyle f prime nbsp deren Ausgabe langer als b displaystyle b nbsp ist typischerweise doppelt so lang f displaystyle f prime nbsp komprimiert also 2 b displaystyle 2b nbsp Bit aus der vorherigen Iteration und einen a displaystyle a nbsp Bit langen Nachrichtenblock zu einer Ausgabe von 2 b displaystyle 2b nbsp Bit Nach der letzten Iteration wird die Ausgabe durch eine weitere Kompressionsfunktion von 2 b displaystyle 2b nbsp auf b displaystyle b nbsp Bit verkurzt im einfachsten Fall durch Trunkierung Beispiele SHA 512 256 Grostl nbsp fast wide pipe hashNandi und Paul haben gezeigt dass diese Konstruktion etwa doppelt so schnell gemacht werden kann fast wide pipe hash indem man nur b displaystyle b nbsp Bit aus den vorhergehenden Kompressionen in die nachste Kompression eingibt zusammen mit einem a b displaystyle a b nbsp Bit langen Nachrichtenblock m i displaystyle m i nbsp Die andere Halfte der 2 b displaystyle 2b nbsp Kompressionsausgabe wird mit der darauf folgenden Eingabe XOR verknupft 8 h i f Hi h i 2 Lo h i 1 m i 1 i n 1 displaystyle h i f prime left operatorname Hi h i 2 oplus operatorname Lo h i 1 m i right quad 1 leq i leq n 1 nbsp In der letzten Stufe wird die Ausgabe der vorletzten komplett verarbeitet und der Nachrichtenblock m n displaystyle m n nbsp ist dafur nur a displaystyle a nbsp Bit breit falls man hier nicht eine andere Kompressionsfunktion mit grosserer Eingabe verwendet h n f Hi h n 2 Lo h n 1 Hi h n 1 m n displaystyle h n f prime operatorname Hi h n 2 oplus operatorname Lo h n 1 operatorname Hi h n 1 m n nbsp Hi c displaystyle operatorname Hi c nbsp und Lo c displaystyle operatorname Lo c nbsp bedeuten dabei die erste bzw die zweite Halfte der Bitkette c displaystyle c nbsp Neben der wide pipe hash Konstruktion gilt auch die HAIFA Konstruktion als eine Weiterentwicklung des Merkle Damgard Verfahrens Ein Beispiel dafur ist BLAKE Einzelnachweise Bearbeiten Goldwasser S and Bellare M Lecture Notes on Cryptography Memento des Originals vom 20 Mai 2012 auf WebCite nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot cseweb ucsd edu Summer course on cryptography MIT 1996 2001 Yevgeniy Dodis Thomas Ristenpart Thomas Shrimpton Salvaging Merkle Damgard for Practical Applications Preliminary version in Advances in Cryptology EUROCRYPT 09 Proceedings Lecture Notes in Computer Science Vol 5479 A Joux ed Springer Verlag 2009 S 371 388 J S Coron Y Dodis C Malinaud und P Puniya Merkle Damgard Revisited How to Construct a Hash Function Advances in Cryptology CRYPTO 05 Proceedings Lecture Notes in Computer Science Vol 3621 Springer Verlag 2005 S 21 39 Antoine Joux Multicollisions in iterated hash functions Application to cascaded construction In Advances in Cryptology CRYPTO 04 Proceedings Lecture Notes in Computer Science Vol 3152 M Franklin ed Springer Verlag 2004 S 306 316 John Kelsey und Tadayoshi Kohno Herding Hash Functions and the Nostradamus Attack In Eurocrypt 2006 Lecture Notes in Computer Science Vol 4004 S 183 200 John Kelsey and Bruce Schneier Second preimages on n bit hash functions for much less than 2n work In Ronald Cramer editor EUROCRYPT volume 3494 of LNCS pages 474 490 Springer 2005 1 S Lucks Design Principles for Iterated Hash Functions In Cryptology ePrint Archive Report 2004 253 2004 Mridul Nandi and Souradyuti Paul Speeding Up the Widepipe Secure and Fast Hashing In Guang Gong and Kishan Gupta editor Indocrypt 2010 Springer 2010 Literatur BearbeitenHans Delfs Helmut Knebl Introduction to Cryptography Springer 2002 ISBN 3 540 42278 1 S 40 Abgerufen von https de wikipedia org w index php title Merkles Meta Verfahren amp oldid 231486986