рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реЕрд╢ рдлрдВрдХреНрд╢рди BLAKE3 1.0 рдЪреНрдпрд╛ рд╕рдВрджрд░реНрдн рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реЕрд╢ рдлрдВрдХреНрд╢рди BLAKE3 1.0 рдЪреА рд╕рдВрджрд░реНрдн рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЬрд╛рд░реА рдХреЗрд▓реА рдЧреЗрд▓реА, рдЬреА SHA-3 рд╕реНрддрд░рд╛рд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛рдирд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдЙрдЪреНрдЪ рд╣реЕрд╢ рдЧрдгрдирд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╛рдареА рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЖрд╣реЗ. 16 KB рдлрд╛рдЗрд▓рд╕рд╛рдареА рд╣реЕрд╢ рдЬрдирд░реЗрд╢рди рдЪрд╛рдЪрдгреАрдордзреНрдпреЗ, 3-рдмрд┐рдЯ рдХреА рд╕рд╣ BLAKE256 SHA3-256 рдкреЗрдХреНрд╖рд╛ 17 рдкрдЯ, SHA-256 14 рдкрдЯ, SHA-512 9 рд╡реЗрд│рд╛, SHA-1 6 рдкрдЯ рдЖрдгрд┐ BLAKE2b - 5 рд╡реЗрд│рд╛. рдЦреВрдк рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдбреЗрдЯрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛ рдПрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рд░рд╛рд╣рддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 3GB рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛рд╕рд╛рдареА рд╣реЕрд╢рдЪреА рдЧрдгрдирд╛ рдХрд░рддрд╛рдирд╛ BLAKE256 SHA-8 рдкреЗрдХреНрд╖рд╛ 1 рдкрдЯ рд╡реЗрдЧрд╡рд╛рди рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдЖрд▓реЗ. BLAKE3 рд╕рдВрджрд░реНрдн рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХреЛрдб рдбреНрдпреБрдЕрд▓ рдкрдмреНрд▓рд┐рдХ рдбреЛрдореЗрди (CC0) рдЖрдгрд┐ Apache 2.0 рд▓рд╛рдпрд╕рдиреНрд╕ рдЕрдВрддрд░реНрдЧрдд C рдЖрдгрд┐ Rust рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ.

рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реЕрд╢ рдлрдВрдХреНрд╢рди BLAKE3 1.0 рдЪреНрдпрд╛ рд╕рдВрджрд░реНрдн рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рд╣реЕрд╢ рдлрдВрдХреНрд╢рди рдлрд╛рдИрд▓ рдЗрдВрдЯрд┐рдЧреНрд░рд┐рдЯреА рдЪреЗрдХрд┐рдВрдЧ, рдореЗрд╕реЗрдЬ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдЖрдгрд┐ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдбрд┐рдЬрд┐рдЯрд▓ рд╕реНрд╡рд╛рдХреНрд╖рд░реАрд╕рд╛рдареА рдбреЗрдЯрд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗ рдЖрд╣реЗ. BLAKE3 рд╣реЗ рдкрд╛рд╕рд╡рд░реНрдб рд╣реЕрд╢ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╣реЗрддреВрдиреЗ рдирд╛рд╣реА, рдХрд╛рд░рдг рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд▓рд╡рдХрд░ рд╣реЕрд╢рдЪреА рдЧрдгрдирд╛ рдХрд░рдгреЗ рд╣реЗ рддреНрдпрд╛рдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рдЖрд╣реЗ (рдкрд╛рд╕рд╡рд░реНрдбрд╕рд╛рдареА, рд╕реНрд▓реЛ рд╣реЕрд╢ рдлрдВрдХреНрд╢рдиреНрд╕ yescrypt, bcrypt, scrypt рдХрд┐рдВрд╡рд╛ Argon2 рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реА рдЬрд╛рддреЗ). рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рд╣реЕрд╢ рдлрдВрдХреНрд╢рди рд╣реЕрд╢ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдЪреНрдпрд╛ рдЖрдХрд╛рд░рд╛рд╕рд╛рдареА рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЖрд╣реЗ рдЖрдгрд┐ рдЯрдХреНрдХрд░ рдирд┐рд╡рдб рдЖрдгрд┐ рдкреНрд░реАрдЗрдореЗрдЬ рд╢реЛрдзрдгреНрдпрд╛рд╡рд░реАрд▓ рд╣рд▓реНрд▓реНрдпрд╛рдВрдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рд┐рдд рдЖрд╣реЗ.

рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реБрдкреНрд░рд╕рд┐рджреНрдз рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рддрдЬреНрдЮрд╛рдВрдиреА (рдЬреЕрдХ рдУ'рдХреЙрдирд░, рдЬреАрди-рдлрд┐рд▓рд┐рдк рдФрдорд╛рд╕рди, рд╕реЕрдореНрдпреБрдЕрд▓ рдиреЗрд╡реНрд╣рд╕, рдЭреВрдХреЛ рд╡рд┐рд▓реНрдХреЙрдХреНрд╕-рдУ'рд╣рд░реНрди) рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрдгрд┐ BLAKE2 рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪрд╛ рд╡рд┐рдХрд╛рд╕ рд╕реБрд░реВ рдареЗрд╡рд▓рд╛ рдЖрдгрд┐ рдмреНрд▓реЙрдХ рдЪреЗрди рдЯреНрд░реА рдПрдиреНрдХреЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрд╛рдУ рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рддреЗ. . BLAKE2 (BLAKE2b, BLAKE2s) рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, BLAKE3 рд╕рд░реНрд╡ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рдПрдХрдЪ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдСрдлрд░ рдХрд░рддреЗ, рдмрд┐рдЯ рдбреЗрдкреНрде рдЖрдгрд┐ рд╣реЕрд╢ рдЖрдХрд╛рд░рд╛рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдирд╛рд╣реА.

рд░рд╛рдЙрдВрдбреНрд╕рдЪреА рд╕рдВрдЦреНрдпрд╛ 10 рд╡рд░реВрди 7 рдкрд░реНрдпрдВрдд рдХрдореА рдХрд░реВрди рдЖрдгрд┐ 1 KB рддреБрдХрдбреНрдпрд╛рдВрдордзреНрдпреЗ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рдмреНрд▓реЙрдХ рд╣реЕрд╢ рдХрд░реВрди рд╡рд╛рдвреАрд╡ рдХрд╛рдордЧрд┐рд░реА рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реА. рдирд┐рд░реНрдорд╛рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдореНрд╣рдгрдгреНрдпрд╛рдиреБрд╕рд╛рд░, рддреНрдпрд╛рдВрдирд╛ рдЦрд╛рддреНрд░реАрд╢реАрд░ рдЧрдгрд┐рддреАрдп рдкреБрд░рд╛рд╡рд╛ рд╕рд╛рдкрдбрд▓рд╛ рдЖрд╣реЗ рдХреА рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддреЗрдЪреА рд╕рдорд╛рди рдкрд╛рддрд│реА рд░рд╛рдЦреВрди 7 рдРрд╡рдЬреА 10 рдлреЗрд▒реНрдпрд╛ рдорд╛рд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ (рд╕реНрдкрд╖реНрдЯрддреЗрд╕рд╛рдареА, рдЖрдореНрд╣реА рдорд┐рдХреНрд╕рд░рдордзреНрдпреЗ рдлрд│ рдорд┐рд╕рд│рдгреНрдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдК рд╢рдХрддреЛ - 7 рд╕реЗрдХрдВрджрд╛рдВрдирдВрддрд░ рдлрд│ рдЖрдзреАрдЪ рдкреВрд░реНрдгрдкрдгреЗ рдорд┐рд╕рд│рд▓реЗрд▓реЗ рдЖрд╣реЗ, рдЖрдгрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд 3 рд╕реЗрдХрдВрдж рдорд┐рд╢реНрд░рдгрд╛рдЪреНрдпрд╛ рд╕реБрд╕рдВрдЧрддрддреЗрд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рдгрд╛рд░ рдирд╛рд╣реАрдд). рддрдерд╛рдкрд┐, рдХрд╛рд╣реА рд╕рдВрд╢реЛрдзрдХ рд╢рдВрдХрд╛ рд╡реНрдпрдХреНрдд рдХрд░рддрд╛рдд, рдЕрд╕рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХреА рд╣реЕрд╢рд╡рд░реАрд▓ рд╕рд░реНрд╡ рдЬреНрдЮрд╛рдд рд╣рд▓реНрд▓реНрдпрд╛рдВрдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдзреНрдпрд╛ 7 рд░рд╛рдЙрдВрдб рдкреБрд░реЗрд╕реЗ рдЕрд╕рд▓реЗ рддрд░реАрд╣реА, рднрд╡рд┐рд╖реНрдпрд╛рдд рдирд╡реАрди рд╣рд▓реНрд▓реЗ рдУрд│рдЦрд▓реЗ рдЧреЗрд▓реНрдпрд╛рд╕ рдЕрддрд┐рд░рд┐рдХреНрдд 3 рд░рд╛рдЙрдВрдб рдЙрдкрдпреБрдХреНрдд рдард░реВ рд╢рдХрддрд╛рдд.

