αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž€αŸ’αžšαŸ„αž™ quantum Kyber

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž” Kyber αžŠαŸ‚αž›αž”αžΆαž“αžˆαŸ’αž“αŸ‡αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„αž“αŸƒαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž’αž“αŸ‹αž“αžΉαž„αž€αž˜αŸ’αž›αžΆαŸ†αž„ brute αž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš quantum αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžαžΆαž˜αž†αžΆαž“αŸ‚αž›αž…αŸ†αž αŸ€αž„αž”αž„αŸ’αž€αžΎαžαžŸαŸ„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαžœαžΆαžŸαŸ‹αžœαŸ‚αž„αž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž€αŸ†αž‘αž»αž„αž–αŸαž›αžŒαž·αž‚αŸ’αžšαžΈαž”αŸ” ciphertext αž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαŸ” αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž‘αžΆαŸ†αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž―αž€αžŸαžΆαžšαž™αŸ„αž„αž“αŸƒαž™αž“αŸ’αžαž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„αž€αžΌαž“αžŸαŸ„ CRYSTALS-Kyber KEM αž“αž·αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™ Kyber αž—αžΆαž‚αžΈαž‘αžΈαž”αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“ αžšαž½αž˜αž‘αžΆαŸ†αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ pqcrypto αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αž‰αžΎαžŸαžΆαžšαŸ”

αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αžŠαŸ‚αž›αž”αžΆαž“αž‘αž‘αž½αž›αžˆαŸ’αž˜αŸ„αŸ‡αž€αžΌαžŠ KyberSlash αž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž•αŸ’αž“αŸ‚αž€ β€œt = (((t< 1) + KYBER_Q/2)/KYBER_Q) & 1;” αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαžŒαž·αž€αžΌαžŠαžŸαžΆαžšαŸ” αžŠαŸ‚αž›αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αž—αžΆαž‚αž›αžΆαž—αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžŸαž˜αŸ’αž„αžΆαžαŸ‹ "t" αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž—αŸαž‘ "αž‘αŸ’αžœαŸαžšαžŠαž„" αž αžΎαž™αž•αŸ’αž“αŸ‚αž€αž”αŸ‚αž„αž…αŸ‚αž€αž‚αžΊαž‡αžΆαžαž˜αŸ’αž›αŸƒαžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαŸαž›αŸ’αž”αžΈαž›αŸ’αž”αžΆαž‰ KYBER_Q αŸ” αž”αž‰αŸ’αž αžΆαž‚αžΊαžαžΆαž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž•αŸ’αž“αŸ‚αž€αž˜αž·αž“αžαŸαžš αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αž…αŸ†αž“αž½αž“αž“αŸƒαžœαžŠαŸ’αžαžŸαŸŠαžΈαž—αžΈαž™αžΌαžŠαŸ‚αž›αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž‚αžΊαž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αž‰αŸ’αž…αžΌαž›αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αŸαž›αžœαŸαž›αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αž“αž»αžŸαŸ’αžŸαž˜αŸ’αž“αžΆαž€αŸ‹αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αž‚αŸ†αž“αž·αžαž“αŸƒαž’αž˜αŸ’αž˜αž‡αžΆαžαž·αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αŸ”

Daniel J. Bernstein αžŠαŸ‚αž›αž‡αžΆαž’αŸ’αž“αž€αž‡αŸ†αž“αžΆαž‰αžŠαŸαž›αŸ’αž”αžΈαžαžΆαž„αž•αŸ’αž“αŸ‚αž€αž‚αŸ’αžšαžΈαž”αž‚αŸ’αžšαžΈαž” αž’αžΆαž…αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž–αžΈαž—αžŸαŸ’αžαž»αžαžΆαž„αžŠαŸ‚αž›αžαžΆαž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαž–αžΈαžšαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαž‘αžΆαŸ†αž„αž”αžΈαžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„ αž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαžŠαž“αŸ…αž›αžΎαž”αž“αŸ’αž‘αŸ‡ Raspberry Pi 2 αžœαžΆαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžœαž·αž‰αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž“αžΌαžœαžŸαŸ„αž―αž€αž‡αž“ Kyber-512 αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαžœαžΆαžŸαŸ‹αžœαŸ‚αž„αž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαž€αžΆαžšαžŒαž·αž€αžΌαžŠαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž“αŸαŸ‡αž€αŸαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ„ Kyber-768 αž“αž·αž„ Kyber-1024 αž•αž„αžŠαŸ‚αžšαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™ αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαŸ‚αž›αž’αž€αŸ’αžŸαžšαžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŠαŸ‚αž›αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ„αž™αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž‚αžΌαžŸαŸ„αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž αžΎαž™αž–αŸαž›αžœαŸαž›αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžœαžΆαžŸαŸ‹αžœαŸ‚αž„αž™αŸ‰αžΆαž„αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ”

