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

Die Referenzimplementierung der kryptografischen Hash-Funktion BLAKE3 1.0 wurde veröffentlicht, die sich durch eine außergewöhnlich hohe Hash-Berechnungsleistung bei gleichzeitigem Niveau der ZuverlĂ€ssigkeit von SHA-3 auszeichnet. 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 deutliche Vorteil bleibt auch bei der Verarbeitung sehr großer Datenmengen erhalten, so war BLAKE3 beispielsweise im Vergleich zu SHA-256 um das 8-Fache schneller bei der Berechnung des Hashs fĂŒr 1 GB zufĂ€lliger Daten. Der Code der Referenzimplementierung von BLAKE3 ist in C und Rust verfĂŒgbar und wird unter einer doppelten Lizenz vertrieben – Public Domain (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 Generierung von Daten fĂŒr kryptografische digitale Signaturen ausgelegt. BLAKE3 ist nicht fĂŒr das Hashing von Passwörtern gedacht, da sie auf eine maximale Geschwindigkeit bei der Hash-Berechnung abzielt (fĂŒr Passwörter sollten langsame Hash-Funktionen wie yescrypt, bcrypt, scrypt oder Argon2 verwendet werden). Die betrachtete Hash-Funktion ist unempfindlich gegenĂŒber der GrĂ¶ĂŸe der zu hashenden Daten und schĂŒtzt vor Kollisionserkennung und dem Finden von Vorbildern.

Der Algorithmus wurde von renommierten Kryptographen (Jack O’Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O’Hearn) entwickelt und setzt die Entwicklung des Algorithmus BLAKE2 fort und verwendet fĂŒr das Kodieren des Blöcke-Kettenbaums den Bao-Mechanismus. Im Gegensatz zu BLAKE2 (BLAKE2b, BLAKE2s) bietet BLAKE3 einen einheitlichen Algorithmus fĂŒr alle Plattformen, der nicht an die Bitbreite und die GrĂ¶ĂŸe des Hashs gebunden ist.

Die Leistungssteigerung konnte durch die Reduzierung der Rundenanzahl von 10 auf 7 und das getrennte Hashing von Blöcken in 1-KB-StĂŒcke erreicht werden. Laut den Entwicklern haben sie einen ĂŒberzeugenden mathematischen Beweis gefunden, dass 7 Runden anstelle von 10 ausreichend sind, um das gleiche Maß an ZuverlĂ€ssigkeit zu gewĂ€hrleisten (als anschauliches Beispiel kann man das Mischen von FrĂŒchten in einem Mixer nehmen – nach 7 Sekunden sind die FrĂŒchte bereits vollstĂ€ndig vermischt, und zusĂ€tzliche 3 Sekunden haben keinen Einfluss auf die Konsistenz des Mischs). Einige Forscher Ă€ußern jedoch Bedenken, da sie der Meinung sind, dass selbst wenn 7 Runden derzeit ausreichend sind, um allen bekannten Angriffen auf Hashes zu widerstehen, die zusĂ€tzlichen 3 Runden in Zukunft nĂŒtzlich sein könnten, falls neue Angriffe entdeckt werden.

Was die Blockteilung betrifft, wird der BLAKE3-Stream in 1-KB-StĂŒcke zerlegt und jedes StĂŒck wird unabhĂ€ngig gehasht. Auf Basis der Hashes der StĂŒcke wird mithilfe eines Merkle-Baums ein großer Hash generiert. Diese Teilung ermöglicht die Lösung des Problems der parallelisierten Datenverarbeitung beim Berechnen des Hashs – beispielsweise können 4-Thread-SIMD-Anweisungen verwendet werden, um die Hashes von 4 Blöcken gleichzeitig zu berechnen. Traditionelle Hash-Funktionen wie SHA-* verarbeiten Daten nacheinander.

Eigenschaften 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 NachrichtenverlĂ€ngerungsangriffe, denen SHA-2 ausgesetzt ist.
  • Es sind Varianten in Rust verfĂŒgbar, die fĂŒr die Verwendung von SSE2-, SSE4.1-, AVX2-, AVX-512- und NEON-Anweisungen optimiert sind.
  • GewĂ€hrleistung der Parallelisierung von Berechnungen ĂŒber beliebig viele Threads und SIMD-KanĂ€le.
  • Möglichkeit der inkrementellen Aktualisierung und verifizierten Verarbeitung von Streams;
  • Anwendung in den Modi PRF, MAC, KDF, XOF und 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.
  • Reduzierung der Rundenanzahl von 10 auf 7.
  • Drei Betriebsmodi: Hashing, Hashing mit SchlĂŒssel (HMAC) und SchlĂŒsselgenerierung (KDF).
  • Fehlende zusĂ€tzliche Overheads beim Hashing mit SchlĂŒssel durch die Nutzung des Bereichs, der zuvor vom Parameterblock des SchlĂŒssels belegt war.
  • Integrierter Mechanismus zur Funktion als Extendable Output Function (XOF), die Parallelisierung und Positionierung (Seek) ermöglicht.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster