Die endgültige Implementierung des Algorithmus wurde veröffentlicht. , die eine kryptographische Hash-Funktion bietet, die für Anwendungen wie die Integritätsprüfung von Dateien, die Authentifizierung von Nachrichten und die Erstellung von Daten für digitale Signaturen ausgelegt ist. BLAKE3 ist nicht für die Hashierung von Passwörtern gedacht (für Passwörter sollten Sie yescrypt, bcrypt, scrypt oder Argon2 verwenden), da sie auf die schnellste Berechnung von Hash-Werten mit der Garantie der Kollisionsfreiheit und einen Schutz gegen und ist nicht empfindlich gegenüber der Größe der zu hashenden Daten. Die Referenzimplementierung von BLAKE3 steht unter doppelter Lizenz – Public Domain (CC0) und Apache 2.0.
Ein Hauptmerkmal der neuen Hash-Funktion ist die überragend hohe Leistung bei der Berechnung des Hashs, während die Zuverlässigkeit auf dem Niveau von SHA-3 bleibt. Standardmäßig beträgt die Größe des resultierenden Hashs in BLAKE3 32 Byte (256 Bit), kann jedoch auf beliebige Werte erweitert werden. Im Test zur Hash-Generierung für eine Datei mit einer Größe von 16 KB übertrifft BLAKE3 SHA3-256 um das 15-fache, SHA-256 um das 12-fache, SHA-512 um das 8-fache, SHA-1 um das 6-fache und BLAKE2b um das 4-fache. Auch bei der Verarbeitung sehr großer Datenmengen bleibt der Abstand signifikant. SHA-256 um das 8-fache bei der Berechnung des Hashs für 1 GB zufälliger Daten.
Der Algorithmus wurde von renommierten Krypto-Spezialisten entwickelt (, , , ) und setzt die Entwicklung des Algorithmus fort und verwendet für das Codieren des Baumdiagramms von Blockchains den Mechanismus . Im Gegensatz zu BLAKE2 (BLAKE2b, BLAKE2s) bietet BLAKE3 einen einheitlichen Algorithmus für alle Plattformen, der nicht an die Bitbreite und die Hash-Größe gebunden ist.
Die Leistungssteigerung wurde durch die Reduzierung der Runden von 10 auf 7 und das separate Hashing der Blöcke in 1 KB große Stücke erreicht. Laut den Schöpfern haben sie überzeugende , dass man mit 7 Runden anstelle von 10 auskommen kann, während das gleiche Maß an Zuverlässigkeit beibehalten wird (zum besseren Verständnis kann ein Beispiel mit dem Mixen von Früchten in einem Mixer angeführt werden – nach 7 Sekunden sind die Früchte bereits vollständig vermischt, und zusätzliche 3 Sekunden haben keinen Einfluss auf die Konsistenz der Mischung). Einige Forscher äußern jedoch Bedenken und glauben, dass selbst wenn 7 Runden derzeit ausreichen, um bekannten Angriffen auf Hashes standzuhalten, zusätzliche 3 Runden nützlich sein könnten, wenn in Zukunft neue Angriffe entdeckt werden.
Was die Aufteilung in Blöcke betrifft, so wird der BLAKE3-Stream in Stücke von 1 KB zerlegt, und jedes Stück wird unabhängig gehasht. Auf der Grundlage der Hashes der Stücke wird gebildet, der einen großen Hash erzeugt. Diese Aufteilung ermöglicht es, das Problem der Erstellung von Hashes parallel zu verarbeiten – man kann beispielsweise 4-Thread-SIMD-Instruktionen verwenden, um gleichzeitig die Hashes von 4 Blöcken zu berechnen. Traditionelle Hash-Funktionen SHA-* verarbeiten Daten sequentiell.
Merkmale von BLAKE3:
- Hohe Leistung;
- Sicherheit, einschließlich Widerstand gegen , die SHA-2 ausgesetzt sind;
- Bereitstellung von Parallelverarbeitung für 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 und als normaler Hash;
- Ein einheitlicher Algorithmus für alle Architekturen, schnell sowohl auf x86-64-Systemen als auch auf 32-Bit ARM-Prozessoren.
Quelle: opennet.ru
