Dostępna funkcja kryptograficzna skrótu BLAKE3, która jest 10 razy szybsza niż SHA-2

Opublikowano ostateczną implementację algorytmu BLAKE3, który oferuje kryptograficzną funkcję skrótu przeznaczoną do zastosowań takich jak sprawdzanie integralności plików, uwierzytelnianie wiadomości i generowanie danych do podpisów cyfrowych. BLAKE3 nie jest przeznaczony do mieszania haseł (w przypadku haseł należy używać takcrypt, bcrypt, scrypt lub Argon2), ponieważ ma na celu jak najszybsze obliczenie skrótów z gwarancją braku kolizji, ochroną przed znalezienie prototypu i nie jest wrażliwy na rozmiar zaszyfrowanych danych. Referencyjna implementacja BLAKE3 opublikowany Podwójna licencja w domenie publicznej (CC0) i Apache 2.0.

Kluczową różnicą nowej funkcji skrótu jest bardzo wysoka wydajność obliczeń skrótu przy zachowaniu niezawodności na poziomie SHA-3. Domyślnie wynikowy rozmiar skrótu w BLAKE3 wynosi 32 bajty (256 bitów), ale można go rozszerzyć do dowolnych wartości. W teście generowania skrótu dla pliku o rozmiarze 16 KB BLAKE3 przewyższa SHA3-256 15 razy, SHA-256 12 razy, SHA-512 8 razy, SHA-1 6 razy i BLAKE2b 4 razy. Przy przetwarzaniu bardzo dużych ilości danych pozostaje znaczna luka, jaką okazał się np. BLAKE3 szybciej SHA-256 8 razy przy obliczaniu skrótu dla 1 GB losowych danych.

Dostępna funkcja kryptograficzna skrótu BLAKE3, która jest 10 razy szybsza niż SHA-2

Algorytm został opracowany przez znanych ekspertów w dziedzinie kryptografii (Jacka O'Connora, Jeana-Philippe'a Aumassona, Samuela Nevesa, Zooko Wilcox-O'Hearn) i kontynuuje rozwój algorytmu BLAKE2 i wykorzystuje mechanizm kodowania drzewa łańcucha bloków Bao. W przeciwieństwie do BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 oferuje jeden algorytm dla wszystkich platform, niezależny od głębokości bitowej i rozmiaru skrótu.

Zwiększoną wydajność osiągnięto poprzez zmniejszenie liczby rund z 10 do 7 i oddzielne mieszanie bloków w kawałkach o rozmiarze 1 KB. Zdaniem twórców, okazało się to przekonujące dowód, że można obejść się 7 rundami zamiast 10 przy zachowaniu tego samego poziomu niezawodności (dla jasności można podać przykład mieszania owoców w mikserze - po 7 sekundach owoce są już całkowicie wymieszane i po kolejnych 3 sekundach nie wpływają na konsystencję mieszanki). Część badaczy ma jednak wątpliwości, wierząc, że nawet jeśli obecnie 7 rund wystarczy, aby odeprzeć wszystkie znane ataki na hasze, to dodatkowe 3 rundy mogą się przydać, jeśli w przyszłości zostaną zidentyfikowane nowe ataki.

Jeśli chodzi o dzielenie na bloki, w BLAKE3 strumień jest dzielony na kawałki o wielkości 1 KB i każdy kawałek jest niezależnie mieszany. Na podstawie skrótów elementów bazy binarne drzewo Merkle'a powstaje jeden duży skrót. Podział ten pozwala nam rozwiązać problem równoległego przetwarzania danych przy obliczaniu skrótu - na przykład można zastosować 4-wątkowe instrukcje SIMD, aby jednocześnie obliczyć skróty 4 bloków. Tradycyjne funkcje skrótu SHA-* przetwarzają dane sekwencyjnie.

Cechy BLAKE3:

  • Wysoka wydajność;
  • Bezpieczeństwo, w tym odporność na atak wydłużania wiadomości, na który podatny jest SHA-2;
  • Zapewnienie równoległości obliczeń na dowolnej liczbie wątków i kanałów SIMD;
  • Możliwość przyrostowej aktualizacji i zweryfikowanego przetwarzania strumieni;
  • Używaj w trybach PRF, MAC, KDF, XOF i jako zwykły skrót;
  • Pojedynczy algorytm dla wszystkich architektur, szybki zarówno w systemach x86-64, jak i 32-bitowych procesorach ARM.

Źródło: opennet.ru

Dodaj komentarz