ืืืืชื ืคืืืขืืช ืืืืฉืื ืืืืืจืืชื ืืืฆืคื ื Kyber, ืฉืืื ืืชืืจืืช ืขื ืืืืืจืืชืืื ืงืจืืคืืืืจืคืืื ืขืืืืื ืงืืื ืืืช, ืืืืคืฉืจ ืืืชืงืคืืช ืขืจืืฅ ืฆืืื ืืฉืืืจ ืืคืชืืืช ืกืืืืื ืขื ืกืื ืืืืืช ืืื ืืคืขืืืืช ืืืืื ืคืขื ืื ืืืงืกื ืืืืฆืคื ืฉืกืืคืง ืขื ืืื ืืชืืงืฃ. ืืืขืื ืืฉืคืืขื ืื ืขื ืืืฉืื ืืืืืืก ืฉื ืื ืื ืื ืงืคืกืืืฆืืืช ืืืคืชืืืช CRYSTALS-Kyber KEM ืืื ืขื ืกืคืจืืืช ืืฆืคื ื ืจืืืช ืฉื ืฆื ืฉืืืฉื ืืชืืืืืช ื-Kyber, ืืืื ืกืคืจืืืช pqcrypto ืืืฉืืฉืช ื-Signal messenger.
ืืคืืืขืืช, ืืืืื ื KyberSlash, ืืืืกืกืช ืขื ืืฉืืืืฉ ืืคืขืืืช ืืืืืืง "t = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;" ืืชืืืื ืคืขื ืื ืืืืืขืืช, ืืืฉืจ ืืืืืืื ื ืืืื ืืช ืืขืจื ืืกืืื "t" ืืกืื "double", ืืืืืืง ืืื ืืขืจื ืืฆืืืืจื ืืืืืข 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 ืืืฆืืืจ),
- ืงืืืืืคืืืืจ/ืกืืจืงื (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/kyber/avx2,
- pqclean/crypto_kem/kyber*/avx2.
ืืคืืืขืืช ื ืืชืจื ืืื ืชืืงืื ืืกืคืจืืืช:
- antontutoveanu/crystals-kyber-javascript,
- ืืจืืืื-ืชืืื ื/ืงืืืจ,
- 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 (ื-5 ืืื ืืืจ, ืืชืืงืื ื ืืกืฃ ื-libsignal, ืื ืืคืืืขืืช ืขืืืื ืื ืชืืงื ื ื-pqcrypto-kyber ืขืฆืื).
ืืงืืจ: OpenNet.ru
