Veröffentlichung der Referenzimplementierung der kryptografischen Hash-Funktion BLAKE3 1.0

Die Referenzimplementierung der kryptografischen Hash-Funktion BLAKE3 1.0 wurde veröffentlicht und zeichnet sich durch eine bemerkenswert hohe Hash-Berechnungsleistung aus, wĂ€hrend sie eine ZuverlĂ€ssigkeit auf dem Niveau von SHA-3 bietet. Im Test zur Hash-Generierung fĂŒr eine Datei mit einer GrĂ¶ĂŸe von 16 KB ĂŒbertrifft BLAKE3 mit einem 256-Bit-SchlĂŒssel SHA3-256 um das 17-fache, SHA-256 um das 14-fache, SHA-512 um das 9-fache, SHA-1 um das 6-fache und BLAKE2b um das 5-fache. Der signifikante Vorsprung bleibt auch bei der Verarbeitung sehr großer Datenmengen bestehen; BLAKE3 war beispielsweise 8-mal schneller als SHA-256 bei der Hash-Berechnung fĂŒr 1 GB zufĂ€lliger Daten. Der Code der Referenzimplementierung von BLAKE3 ist in den Programmiersprachen C und Rust unter einer doppelten Lizenz verfĂŒgbar – gemeinfrei (CC0) und Apache 2.0.

Veröffentlichung der Referenzimplementierung der kryptografischen Hash-Funktion BLAKE3 1.0

Die Hash-Funktion ist fĂŒr Anwendungen wie die ÜberprĂŒfung der IntegritĂ€t von Dateien, die Authentifizierung von Nachrichten und die Erstellung von Daten fĂŒr kryptografische digitale Signaturen konzipiert. BLAKE3 ist nicht fĂŒr die Hashierung von Passwörtern geeignet, da sie auf die schnellstmögliche Berechnung von Hashes abzielt (fĂŒr Passwörter werden langsame Hash-Funktionen wie yescrypt, bcrypt, scrypt oder Argon2 empfohlen). Die betrachtete Hash-Funktion ist nicht empfindlich gegenĂŒber der GrĂ¶ĂŸe der zu hashierenden Daten und bietet Schutz gegen Kollisionsangriffe und das Finden von Urbildern.

Der Algorithmus wurde von bekannten Krypto-Experten (Jack O’Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O’Hearn) entwickelt und baut auf dem BLAKE2-Algorithmus auf, wobei zur Kodierung der Blockchain-BĂ€ume der Bao-Mechanismus verwendet wird. Im Gegensatz zu BLAKE2 (BLAKE2b, BLAKE2s) bietet BLAKE3 fĂŒr alle Plattformen einen einheitlichen Algorithmus, der unabhĂ€ngig von der Bitbreite und der Hash-GrĂ¶ĂŸe ist.

Die Leistungssteigerung wurde durch die Reduzierung der Rundenanzahl von 10 auf 7 und die getrennte Hash-Berechnung der Blöcke in StĂŒcke von 1 KB erreicht. Laut den Entwicklern haben sie einen ĂŒberzeugenden mathematischen Beweis gefunden, dass 7 Runden anstelle von 10 ausreichen, um das gleiche Niveau an ZuverlĂ€ssigkeit zu gewĂ€hrleisten (zum Beispiel kann man mit dem Mischen von FrĂŒchten in einem Mixer vergleichen – nach 7 Sekunden sind die FrĂŒchte bereits vollstĂ€ndig vermischt, und weitere 3 Sekunden haben keinen Einfluss auf die Konsistenz der Mischung). Dennoch Ă€ußern einige Forscher Bedenken, da sie der Meinung sind, dass selbst wenn derzeit 7 Runden ausreichend sind, um sich gegen alle bekannten Angriffe auf Hashes zu verteidigen, zusĂ€tzliche 3 Runden hilfreich sein könnten, falls in Zukunft neue Angriffe entdeckt werden.

Im Hinblick auf die Blockaufteilung wird der BLAKE3-Stream in StĂŒcke von 1 KB unterteilt, wobei jedes StĂŒck unabhĂ€ngig gehasht wird. Auf Basis der Hashes der StĂŒcke wird ein großer Hash ĂŒber eine binĂ€re Merkle-Baumstruktur gebildet. Diese Unterteilung ermöglicht eine parallele Datenverarbeitung beim Berechnen des Hashs – beispielsweise können 4-Thread-SIMD-Instruktionen verwendet werden, um gleichzeitig die Hashes von 4 Blöcken zu berechnen. Traditionelle Hash-Funktionen wie SHA-* verarbeiten Daten sequenziell.

Merkmale von BLAKE3:

  • Hohe Leistung; BLAKE3 ist deutlich schneller als MD5, SHA-1, SHA-2, SHA-3 und BLAKE2.
  • Sicherheit, einschließlich der WiderstandsfĂ€higkeit gegen die VerlĂ€ngerungsangriffe, denen SHA-2 ausgesetzt ist.
  • Es sind Versionen in Rust verfĂŒgbar, die fĂŒr die Nutzung der Instruktionen SSE2, SSE4.1, AVX2, AVX-512 und NEON optimiert sind.
  • Sicherstellung der Parallelisierung der Berechnungen ĂŒber beliebig viele Threads und SIMD-KanĂ€le.
  • Möglichkeit zur inkrementellen Aktualisierung und verifiziertem Verarbeiten von Datenströmen;
  • Anwendung in den Modi PRF, MAC, KDF, XOF sowie als gewöhnlicher Hash.
  • Ein einheitlicher Algorithmus fĂŒr alle Architekturen, schnell sowohl auf x86-64-Systemen als auch auf 32-Bit ARM-Prozessoren.

Die Hauptunterschiede zwischen BLAKE3 und BLAKE2:

  • Verwendung einer binĂ€ren Baumstruktur, die unbegrenzte ParallelitĂ€t bei der Berechnung des Hashs ermöglicht.
  • Verringerung der Rundenanzahl von 10 auf 7.
  • Drei Betriebsmodi: Hashing, Hashing mit SchlĂŒssel (HMAC) und SchlĂŒsselableitung (KDF).
  • Keine zusĂ€tzlichen Overheads beim Hashing mit SchlĂŒssel durch die Verwendung des zuvor vom Parameterblock eingenommenen Bereichs.
  • Integrierter Betrieb als Funktion mit erweiterbarem Ergebnis (XOF, Extendable Output Function), die Parallelisierung und Positionierung (Seek) ermöglicht.

Quelle: opennet.ru

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster