рдХреНрд╡рд╛рдВрдЯрдо-рдкреНрд░рддрд┐рд░реЛрдзреА рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдЬреАрддрдиреЗ рд╡рд╛рд▓реЗ рдХреНрдпрдмрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рднреЗрджреНрдпрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХреА рдЧрдИ рд╣реИ, рдЬреЛ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рдордп рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧреБрдкреНрдд рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдб-рдЪреИрдирд▓ рд╣рдорд▓реЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреНрд░рд┐рд╕реНрдЯрд▓реНрд╕-рдХреНрдпрдмрд░ рдХреЗрдИрдПрдо рдХреБрдВрдЬреА рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рддрдВрддреНрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдХреНрдпрдмрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдИ рддреГрддреАрдп-рдкрдХреНрд╖ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреЛрдиреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдореИрд╕реЗрдВрдЬрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА pqcrypto рд▓рд╛рдЗрдмреНрд░реЗрд░реА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рдХреЛрдбрдирд╛рдо KyberSlash рдирд╛рдордХ рдпрд╣ рднреЗрджреНрдпрддрд╛, рд╕рдВрджреЗрд╢ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдСрдкрд░реЗрд╢рди "t = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;" рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд╣рд╛рдБ рд▓рд╛рднрд╛рдВрд╢ рдореЗрдВ "рдбрдмрд▓" рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЧреБрдкреНрдд рдорд╛рди "t" рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рднрд╛рдЬрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдорд╛рди KYBER_Q рд╣реЛрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рднрд╛рдЬрди рдСрдкрд░реЗрд╢рди рдХрд╛ рд╕рдордп рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд CPU рдЪрдХреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рдордп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рдХреГрддрд┐ рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░рд╕рд┐рджреНрдз рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдбреИрдирд┐рдпрд▓ рдЬреЗ. рдмрд░реНрдирд╕реНрдЯреАрди рдиреЗ рд╣рдорд▓реЗ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкреНрд░реВрдл-рдСрдл-рдХреЙрдиреНрд╕реЗрдкреНрдЯ рдкреНрд░рджрд░реНрд╢рди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред рддреАрди рдореЗрдВ рд╕реЗ рджреЛ рдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдХреЛрдб рдХреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 2 рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рд╕рдордп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Kyber-512 рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ Kyber-768 рдФрд░ Kyber-1024 рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдорд▓реЗ рдХреЗ рд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЖрдкреВрд░реНрддрд┐ рдХрд┐рдП рдЧрдП рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЙрд╕реА рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдорд╛рдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рдФрд░ рд▓реАрдХ (KyberSlash2) рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд╛рдЬрди рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЧреБрдкреНрдд рдорд╛рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рднреА рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЪрд░рдг (рдкреЙрд▓реА_рдХрдВрдкреНрд░реЗрд╕ рдФрд░ рдкреЙрд▓реАрд╡реЗрдХ_рдХрдВрдкреНрд░реЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ) рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рджреМрд░рд╛рдиред рд╣рд╛рд▓рд╛рдБрдХрд┐, рджреВрд╕рд░рд╛ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреБрдирдГ-рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдСрдкрд░реЗрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЧреЛрдкрдиреАрдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдпрд╣ рдХрдордЬреЛрд░реА рдкрд╣рд▓реЗ рд╣реА рдареАрдХ рдХрд░ рджреА рдЧрдИ рд╣реИ:
- zig/lib/std/crypto/kyber_d00.zig (22 рджрд┐рд╕рдВрдмрд░),
- рдкреАрдХреНрдпреВ-рдХреНрд░рд┐рд╕реНрдЯрд▓/рдХрд┐рдмрд░/рд░реЗрдл (30 рджрд┐рд╕рдВрдмрд░),
- symbolsoft/kyber-k2so (19 рджрд┐рд╕рдВрдмрд░),
- рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░/рд╕рд░реНрдХрд▓ (8 рдЬрдирд╡рд░реА),
- aws/aws-lc/crypto/kyber (4 рдЬрдирд╡рд░реА),
- liboqs/src/kem/kyber (8 рдЬрдирд╡рд░реА)ред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рдкреНрд░рд╛рд░рдореНрдн рдореЗрдВ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ:
- рдмреЛрд░рд┐рдВрдЧрдПрд╕рдПрд╕рдПрд▓/рдХреНрд░рд┐рдкреНрдЯреЛ/рдХреНрдпрдмрд░,
- рдлрд╝рд┐рд▓рд┐рдкреЛ.io/mlkem768,
- рдлреЙрд░реНрдореЛрд╕рд╛-рдХреНрд░рд┐рдкреНрдЯреЛ/рд▓рд┐рдмрдЬреЗрдб/рдЯреНрд░реА/рдореЗрди/src/рдХреНрд░рд┐рдкреНрдЯреЛ_рдХреЗрдо,
- рдХреНрдпрдмрд░/рдХреЙрдорди/amd64/avx2,
- рдлреЙрд░реНрдореЛрд╕рд╛-рдХреНрд░рд┐рдкреНрдЯреЛ/рд▓рд┐рдмрдЬреЗрдб/рдЯреНрд░реА/рдореЗрди/src/рдХреНрд░рд┐рдкреНрдЯреЛ_рдХреЗрдо/рдХрд╛рдЗрдмрд░/рдХреЙрдорди/amd64/рд░реЗрдл,
- рдкреАрдХреНрдпреВ-рдХреНрд░рд┐рд╕реНрдЯрд▓реНрд╕/рдХреНрдпрдмрд░/рдПрд╡реАрдПрдХреНрд╕2,
- pqclean/crypto_kem/kyber*/avx2.
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдпрд╣ рдХрдордЬреЛрд░реА рдЕрднреА рднреА рдмрд░рдХрд░рд╛рд░ рд╣реИ:
- antontutoveanu/рдХреНрд░рд┐рд╕реНрдЯрд▓-рдХрд┐рдмрд░-рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ,
- рдЕрд░реНрдЧреАрд▓реЗ-рд╕реЙрдлреНрдЯрд╡реЗрдпрд░/рдХреНрдпрдмрд░,
- debian/src/liboqs/unstable/src/kem/kyber,
- рдХреБрдбреЗрд▓реНрд╕реНрдХреАрд╕рд┐рдХреНрдпреВрд░рд┐рдЯреА/рдХреНрд░рд┐рд╕реНрдЯрд▓реНрд╕-рдЧреЛ,
- mupq/pqm4/crypto_kem/kyber* (20 рджрд┐рд╕рдВрдмрд░ рдХреЛ рдХреЗрд╡рд▓ 1 рднреЗрджреНрдпрддрд╛ рд╕рдВрд╕реНрдХрд░рдг рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛),
- PQClean/PQClean/crypto_kem/kyber*/aarch64,
- PQClean/PQClean/рдХреНрд░рд┐рдкреНрдЯреЛ_рдХреЗрдо/kyber*/рдХреНрд▓реАрди,
- рд░реИрдВрдбрдордмрд┐рдЯ/рдмреЛрдЯрди (20 рджрд┐рд╕рдВрдмрд░ рдХреЛ рдХреЗрд╡рд▓ 1 рднреЗрджреНрдпрддрд╛ рд╕рдВрд╕реНрдХрд░рдг рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛),
- rustpq/pqcrypto/pqcrypto-kyber (5 рдЬрдирд╡рд░реА рдХреЛ libsignal рдореЗрдВ рдпрд╣ рдлрд┐рдХреНрд╕ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди pqcrypto-kyber рдореЗрдВ рдЕрднреА рддрдХ рднреЗрджреНрдпрддрд╛ рдареАрдХ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ)ред
рд╕реНрд░реЛрдд: opennet.ru
