Pelaksanaan akhir algoritma telah diterbitkan , yang menawarkan fungsi cincang kriptografi yang direka untuk aplikasi seperti pengesahan integriti fail, pengesahan mesej dan penjanaan data untuk tandatangan digital. BLAKE3 tidak direka bentuk untuk pencincangan kata laluan (untuk kata laluan, gunakan yescrypt, bcrypt, scrypt, atau Argon2), kerana ia direka bentuk untuk mengira cincangan secepat mungkin sambil menjamin ketiadaan perlanggaran dan perlindungan terhadap dan ketidakpekaan terhadap saiz data yang dicincang. Pelaksanaan rujukan ialah BLAKE3 Dwi berlesen - domain awam (CC0) dan Apache 2.0.
Ciri utama fungsi cincang baharu ialah prestasi pengiraan cincang yang sangat tinggi sambil mengekalkan kebolehpercayaan tahap SHA-3. Secara lalai, saiz cincang yang terhasil dalam BLAKE3 ialah 32 bait (256 bit), tetapi ia boleh dikembangkan kepada nilai arbitrari. Dalam ujian menjana cincang untuk fail 16 KB, BLAKE3 mengatasi SHA3-256 sebanyak 15 kali, SHA-256 sebanyak 12 kali, SHA-512 sebanyak 8 kali, SHA-1 sebanyak 6 kali dan BLAKE2b sebanyak 4 kali. Petunjuk penting ini dikekalkan walaupun semasa memproses jumlah data yang sangat besar; sebagai contoh, BLAKE3 ternyata SHA-256 8 kali lebih pantas apabila mengira cincangan 1GB data rawak.
Algoritma ini dibangunkan oleh pakar kriptografi terkenal (, , , ) dan terus membangunkan algoritma dan menggunakan mekanisme untuk mengekod pokok rantai blok Tidak seperti BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 menawarkan algoritma tunggal untuk semua platform, tidak berkaitan dengan kedalaman bit dan saiz cincang.
Peningkatan prestasi dicapai dengan mengurangkan bilangan pusingan daripada 10 kepada 7 dan blok pencincangan secara berasingan dalam ketulan 1 KB. Menurut pencipta, mereka mendapati sesuatu yang menarik , bahawa 7 pusingan boleh digunakan dan bukannya 10 sambil mengekalkan tahap kebolehpercayaan yang sama (untuk kejelasan, pertimbangkan contoh mencampurkan buah dalam pengisar: selepas 7 saat, buah sudah bercampur sepenuhnya, dan 3 saat tambahan tidak akan menjejaskan konsistensi adunan). Walau bagaimanapun, sesetengah penyelidik menyatakan keraguan, mempercayai bahawa walaupun 7 pusingan pada masa ini mencukupi untuk menentang semua serangan cincang yang diketahui, 3 pusingan tambahan boleh terbukti berguna jika serangan baharu ditemui pada masa hadapan.
Mengenai pembahagian blok, dalam BLAKE3 strim dibahagikan kepada 1 ketulan KB dan setiap ketulan dicincang secara bebas. Berdasarkan cincang ketulan, Satu cincang besar terbentuk. Bahagian ini membolehkan kami menyelesaikan masalah menyelaraskan pemprosesan data semasa mengira cincang—contohnya, kami boleh menggunakan arahan SIMD 4-benang untuk mengira cincang 4 blok secara serentak. Fungsi cincang SHA-* tradisional memproses data secara berurutan.
Ciri-ciri BLAKE3:
- Prestasi tinggi;
- Keselamatan, termasuk penentangan terhadap , yang SHA-2 terdedah kepada;
- Menyediakan penyelarasan pengiraan merentas sebarang bilangan utas dan saluran SIMD;
- Kemungkinan peningkatan pengemaskinian dan pemprosesan aliran yang disahkan;
- Boleh digunakan dalam mod PRF, MAC, KDF, XOF dan sebagai cincang biasa;
- Algoritma tunggal untuk semua seni bina, pantas pada kedua-dua sistem x86-64 dan pemproses ARM 32-bit.
Sumber: opennet.ru
