ืืืืฉืื ืืืืืจืืชื ืืืฆืคื ื Kyber, ืฉืืื ืืชืืจืืช ืฉื ืืืืืจืืชืืื ืงืจืืคืืืืจืคืืื ืขืืืืื ืืคื ื ืืื ืืก ืขื ืืืฉื ืงืืื ืื, ืืืืชื ืคืืืขืืช ืืืืคืฉืจืช ืืืชืงืคืืช ืขืจืืฅ ืฆืืื ืืืฆืืจ ืืืืฉ ืืคืชืืืช ืกืืืืื ืืืืืกืกืื ืขื ืืืืืช ืืื ืืคืขืืืืช ืืืืื ืคืขื ืื ืืงืกื ืฆืืคื ืฉืกืืคืง ืขื ืืื ืืชืืงืฃ. ืืืขืื ืืฉืคืืขื ืื ืขื ืืืฉืื ืืืชืืืืกืืช ืฉื ืื ืื ืื ืืื ืงืคืกืืืฆืื ืฉื ืืคืชืืืช CRYSTALS-Kyber KEM ืืื ืขื ืกืคืจืืืช ืืฆืคื ื ืจืืืช ืฉื ืฆื ืฉืืืฉื ืขื ืชืืืื ื-Kyber, ืืืื ืกืคืจืืืช pqcrypto ืืืฉืืฉืช ื- Signal Messenger.
ืืืืช ืืคืืืขืืช, ืฉืงืืืื ืืช ืฉื ืืงืื KyberSlash, ืืื ืืฉืืืืฉ ืืคืขืืืช ืืืืืงื "t = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;" ืืชืืืื ืคืขื ืื ืืืืขื , ืฉืื ืืืืืืื ื ืืืื ืืช ืืขืจื ืืกืืื "t" ืขื ืกืื "ืืคืื", ืืืืืืง ืืื ืืขืจื ืืฆืืืืจื ืืืืืข KYBER_Q. ืืืขืื ืืื ืฉืืื ืคืขืืืช ืืืืืงื ืืื ื ืงืืืข, ืืืกืืืืืช ืฉืื ืืช ืืกืคืจ ืืืืืจื ืืืขืื ืืืืืฆืขืื ืืืืืงื ืชืืื ืื ืชืื ื ืืงืื. ืืคืืื, ืืืชืืกืก ืขื ืฉืื ืืืื ืืืื ื ืืคืขืืื, ื ืืชื ืืงืื ืืืฉื ืขื ืืืคื ืื ืชืื ืื ืืืฉืืฉืื ืืืืืงื.
ืื ืืื ื'ืื ืืจื ืฉืืืื, ืืืืื ืืืืข ืืชืืื ืืงืจืืคืืืืจืคืื, ืืฆืืื ืืืืื ืืืืื ืขืืืืช ืฉื ืืืืื ืืื ืฉื ืืชื ืืืฆืข ืืช ืืชืงืืคื ืืคืืขื. ืืฉื ืืื ืืฉืืืฉืช ืื ืืกืืืื ืฉื ืขืจืื, ืืขืช ืืคืขืืช ืงืื ืขื ืืื 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 (30 ืืืฆืืืจ),
- symbolicsoft/kyber-k2so (19 ืืืฆืืืจ),
- cloudflare/circl (8 ืืื ืืืจ),
- 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.
ืืคืืืขืืช ื ืฉืืจืช ืืื ืชืืงืื ืืกืคืจืืืช:
- antontutoveanu/crystals-kyber-javascript,
- Argyle-Software/kyber,
- debian/src/liboqs/unstable/src/kem/kyber,
- kudelskisecurity/crystals-go,
- mupq/pqm4/crypto_kem/kyber* (ื-20 ืืืฆืืืจ ืชืืงื ื ืจืง ืืจืกื ืืืช ืฉื ืืคืืืขืืช),
- 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