ΠΠΎΠ½Π΅ΡΠ½Π°ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ Π΅ ΠΎΠ±ΡΠ°Π²Π΅Π½Π° ΠΠΠΠ3, ΠΊΠΎΡ Π½ΡΠ΄ΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠ° Ρ
Π°Ρ-ΡΡΠ½ΠΊΡΠΈΡΠ° Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½Π° Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ΅ΡΠΎΡ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ°, Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° Π½Π° ΠΏΠΎΡΠ°ΠΊΠΈΡΠ΅ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π΄ΠΈΠ³ΠΈΡΠ°Π»Π½ΠΈ ΠΏΠΎΡΠΏΠΈΡΠΈ. BLAKE3 Π½Π΅ Π΅ Π½Π°ΠΌΠ΅Π½Π΅Ρ Π·Π° Ρ
Π°ΡΠΈΡΠ°ΡΠ΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠΈ (Π·Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠΈ ΡΡΠ΅Π±Π° Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ yescrypt, bcrypt, scrypt ΠΈΠ»ΠΈ Argon2), Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΈΠΌΠ° Π·Π° ΡΠ΅Π» Π΄Π° Π³ΠΈ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π° Ρ
Π°ΡΠΈΡΠ΅ ΡΡΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ±ΡΠ·ΠΎ ΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π΄Π΅ΠΊΠ° Π½Π΅ΠΌΠ° ΡΡΠ΄ΠΈΡΠΈ, Π·Π°ΡΡΠΈΡΠ° ΠΎΠ΄ Π½Π°ΠΎΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΡ ΠΈ Π½Π΅ Π΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° Ρ
Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. Π Π΅ΡΠ΅ΡΠ΅Π½ΡΠ½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° BLAKE3 ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΎ ΠΠ²ΠΎΡΠ½Π° Π»ΠΈΡΠ΅Π½ΡΠ° ΠΏΠΎΠ΄ ΡΠ°Π²Π΅Π½ Π΄ΠΎΠΌΠ΅Π½ (CC0) ΠΈ Apache 2.0.
ΠΠ»ΡΡΠ½Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° Π½Π° Π½ΠΎΠ²Π°ΡΠ° Ρ
Π°Ρ-ΡΡΠ½ΠΊΡΠΈΡΠ° Π΅ ΠΌΠ½ΠΎΠ³Ρ Π²ΠΈΡΠΎΠΊΠΈΡΠ΅ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ Π½Π° ΠΏΡΠ΅ΡΠΌΠ΅ΡΠΊΠ°ΡΠ° Π½Π° Ρ
Π°ΡΠΎΡ Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ΅ ΠΎΠ΄ΡΠΆΡΠ²Π° Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ²ΠΎΡΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ SHA-3. Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ, Π΄ΠΎΠ±ΠΈΠ΅Π½Π°ΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° Ρ
Π°Ρ Π²ΠΎ BLAKE3 Π΅ 32 Π±Π°ΡΡΠΈ (256 Π±ΠΈΡΠ°), Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠΈ Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ. ΠΠΎ ΡΠ΅ΡΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Ρ
Π°Ρ Π·Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΎΠ΄ 16 KB, BLAKE3 Π³ΠΎ Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π° SHA3-256 Π·Π° 15 ΠΏΠ°ΡΠΈ, SHA-256 Π·Π° 12 ΠΏΠ°ΡΠΈ, SHA-512 Π·Π° 8 ΠΏΠ°ΡΠΈ, SHA-1 Π·Π° 6 ΠΏΠ°ΡΠΈ ΠΈ BLAKE2b Π·Π° 4 ΠΏΠ°ΡΠΈ. ΠΡΡΠ°Π½ΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΡΠ°Π· ΠΊΠΎΠ³Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°Π°Ρ ΠΌΠ½ΠΎΠ³Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠ»ΠΈΡΠΈΠ½ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° Π΅ BLAKE3 ΠΏΠΎΠ±ΡΡΡΠ΅ SHA-256 Π·Π° 8 ΠΏΠ°ΡΠΈ ΠΊΠΎΠ³Π° ΡΠ΅ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π° Ρ
Π°Ρ Π·Π° 1 GB ΡΠ»ΡΡΠ°ΡΠ½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΎΡ Π΅ ΡΠ°Π·Π²ΠΈΠ΅Π½ ΠΎΠ΄ ΠΏΠΎΠ·Π½Π°ΡΠΈ Π΅ΠΊΡΠΏΠ΅ΡΡΠΈ Π·Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ° (ΠΠ΅ΠΊ Π'ΠΠΎΠ½ΠΎΡ, ΠΠ°Π½-Π€ΠΈΠ»ΠΈΠΏ ΠΡΠΌΠ°ΡΠΎΠ½, Π‘Π°ΠΌΡΠ΅Π» ΠΠ΅Π²Π΅Ρ, ΠΡΠΊΠΎ ΠΠΈΠ»ΠΊΠΎΠΊΡ-ΠβΡ
Π΅ΡΠ½) ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΡ ΠΠΠΠ2 ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ Π½Π° Π΄ΡΠ²ΠΎΡΠΎ Π½Π° Π±Π»ΠΎΠΊ ΡΠΈΠ½ΡΠΈΡΠΎΡ ΠΠ°ΠΎ. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 Π½ΡΠ΄ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΠ°ΠΌ Π·Π° ΡΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π½Π΅ Π²ΡΠ·Π°Π½ Π·Π° Π΄Π»Π°Π±ΠΎΡΠΈΠ½Π°ΡΠ° Π½Π° Π±ΠΈΡΠΎΡ ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° Ρ
Π°ΡΠΎΡ.
ΠΠ³ΠΎΠ»Π΅ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ Π±Π΅Π° ΠΏΠΎΡΡΠΈΠ³Π½Π°ΡΠΈ ΡΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΡΠ΅ Π½Π° Π±ΡΠΎΡΠΎΡ Π½Π° ΠΊΡΡΠ³ΠΎΠ²ΠΈ ΠΎΠ΄ 10 Π½Π° 7 ΠΈ ΠΎΠ΄Π΄Π΅Π»Π½ΠΎ Ρ
Π΅ΡΠΈΡΠ°ΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π²ΠΎ ΠΏΠ°ΡΡΠΈΡΠ° ΠΎΠ΄ 1 KB. Π‘ΠΏΠΎΡΠ΅Π΄ ΠΊΡΠ΅Π°ΡΠΎΡΠΈΡΠ΅, ΡΠΈΠ΅ Π½Π°ΡΠ»Π΅ ΡΠ±Π΅Π΄Π»ΠΈΠ² Π΄ΠΎΠΊΠ°Π·, Π΄Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π΅ΡΠ΅ ΡΠΎ 7 ΠΊΡΡΠ³ΠΎΠ²ΠΈ Π½Π°ΠΌΠ΅ΡΡΠΎ 10, Π΄ΠΎΠ΄Π΅ΠΊΠ° Π³ΠΎ ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ ΠΈΡΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ (Π·Π° ΡΠ°ΡΠ½ΠΎΡΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎ ΠΌΠ΅ΡΠ°ΡΠ΅ ΠΎΠ²ΠΎΡΡΠ΅ Π²ΠΎ ΠΌΠΈΠΊΡΠ΅Ρ - ΠΏΠΎ 7 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΏΠ»ΠΎΠ΄ΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ Π²Π΅ΡΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ°Π½ΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ 3 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΡΠ΅ Π½Π΅ Π²Π»ΠΈΡΠ°Π΅ Π½Π° ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠ° Π½Π° ΡΠΌΠ΅ΡΠ°ΡΠ°). Π‘Π΅ΠΏΠ°ΠΊ, Π½Π΅ΠΊΠΎΠΈ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΈ ΠΈΠ·ΡΠ°Π·ΡΠ²Π°Π°Ρ ΡΠΎΠΌΠ½Π΅ΠΆΠΈ, Π²Π΅ΡΡΠ²Π°ΡΡΠΈ Π΄Π΅ΠΊΠ° Π΄ΡΡΠΈ ΠΈ Π°ΠΊΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ 7 ΡΡΠ½Π΄ΠΈ ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π΄ΡΠΆΠ°Ρ ΡΠΈΡΠ΅ ΠΏΠΎΠ·Π½Π°ΡΠΈ Π½Π°ΠΏΠ°Π΄ΠΈ Π½Π° Ρ
Π°ΡΠΎΠ²ΠΈ, ΡΠΎΠ³Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ 3 ΡΡΠ½Π΄ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΊΠΎΡΠΈΡΠ½ΠΈ Π΄ΠΎΠΊΠΎΠ»ΠΊΡ ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π°Ρ Π½ΠΎΠ²ΠΈ Π½Π°ΠΏΠ°Π΄ΠΈ Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°.
Π¨ΡΠΎ ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π° Π΄ΠΎ ΠΏΠΎΠ΄Π΅Π»Π±Π°ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈ, Π²ΠΎ BLAKE3 ΡΡΡΠΈΠΌΠΎΡ Π΅ ΠΏΠΎΠ΄Π΅Π»Π΅Π½ Π½Π° ΠΏΠ°ΡΡΠΈΡΠ° ΠΎΠ΄ 1 KB ΠΈ ΡΠ΅ΠΊΠΎΠ΅ ΠΏΠ°ΡΡΠ΅ ΡΠ΅ Ρ
Π΅ΡΠΈΡΠ° Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΎ. ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Ρ
Π°ΡΠΎΡ Π½Π° ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π±ΠΈΠ½Π°ΡΠ½ΠΎ ΠΌΠ΅ΡΠΊΠ» Π΄ΡΠ²ΠΎ ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ° Π΅Π΄Π΅Π½ Π³ΠΎΠ»Π΅ΠΌ Ρ
Π°Ρ. ΠΠ²Π°Π° ΠΏΠΎΠ΄Π΅Π»Π±Π° Π½ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΏΡΠΈ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ Π½Π° Ρ
Π°Ρ - Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ SIMD ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΎ 4 Π½ΠΈΡΠΊΠΈ Π·Π° ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ Π΄Π° Π³ΠΈ ΠΏΡΠ΅ΡΠΌΠ΅ΡΠ°ΡΠ΅ Ρ
Π°ΡΠΎΠ²ΠΈΡΠ΅ ΠΎΠ΄ 4 Π±Π»ΠΎΠΊΠ°. Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ SHA-* Ρ
Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ.
ΠΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° BLAKE3:
- ΠΠΈΡΠΎΠΊΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ;
- ΠΠ΅Π·Π±Π΅Π΄Π½ΠΎΡΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΠΎΡΠΏΠΎΡΠ½ΠΎΡΡ Π½Π° Π½Π°ΠΏΠ°Π΄ Π½Π° ΠΈΠ·Π΄ΠΎΠ»ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ°, Π½Π° ΠΊΠΎΡ Π΅ ΠΏΠΎΠ΄Π»ΠΎΠΆΠ΅Π½ SHA-2;
- ΠΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠ΅ΡΠΌΠ΅ΡΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ Π±ΡΠΎΡ Π½Π° Π½ΠΈΡΠΊΠΈ ΠΈ SIMD ΠΊΠ°Π½Π°Π»ΠΈ;
- ΠΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΡΠΈΠΌΠΎΠ²ΠΈΡΠ΅;
- ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌΠΈ PRF, MAC, KDF, XOF ΠΈ ΠΊΠ°ΠΊΠΎ ΠΎΠ±ΠΈΡΠ΅Π½ Ρ
Π°Ρ;
- ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ Π°Π»Π³ΠΎΡΠΈΡΠ°ΠΌ Π·Π° ΡΠΈΡΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΈ, Π±ΡΠ· ΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ x86-64 ΠΈ Π½Π° 32-Π±ΠΈΡΠ½ΠΈΡΠ΅ ARM ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ.
ΠΠ·Π²ΠΎΡ: opennet.ru