www.wikidata.de-de.nina.az
Dieser Artikel oder Abschnitt bedarf einer grundsatzlichen Uberarbeitung Naheres sollte auf der Diskussionsseite angegeben sein Bitte hilf mit ihn zu verbessern und entferne anschliessend diese Markierung HAIFA Abkurzung fur HAsh Iterative FrAmework ist eine von Eli Biham und Orr Dunkelman entwickelte Konstruktionsmethode fur iterative Kryptologische Hashfunktionen Sie wurde 2006 veroffentlicht und seitdem in vielen Hashfunktionen verwendet Inhaltsverzeichnis 1 Hintergrund 2 Aufbau 3 Eigenschaften 4 Alternative Konstruktionen zu HAIFA 5 Hashfunktionen mit HAIFA Konstruktion 6 Weblinks 7 EinzelnachweiseHintergrund BearbeitenIterative Hashfunktionen zerlegen die zu hashende Nachricht in gleich lange Blocke die von einer Kompressionsfunktion oft aus einer Blockchiffre konstruiert schrittweise abgearbeitet d h in einen Datenblock fester Grosse eingearbeitet werden Dieser Datenblock enthalt am Ende den berechneten Hashwert Die Merkle Damgard Konstruktion ist die verbreitetste Moglichkeit ein solches iteratives Hashverfahren zu konstruieren Ein Hashverfahren nach der Merkle Damgard Konstruktion ist beweisbar kollisionssicher wenn eine kollisionssichere Kompressionsfunktion genutzt wird Ursprunglich wurde angenommen dies gelte auch fur die second Preimage Resistenz allerdings wird das in neueren Untersuchungen widerlegt 1 2 In der Folge dieser Analysen versuchte man das Merkle Damgard Verfahren weiterzuentwickeln wie beispielsweise durch HAIFA oder durch ein anderes Verfahren zu ersetzen Drei von 14 Kandidaten der zweiten Runde im SHA 3 Auswahlverfahren fur eine neue Hashfunktion beruhten auf der HAIFA Konstruktion BLAKE SHAvite 3 ECHO 3 Aufbau BearbeitenHAIFA erganzt die Merkle Damgard Konstruktion durch drei Neuerungen Erstens werden der Kompressionsfunktion zusatzliche Daten eingegeben welche die Rolle und Position jedes Schritts in der Iterationsfolge eindeutig bezeichnen Dadurch kann ein Angreifer keine Schritte weglassen oder zusatzlich einfugen denn die nachfolgenden Schritte wurden dann anders arbeiten Insbesondere wird der letzte Schritt Finalisierung eindeutig bezeichnet um Erweiterungsangriffe zu verhindern Dies soll unter anderem auch Offline Phasen von Angriffen und die gegen die Merkle Damgard Konstruktion erfolgreichen fixed point attacks 4 erschweren Zweitens erhalt die Kompressionsfunktion Salz als zusatzliche Eingabe Drittens wird auch die Lange des zu berechnenden Hashwertes der Kompressionsfunktion eingegeben Zunachst wird die Nachricht M displaystyle M nbsp mit dem HAIFA Padding Scheme erweitert Dabei darf aber keine Information verloren gehen d h aus der erweiterten Nachricht muss die ursprungliche Nachricht eindeutig rekonstruierbar sein Zu diesem Zweck wird die Nachricht um eine 1 erganzt gefolgt von einer variablen Anzahl von Nullen Daran wird noch die Lange M displaystyle M nbsp der ursprunglichen Nachricht und die Lange m displaystyle m nbsp des Hashwertes angefugt jeweils in einem Feld fester Breite N M 10 r M m displaystyle N M 10 r M m nbsp Die zugrunde liegende Kompressionsfunktion erfordert eine bestimmte Nachrichten Blocklange l displaystyle l nbsp Die Zahl der angefugten Nullen wird daher auf eine Zahl r 0 1 l 1 displaystyle r in 0 1 dots l 1 nbsp festgelegt sodass die Lange der erweiterten Nachricht N displaystyle N nbsp ein Vielfaches von l displaystyle l nbsp ist N displaystyle N nbsp wird in Blocke N 1 N n displaystyle N 1 dots N n nbsp der Lange l displaystyle l nbsp Bit geteilt Wie bei der Merkle Damgard Konstruktion werden diese Nachrichtenblocke durch aufeinanderfolgende Aufrufe einer Kompressionsfunktion C displaystyle C nbsp iterativ verarbeitet C displaystyle C nbsp erhalt die vorherige Ausgabe von C displaystyle C nbsp und den jeweils nachsten Nachrichtenblock als Eingabe Bei der HAIFA Konstruktion werden zusatzlich zwei weitere Parameter eingegeben Das Salz S displaystyle S nbsp und die Zahl der bis dahin verarbeiteten Bits der ursprunglichen Nachricht M displaystyle M nbsp einschliesslich derer im aktuellen Block x 0 C I V m 0 0 displaystyle x 0 C IV m 0 0 nbsp x i C x i 1 N i S L i i 1 n displaystyle x i C x i 1 N i S L i i in 1 dots n nbsp mit L i i l wenn i l M M wenn M lt i l lt M l 0 wenn i l M l displaystyle L i begin cases i cdot l amp text wenn i cdot l leq M M amp text wenn M lt i cdot l lt M l 0 amp text wenn i cdot l geq M l end cases nbsp x n displaystyle x n nbsp oder ein Teil davon ist dann der berechnete Hashwert Beim ersten Iterationsschritt wird noch kein Nachrichtenblock gehasht sondern aus der Lange m displaystyle m nbsp des zu berechnenden Hashwertes und einem konstanten Initialisierungsvektor IV der erste Verkettungswert x 0 displaystyle x 0 nbsp gebildet Diese Berechnung kann vorab erfolgen wenn sich m displaystyle m nbsp nicht andert x 0 displaystyle x 0 nbsp ist dann konstant Beim letzten Iterationsschritt wird 0 displaystyle 0 nbsp anstelle der Zahl der verarbeiteten Nachrichtenbits eingegeben wenn der letzte Block N n displaystyle N n nbsp kein Bit der ursprunglichen Nachricht mehr enthalt Aus der Eingabe in die Kompressionsfunktion kann immer eindeutig abgeleitet werden um welchen Iterationsschritt es sich handelt und ob es bereits der letzte ist Beim ersten Schritt wird die Eingabe m displaystyle m nbsp so formatiert dass sie in jedem Fall anders aussieht als die Eingabe N n displaystyle N n nbsp im letzten Wenn L i 0 mod l displaystyle L i equiv 0 pmod l nbsp mit L i gt 0 displaystyle L i gt 0 nbsp handelt es sich um einen Block voll mit Bits der Ursprungsnachricht und L i l displaystyle L i l nbsp ist die Iterationsnummer Ist L i 0 mod l displaystyle L i not equiv 0 pmod l nbsp dann enthalt der Block die letzten Nachrichtenbits aus deren Zahl L i mod l displaystyle L i bmod l nbsp auch hervorgeht ob es sich um den letzten Block N n displaystyle N n nbsp handelt Falls L i 0 displaystyle L i 0 nbsp ist es der letzte Block der die Nachrichtenlange M displaystyle M nbsp enthalt aus der sich die Iterationsnummer ergibt Das Salz kann aus einem festen oder fur jede gehashte Nachricht verschiedenen Wert bestehen Als Lange werden mindestens 64 Bit empfohlen nach Moglichkeit sollte das Salz aber die halbe Lange des Verkettungswertes x i displaystyle x i nbsp haben In Fallen in denen Salz nicht notwendig erscheint kann S 0 displaystyle S 0 nbsp gesetzt werden Eigenschaften BearbeitenIm Gegensatz beispielsweise zur ebenfalls neuen Sponge Konstruktion ist HAIFA stark an die Merkle Damgard Konstruktion angelehnt und kann als eine Variation von oder Erganzung zu dieser gelten ahnlich wie die Wide Pipe Merkle Damgard Konstruktion Eigenschaften wie die Kollisionssicherheit werden beibehalten Gegenuber der Merkle Damgard Konstruktion bietet HAIFA einen verbesserten Schutz gegen second Preimage Angriffe Die bis zum Zeitpunkt der Entwicklung bekannten Angriffe sind nicht direkt auf HAIFA ubertragbar Charles Bouillaguet und Pierre Alain Fouque konnten 2010 die angenommene Resistenz von HAIFA gegen second Preimage Angriffe bestatigen 5 Die HAIFA Konstruktion ist mit vielen anderen Methoden kombinierbar die die Sicherheitseigenschaften von Hashfunktionen verbessern sollen wie mit RMX randomisiertes Hashing nach Krawczyk und Halevi enveloped Merkle Damgard nach Bellare und Ristenpart RMC und ROX nach Andreeva et al HAIFA unterstutzt Hashwerte mit variablen Langen HAIFA bietet die Moglichkeit des online hashing Statt der gesamten Nachricht muss nur ein Block der Nachricht im Speicher gehalten werden Alternative Konstruktionen zu HAIFA BearbeitenEbenfalls eng angelehnt an die Merkle Damgard Konstruktion ist die Wide Pipe Double Pipe Merkle Damgard Konstruktion Stefan Lucks stellte 2005 6 eine Konstruktion vor bei der der interne Status der Hashfunktion grosser ist als der Hashwert Mit einer geringfugig hoheren Speicheranforderung kann so eine bessere second Preimage Resistenz erreicht werden Viele moderne Hashfunktionen wie Grostl Shabal SIMD Blue Midnight Wish beruhen auf dieser Konstruktion Nicht angelehnt an die Merkle Damgard Konstruktion aber ebenfalls iterativ ist die 2007 von Guido Bertoni Joan Daemen Michael Peeters und Gilles Van Assche entwickelte Sponge Konstruktion die neben Hashfunktionen auch in Stromchiffren verwendet werden kann 7 Hashfunktionen wie Keccak SHA 3 JH CubeHash Fugue Hamsi und Luffa beruhen auf dieser Konstruktion Hashfunktionen mit HAIFA Konstruktion BearbeitenBLAKE SHAvite 3 8 ECHO 9 LAKE 10 Sarmal SWIFFTX HNF 256 11 Auch die Konstruktion von Skein die Unique Block Iteration weist Ahnlichkeiten mit HAIFA auf Weblinks BearbeitenEli Biham und Orr Dunkelman A Framework for Iterative Hash Functions HAIFA 2007 PDF 223 kB Eli Biham und Orr Dunkelman The SHAvite 3 Hash Funktion Tweaked Version 23 November 2009 S 4 9 kurze Beschreibung von HAIFA PDF Orr Dunkelman Re Visiting HAIFA and why you should visit too 2008 PDF 679 kB B Denton R Adhami Modern Hash Function Construction International Conference on Security and Management Juli 2011 PDF Einzelnachweise Bearbeiten 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 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 Springer Verlag 2004 S 306 316 NIST Status Report on the Second Round of the SHA 3 Cryptographic Hash Algorithm Competition Februar 2011 pdf Richared D Dean Formal Aspects of Mobile Code Security Dissertation Princeton University 1999 Charles Bouillaguet Pierre alain Fouque Practical Hash Functions Constructions Resistant to Generic Second Preimage Attacks Beyond the Birthday Bound 2010 Citeseer Stefan Lucks A Failure Friendly Design Principle for Hash Functions In ASIACRYPT 05 Vol 3788 of Lecture Notes in Computer Science Springer Verlag Berlin Heidelberg 2005 S 474 494 Guido Bertoni1 Joan Daemen Michael Peeters Gilles Van Assche Cryptographic sponge functions 2011 PDF 913 kB Eli Biham Orr Dunkelman The SHAvite 3 Hash Function 2009 SHAvite 3 Eine Hashfunktionen basierend auf HAIFA Ryad Benadjila Olivier Billet Henri Gilbert Gilles Macario Rat Thomas Peyrin Matt Robshaw Yannick Seurin SHA 3 Proposal ECHO Version 2 0 20 Juli 2010 pdf Jean Philippe Aumasson Willi Meier Raphael C W Phan The Hash Function Family LAKE In Proceedings of FSE LNCS 5086 Springer Berlin Heidelberg 2008 S 36 53 ISBN 978 3 540 71038 7 Harshvardhan Tiwari Krishna Asawa Building a 256 bit hash function on a stronger MD variant In Central European Journal of Computer Science Juni 2014 S 67 85 Abgerufen von https de wikipedia org w index php title HAIFA kryptologisches Verfahren amp oldid 228349463