рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реНрдпрд╛рд╕ рдкреНрд░рдХрд╛рд░реНрдп BLAKE3 1.0 рдХреЛ рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд░рд┐рд▓реАрдЬ

рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реНрдпрд╛рд╕ рдкреНрд░рдХрд╛рд░реНрдп BLAKE3 1.0 рдХреЛ рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, SHA-3 рд╕реНрддрд░рдорд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрд╛ рдпрд╕рдХреЛ рдзреЗрд░реИ рдЙрдЪреНрдЪ рд╣реНрдпрд╛рд╕ рдЧрдгрдирд╛ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдпред 16 KB рдлрд╛рдЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╣реНрдпрд╛рд╕ рдЬреЗрдирд░реЗрд╢рди рдкрд░реАрдХреНрд╖рдгрдорд╛, BLAKE3 рд▓реЗ 256-рдмрд┐рдЯ рдХреБрдЮреНрдЬреАрд▓реЗ SHA3-256 рд▓рд╛рдИ 17 рдкрдЯрдХ, SHA-256 рд▓рд╛рдИ 14 рдкрдЯрдХ, SHA-512 9 рдкрдЯрдХ, SHA-1 6 рдЧреБрдгрд╛, рд░ BLAKE2b - рд▓рд╛рдИ рдЖрдЙрдЯрдкрд░рдлрд░реНрдо рдЧрд░реНрдЫред рел рдкрдЯрдХред рдзреЗрд░реИ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛рдорд╛ рдбрд╛рдЯрд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрд╛ рдПрдЙрдЯрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЕрдиреНрддрд░ рд░рд╣рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, BLAKE5 SHA-3 рднрдиреНрджрд╛ 256 рдЧреБрдгрд╛ рдЫрд┐рдЯреЛ рднрдпреЛ рдЬрдм 8GB рдЕрдирд┐рдпрдорд┐рдд рдбрд╛рдЯрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╣реНрдпрд╛рд╕ рдЧрдгрдирд╛ рдЧрд░реНрджрд╛ред BLAKE1 рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдбреБрдЕрд▓ рдкрдмреНрд▓рд┐рдХ рдбреЛрдореЗрди (CC3) рд░ Apache 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-рдереНрд░реЗрдбреЗрдб SIMD рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдПрдХреИ рд╕рд╛рде 4 рдмреНрд▓рдХрд╣рд░реВрдХреЛ рд╣реНрдпрд╛рд╕рд╣рд░реВ рдЧрдгрдирд╛ рдЧрд░реНрдиред рдкрд░рдореНрдкрд░рд╛рдЧрдд 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-рдмрд┐рдЯ ARM рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрдорд╛ рдЫрд┐рдЯреЛред

BLAKE3 рд░ BLAKE2 рдмреАрдЪрдХреЛ рдореБрдЦреНрдп рднрд┐рдиреНрдирддрд╛рд╣рд░реВ:

  • рд╣реНрдпрд╛рд╕ рдЧрдгрдирд╛рд╣рд░реВрдорд╛ рдЕрд╕реАрдорд┐рдд рд╕рдорд╛рдирд╛рдиреНрддрд░рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗ рдмрд╛рдЗрдирд░реА рд░реВрдЦ рд╕рдВрд░рдЪрдирд╛рдХреЛ рдкреНрд░рдпреЛрдЧред
  • рд░рд╛рдЙрдиреНрдбрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ 10 рдмрд╛рдЯ 7 рдорд╛ рдШрдЯрд╛рдЙрдБрджреИред
  • рд╕рдЮреНрдЪрд╛рд▓рдирдХрд╛ рддреАрди рдореЛрдбрд╣рд░реВ: рд╣реНрдпрд╛рд╕рд┐рдЩ, рдХреБрдЮреНрдЬреАрд╕рдБрдЧ рд╣реНрдпрд╛рд╕рд┐рдЩ (HMAC) рд░ рдХреБрдЮреНрдЬреА рдЙрддреНрдкрд╛рджрди (KDF)ред
  • рдХреБрдЮреНрдЬреА рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдмреНрд▓рдХрд▓реЗ рдкрд╣рд┐рд▓реЗ рдУрдЧрдЯреЗрдХреЛ рдХреНрд╖реЗрддреНрд░рдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдХреБрдЮреНрдЬреАрд╕рдБрдЧ рд╣реНрдпрд╛рд╕ рдЧрд░реНрджрд╛ рдХреБрдиреИ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрднрд░рд╣реЗрдб рдЫреИрдиред
  • рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирддрд┐рдЬрд╛ (XOF, рдПрдХреНрд╕рдЯреЗрдиреНрдбреЗрдмрд▓ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдХрд╛рд░реНрдп) рдХреЛ рд╕рд╛рде рдПрдХ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд░реВрдкрдорд╛ рдирд┐рд░реНрдорд┐рдд рдЕрдкрд░реЗрдЯрд┐рдЩ рдореЗрдХрд╛рдирд┐рдЬреНрдо, рд╕рдорд╛рдирд╛рдиреНрддрд░ рд░ рд╕реНрдерд┐рддрд┐ (рдЦреЛрдЬ) рд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди