Generowanie sum kontrolnych jest standardem w wielu algorytmach kryptograficznych. W miarę zwiększania mocy obliczeniowej komputerów, dotychczas stosowane algorytmy MD5 oraz SHA-1 przestały być wystarczające pod względem bezpieczeństwa. Rozwiązaniem jest nowy algorytm o nazwie BLAKE2, stworzony przez grupę inżynierów kryptografii.
BLAKE2 jest ulepszoną wersją finałowego algorytmu BLAKE dla SHA-3. Do zalet należy zaliczyć: większe bezpieczeństwo, szybkość porównywalna z MD5 na 64 bitowych platformach i do 33% mniejsze zużycie pamięci RAM, aniżeli SHA-2 i SHA-3 na słabszym sprzęcie. Docelowe oprogramowanie jakie ma korzystać z BLAKE2 to: chmury danych, narzędzia kontroli wersji, dystrybucja oprogramowania, wykrywanie włamań bazujących na hoście oraz przestępczość cyfrowa.
BLAKE2 posiada dwie wersje:
- BLAKE2b – jest zoptymalizowany pod 64 bitowe platformy, w tym architekturę ARM z instrukcjami NEON. Potrafi generować skróty od 1 do 64 bajtów
- BLAKE2s – jest zoptymalizowany pod platformy 8 – 32 bitowe i potrafi generować skróty od 1 do 32 bajtów
Warto także wspomnieć o trybach obliczeń równoległych dla każdej wersji:
- BLAKE2bp – do 4 równoległych instancji obliczeniwoych
- BLAKE2sp – do 8 równoległych instancji obliczeniwoych
Wykres przedstawia ilość cykli na bajt informacji na procesorze Sandy Bridge. Prócz tego widzimy również, ile mebibajtów danych jest wykonywanych na sekundę.
BLAKE2 jest oprogramowaniem implementującym podstawowy tryb jednowątkowy, razem z optymalizacjami dla 32 bitowej architektury, wielordzeniowych procesorów i instrukcji SIMD, aplikacji Merkle-Tree oraz sprawdzania integralności wiadomości. Jest niezwykle szybki podczas hashowania pojedynczego dużego pliku, jak i wielu małych. Dla przykładu, BLAKE2s hashuje 64 bitowe pliki szybciej, aniżeli SHA-1, MD5, a nawet MD4.
Szczególnie ciekawy jest wariant wielordzeniowości i SIMD, czyli tryb obliczeń równoległych, znany jako BLAKE2*p. Ma to zwiększyć wielokrotnie szybkość przetwarzania na procesorach wielordzeniowych typu x86 i ARM. Tryb ten jest jeszcze w fazie projektowania, ale jak zostanie skończony, to autorzy napiszą narzędzie konsolowe b2sum, które zastąpi ewentualnie md5sum.
Oto przykładowe hashe na naszej maszynie:
[root@muszelka b2sum]./b2sum -a blake2b /etc/passwd 243f22745db67809dd14631b7a8e365d0923731fd130960ae17a61d120925c1fca2b57d2bd5a1af3d9d3fb2f61f7985c6e9550c65855f3c58d75748f155c26c5 /etc/passwd [root@muszelka b2sum]# ./b2sum -a blake2s /etc/passwd 0245986216266cbae9e80f33fee13ac234c3a7d8c9bb467dabd329a1dc1052c6 /etc/passwd [root@muszelka b2sum]# ./b2sum -a blake2bp /etc/passwd ea3fa6a092f128ef1ed6f60754d90a5b1d6b6784f6b773c42b17e586f8f71b3b42d70731ef6e370131d1182e09ae18450196535d752c03a7c8192c7143717017 /etc/passwd [root@muszelka b2sum]# ./b2sum -a blake2sp /etc/passwd 69ced0115cfd43c3cf3997c4611f632a6ef1bed03e0d1228852f56e9e9c32ac5 /etc/passwd [root@muszelka src]# md5sum /etc/passwd 75a87dc6ed86e67c25fc5d80a3253906 /etc/passwd [root@muszelka src]# sha1sum /etc/passwd 5f124ecb25dfa54623436dce1724f660eb48848e /etc/passwd
Polecamy przejrzenie pełnej dokumentacji BLAKE2, gdzie wyjaśniono na wielu przykładach jego działanie.
Jaki następca? Pudelek.pl?
BLAKE (wersja 1) PRZEGRAŁ konkurs na algorytm SHA3 w rezultacie czego został nim algorytm Keccak.
To, że wypuszczono później poprawioną wersję BLAKE2 nie zmienia tego faktu. Odrzucono jeszcze kilka innych algorytmów.
Standardem został Keccak, czyli obecnie po prostu SHA3 i tyle. BLAKE poszedł na śmietnik.
Co gorsza BLAKE w wersji 2 NIE PODLEGAŁ AUDYTOWI, więc istnieje potencjalna możliwość, że poprawki wprowadziły jakieś luki pozwalające łamać albo fałszować hashe.
O MD5 nie wiem po co autor wspomina. Ten algorytm nie jest już używany od czasów SHA2, no chyba że do sum kontrolnych plików jako zaszłość historyczna i z reguły jedynie uzupełnienie sum SHA.
PS. Nawet sami autorzy uważają BLAKE2 za następcę JEDYNIE MD5 i (przestarzałego) SHA1:
"[created] with the goal to replace widely used, but broken MD5 and SHA-1 algorithms" http://en.wikipedia.org/wiki/BLAKE_%28hash_functi…
Nie ma niczego o SHA2 i nowym SHA3.
Dużo minusów, zero argumentów. Żałosne.
Ja natomiast przedstawię kolejny – cytat z samego źródła:
"SHA-3 (Keccak) is a fine alternative to SHA-2, has a substantially
different design from the SHA-2 family, and has excellent performance
in hardware.
However, many use cases need an alternative to MD5 – something with
better security properties than MD5 but with high performance in
software. To that end, we've defined BLAKE2, an optimized version of
SHA-3 finalist BLAKE that is faster than MD5 on Intel 64-bit CPUs." http://lists.randombit.net/pipermail/cryptography…
[…] wsparcie dla wielu algorytmów, jak LZMA, Bzip2, PPMD, LZ4 ze sprawdzaniem sum kontrolnych KECCAK, BLAKE2, SHA-256/512. Pcompress posiada optymalizację SSE, funkcje Content-Aware Deduplication i Delta […]