Die kryptografische Hash-Funktion BLAKE3 ist verfügbar, die zehnmal schneller als SHA-10 ist

Die endgültige Implementierung des Algorithmus wurde veröffentlicht BLAKE3, das eine kryptografische Hash-Funktion bietet, die für Anwendungen wie die Überprüfung der Dateiintegrität, die Nachrichtenauthentifizierung und die Generierung von Daten für digitale Signaturen entwickelt wurde. BLAKE3 ist nicht für das Hashing von Passwörtern gedacht (für Passwörter müssen Sie Yescrypt, Bcrypt, Scrypt oder Argon2 verwenden), da es darauf abzielt, Hashes so schnell wie möglich zu berechnen, mit der Garantie, dass es keine Kollisionen gibt, Schutz vor den Prototypen finden und unabhängig von der Größe der gehashten Daten. Referenzimplementierung von BLAKE3 herausgegeben von Doppelt lizenziert unter Public Domain (CC0) und Apache 2.0.

Der Hauptunterschied der neuen Hash-Funktion besteht in der sehr hohen Leistung der Hash-Berechnungen bei gleichzeitiger Beibehaltung der Zuverlässigkeit auf SHA-3-Ebene. Standardmäßig beträgt die resultierende Hash-Größe in BLAKE3 32 Byte (256 Bit), sie kann jedoch auf beliebige Werte erweitert werden. In einem Hash-Generierungstest für eine 16-KB-Datei ü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. Bei der Verarbeitung sehr großer Datenmengen bleibt eine erhebliche Lücke bestehen, wie sich beispielsweise BLAKE3 herausstellte schneller SHA-256 um das 8-fache bei der Hash-Berechnung für 1 GB Zufallsdaten.

Die kryptografische Hash-Funktion BLAKE3 ist verfügbar, die zehnmal schneller als SHA-10 ist

Der Algorithmus wurde von berühmten Kryptographie-Experten entwickelt (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) und entwickelt den Algorithmus weiter BLAKE2 und verwendet einen Mechanismus zum Kodieren des Blockkettenbaums Sack. Im Gegensatz zu BLAKE2 (BLAKE2b, BLAKE2s) bietet BLAKE3 einen einzigen Algorithmus für alle Plattformen, der nicht an die Bittiefe und Hash-Größe gebunden ist.

Eine höhere Leistung wurde erreicht, indem die Anzahl der Runden von 10 auf 7 reduziert und Blöcke in 1-KB-Stücken separat gehasht wurden. Den Machern zufolge fanden sie eine überzeugende Wirkung Beweise, dass man bei gleichbleibender Zuverlässigkeit mit 7 statt 10 Runden auskommt (zur Verdeutlichung können Sie ein Beispiel mit dem Mischen von Früchten in einem Mixer geben – nach 7 Sekunden sind die Früchte bereits vollständig vermischt und weitere 3 Sekunden werden es tun). hat keinen Einfluss auf die Konsistenz der Mischung). Einige Forscher äußern jedoch Zweifel und glauben, dass, selbst wenn derzeit 7 Runden ausreichen, um allen bekannten Angriffen auf Hashes standzuhalten, zusätzliche 3 Runden nützlich sein könnten, wenn in Zukunft neue Angriffe identifiziert werden.

Was die Aufteilung in Blöcke betrifft, wird der Stream in BLAKE3 in 1-KB-Stücke aufgeteilt und jedes Stück wird unabhängig gehasht. Basierend auf Hashes der Stücke auf der Basis Binärer Merkle-Baum Es wird ein großer Hash gebildet. Diese Aufteilung ermöglicht es uns, das Problem der Parallelisierung der Datenverarbeitung bei der Berechnung eines Hashs zu lösen – Sie können beispielsweise 4-Thread-SIMD-Anweisungen verwenden, um die Hashes von 4 Blöcken gleichzeitig zu berechnen. Herkömmliche SHA-*-Hash-Funktionen verarbeiten Daten sequentiell.

Merkmale von BLAKE3:

  • Hochleistung;
  • Sicherheit, einschließlich Widerstand gegen Nachrichtenverlängerungsangriff, für die SHA-2 anfällig ist;
  • Sicherstellung der Parallelisierung von Berechnungen auf einer beliebigen Anzahl von Threads und SIMD-Kanälen;
  • Möglichkeit der inkrementellen Aktualisierung und verifizierten Verarbeitung von Streams;
  • Verwendung in den Modi PRF, MAC, KDF, XOF und als normaler Hash;
  • Ein einziger Algorithmus für alle Architekturen, schnell sowohl auf x86-64-Systemen als auch auf 32-Bit-ARM-Prozessoren.

Source: opennet.ru

Kommentar hinzufügen