αž€αžΆαžšαž›αŸαž…αž’αŸ’αž›αžΆαž™αž˜αž½αž™αž‘αŸ€αž (KyberSlash2) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž˜αž½αž™αž…αŸ†αž“αž½αž“ αžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž•αž„αžŠαŸ‚αžšαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαž˜αŸ’αž›αŸƒαžŸαž˜αŸ’αž„αžΆαžαŸ‹αž“αŸ…αž–αŸαž›αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αŸ” αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž–αžΈαž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸ†αž”αžΌαž„αž˜αž€αž›αžΎαž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž” (αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž»αžαž„αžΆαžš poly_compress αž“αž·αž„ polyvec_compress) αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“αž€αŸ†αž‘αž»αž„αž–αŸαž›αžŒαž·αž‚αŸ’αžšαžΈαž”αž‘αŸαŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΈαž–αžΈαžšαž’αžΆαž…αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžαŸ‚αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸ‚αž›αž“αžΈαžαž·αžœαž·αž’αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž‘αžΎαž„αžœαž·αž‰ αžŠαŸ‚αž›αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž’αžαŸ’αžαž”αž‘αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž‡αžΆαž€αžΆαžšαžŸαž˜αŸ’αž„αžΆαžαŸ‹αŸ”

αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž½αžŸαž‡αž»αž›αžšαž½αž…αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αŸ–

  • zig/lib/std/crypto/kyber_d00.zig (αžαŸ’αž„αŸƒαž‘αžΈ 22 αžαŸ‚αž’αŸ’αž“αžΌ),
  • pq-crystals/kyber/ref (αžαŸ’αž„αŸƒαž‘αžΈ ៣០ αžαŸ‚αž’αŸ’αž“αžΌ),
  • symbolicsoft/kyber-k2so (αžαŸ’αž„αŸƒαž‘αžΈ 19 αžαŸ‚αž’αŸ’αž“αžΌ),
  • cloudflare/circl (៨ αž˜αž€αžšαžΆ),
  • aws/aws-lc/crypto/kyber (4 αž˜αž€αžšαžΆ),
  • liboqs/src/kem/kyber (8 αž˜αž€αžšαžΆ) αŸ”

αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαŸ†αž”αžΌαž„αž‘αžΎαž™αžŠαŸ„αž™αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αŸ–

  • boringssl/crypto/kyber,
  • filippo.io/mlkem768,
  • formosa-crypto/libjade/tree/main/src/crypto_kem,
  • kyber/common/amd64/avx2,
  • formosa-crypto/libjade/tree/main/src/crypto_kem/kyber/common/amd64/ref,
  • pq-crystals/kyber/avx2,
  • pqclean/crypto_kem/kyber*/avx2.

αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž“αŸ…αžαŸ‚αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž½αžŸαž‡αž»αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αŸ–

  • antontutoweanu/crystals-kyber-javascript,
  • Argyle-Software/kyber,
  • debian/src/liboqs/unstable/src/kem/kyber,
  • kudelskisecurity/crystals-go,
  • mupq/pqm4/crypto_kem/kyber* (αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 20 αžαŸ‚αž’αŸ’αž“αžΌ αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž˜αžΆαž“αžαŸ‚αž€αŸ†αžŽαŸ‚ 1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž½αžŸαž‡αž»αž›)
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/clean,
  • randombit/botan (αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 20 αžαŸ‚αž’αŸ’αž“αžΌ αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž½αžŸαž‡αž»αž›)
  • rustpq/pqcrypto/pqcrypto-kyber (αž€αžΆαžšαž‡αž½αžŸαž‡αž»αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ… libsignal αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 5 αžαŸ‚αž˜αž€αžšαžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž˜αž·αž“αž‘αžΆαž“αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž½αžŸαž‡αž»αž›αž“αŸ…αž€αŸ’αž“αž»αž„ pqcrypto-kyber αžαŸ’αž›αž½αž“αžœαžΆαž‘αŸ)αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