рдмреНрд▓реЙрдХреНрд╕рдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрдгреНрдпрд╛рд╕рд╛рдареА, BLAKE3 рдордзреНрдпреЗ рдкреНрд░рд╡рд╛рд╣ 1 KB рддреБрдХрдбреНрдпрд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рддреБрдХрдбрд╛ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рд╣реЕрд╢ рдХреЗрд▓рд╛ рдЖрд╣реЗ. рддреБрдХрдбреНрдпрд╛рдВрдЪреНрдпрд╛ рд╣реЕрд╢рдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ, рдмрд╛рдпрдирд░реА рдорд░реНрдХрд▓ рдЭрд╛рдбрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдореЛрдард╛ рд╣реЕрд╢ рддрдпрд╛рд░ рд╣реЛрддреЛ. рд╣реЗ рд╡рд┐рднрд╛рдЬрди рдЖрдореНрд╣рд╛рд▓рд╛ рд╣реЕрд╢рдЪреА рдЧрдгрдирд╛ рдХрд░рддрд╛рдирд╛ рд╕рдорд╛рдВрддрд░ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧрдЪреА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд┐рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ - рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдкрдг рдПрдХрд╛рдЪ рд╡реЗрд│реА 4 рдмреНрд▓реЙрдХреНрд╕рдЪреНрдпрд╛ рд╣реЕрд╢рдЪреА рдЧрдгрдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА 4-рдереНрд░реЗрдбреЗрдб SIMD рд╕реВрдЪрдирд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ SHA-* рд╣реЕрд╢ рдлрдВрдХреНрд╢рдиреНрд╕ рдбреЗрдЯрд╛рд╡рд░ рдЕрдиреБрдХреНрд░рдореЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдд.

BLAKE3 рдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ:

  • рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, BLAKE3 MD5, SHA-1, SHA-2, SHA-3 рдЖрдгрд┐ BLAKE2 рдкреЗрдХреНрд╖рд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗ.
  • SHA-2 рд╕рдВрд╡реЗрджрдирд╛рдХреНрд╖рдо рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рдВрджреЗрд╢ рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рд╣рд▓реНрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рддрд┐рдХрд╛рд░рд╛рд╕рд╣ рд╕реБрд░рдХреНрд╖рд╛;
  • Rust рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз, SSE2, SSE4.1, AVX2, AVX-512 рдЖрдгрд┐ NEON рд╕реВрдЪрдирд╛рдВрд╕рд╛рдареА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реЗ.
  • рдХрд┐рддреАрд╣реА рдереНрд░реЗрдбреНрд╕ рдЖрдгрд┐ SIMD рдЪреЕрдиреЗрд▓рд╡рд░ рдЧрдгрдирд╛рдВрдЪреЗ рд╕рдорд╛рдВрддрд░реАрдХрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ.
  • рдкреНрд░рд╡рд╛рд╣рд╛рдВрдЪреЗ рд╡рд╛рдвреАрд╡ рдЕрджреНрдпрддрди рдЖрдгрд┐ рд╕рддреНрдпрд╛рдкрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рд╢рдХреНрдпрддрд╛;
  • PRF, MAC, KDF, XOF рдореЛрдбрдордзреНрдпреЗ рдЖрдгрд┐ рдирд┐рдпрдорд┐рдд рд╣реЕрд╢ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд╛;
  • рд╕рд░реНрд╡ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдПрдХрдЪ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо, рджреЛрдиреНрд╣реА x86-64 рд╕рд┐рд╕реНрдЯрдо рдЖрдгрд┐ 32-рдмрд┐рдЯ рдПрдЖрд░рдПрдо рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░ рдЬрд▓рдж.

BLAKE3 рдЖрдгрд┐ BLAKE2 рдордзреАрд▓ рдореБрдЦреНрдп рдлрд░рдХ:

  • рдмрд╛рдпрдирд░реА рдЯреНрд░реА рд╕реНрдЯреНрд░рдХреНрдЪрд░рдЪрд╛ рд╡рд╛рдкрд░ рдЬреЗ рд╣реЕрд╢ рдЧрдгрдиреЗрдордзреНрдпреЗ рдЕрдорд░реНрдпрд╛рджрд┐рдд рд╕рдорд╛рдВрддрд░рддреЗрд╕рд╛рдареА рдЕрдиреБрдорддреА рджреЗрддреЗ.
  • рдлреЗрд▒реНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ 10 рд╡рд░реВрди 7 рдкрд░реНрдпрдВрдд рдХрдореА рдХрд░рдгреЗ.
  • рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рддреАрди рдкрджреНрдзрддреА: рд╣реЕрд╢рд┐рдВрдЧ, рдХреА рд╕рд╣ рд╣реЕрд╢рд┐рдВрдЧ (HMAC) рдЖрдгрд┐ рдХреА рдЬрдирд░реЗрд╢рди (KDF).
  • рдХреА рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдмреНрд▓реЙрдХрдиреЗ рдкреВрд░реНрд╡реА рд╡реНрдпрд╛рдкрд▓реЗрд▓реНрдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ рдХреА рд╕рд╣ рд╣реЕрд╢ рдХрд░рддрд╛рдирд╛ рдХреЛрдгрддреЗрд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡реНрд╣рд░рд╣реЗрдб рдирд╛рд╣реА.
  • рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдкрд░рд┐рдгрд╛рдорд╛рд╕рд╣ (XOF, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдлрдВрдХреНрд╢рди) рдлрдВрдХреНрд╢рдирдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдЕрдВрдЧрднреВрдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдпрдВрддреНрд░рдгрд╛, рд╕рдорд╛рдВрддрд░реАрдХрд░рдг рдЖрдгрд┐ рд╕реНрдерд┐рддреА (рд╢реЛрдз) рд▓рд╛ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