ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ ื™ืžืคึผืœืึทืžืึทื ืฅ ืคื•ืŸ ื“ื™ ืคึผืึธืกื˜-ืงื•ื•ืึทื ื˜ื•ื ืขื ืงืจื™ืคึผืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทื ืงื™ื‘ืขืจ

ืื™ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืงื™ื‘ืขืจ ืขื ืงืจื™ืคึผืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทื, ื•ื•ืึธืก ื•ื•ืึทืŸ ื“ื™ ืคืึทืจืžืขืกื˜ ืคื•ืŸ ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ืึทืœื’ืขืจื™ื“ืึทืžื– ืงืขื’ื ืฉื˜ืขืœื™ืง ืฆื• ื‘ืจื•ื˜ ืงืจืึทืคื˜ ืื•ื™ืฃ ืึท ืงื•ื•ืึทื ื˜ื•ื ืงืึธืžืคึผื™ื•ื˜ืขืจ, ืึท ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ื– ื™ื™ื“ืขื ืึทืคื™ื™ื“ ืึทื– ืึทืœืึทื•ื– ื–ื™ื™ึทื˜-ืงืึทื ืึทืœ ืื ืคืืœืŸ ืฆื• ืจื™ืงืจื™ื™ื™ื˜ ื’ืขื”ื™ื™ื ืฉืœื™ืกืœืขืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืžืขืกื˜ืŸ ื“ื™ ืฆื™ื™ื˜ ืคื•ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื‘ืขืฉืึทืก ื“ืขืงืจื™ืคึผื˜ื™ืึธืŸ ืคื•ืŸ ื“ื™. ืกื™ืคืขืจื˜ืขืงืกื˜ ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ืึทื˜ืึทืงืขืจ. ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืึทืคืขืงืฅ ื‘ื™ื™ื“ืข ื“ื™ ืจืขืคึฟืขืจืขื ืฅ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ CRYSTALS-Kyber KEM ืฉืœื™ืกืœ ืขื ืงืึทืคึผืกื•ืœืึทื˜ื™ืึธืŸ ืžืขืงืึทื ื™ื–ืึทื ืื•ืŸ ืคื™ืœืข ื“ืจื™ื˜-ืคึผืึทืจื˜ื™ื™ ืงื™ื™ื‘ืขืจ-ืขื ื™ื™ื‘ืึทืœื“ ืขื ืงืจื™ืคึผืฉืึทืŸ ืœื™ื™ื‘ืจืขืจื™ื–, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ pqcrypto ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ ืกื™ื’ื ืึทืœ ืฉืœื™ื—.

ื“ื™ ืขืกืึทื ืก ืคื•ืŸ ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™, ื•ื•ืึธืก ื‘ืืงื•ืžืขืŸ ื“ื™ ืงืึธื“ ื ืึธืžืขืŸ KyberSlash, ืื™ื– ืื™ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ืึธืคึผื˜ื™ื™ืœ ืึธืคึผืขืจืึทืฆื™ืข "t = (((t

ื“ื ื™ืืœ ื™ ื‘ืขืจื ืฉื˜ื™ื™ืŸ, ืึท ื‘ืืงืื ื˜ืขืจ ืžื•ืžื—ื” ืื•ื™ืคืŸ ื’ืขื‘ื™ื˜ ืคื•ืŸ ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™, ื”ืึธื˜ ื’ืขืงืขื ื˜ ืฆื•ื’ืจื™ื™ื˜ืŸ ืึท ืืจื‘ืขื˜ืŸ ื“ืขืžืึธื ืกื˜ืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื‘ืึทื•ื•ื™ื™ื–ืŸ, ืึทื– ื“ื™ ืึทื˜ืึทืง ืงืขืŸ ื“ื•ืจื›ื’ืขืคื™ืจื˜ ื•ื•ืขืจืŸ ืื™ืŸ ืคื™ืจ. ืื™ืŸ ืฆื•ื•ื™ื™ ืคื•ืŸ ื“ื™ ื“ืจื™ื™ ื™ืงืกืคึผืขืจืึทืžืึทื ืฅ ื’ืขืคื™ืจื˜, ื•ื•ืขืŸ ืคืœื™ืกื ื“ื™ืง ืงืึธื“ ืื•ื™ืฃ ื“ื™ Raspberry Pi 2 ื‘ืจืขื˜, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื’ืึธืจ ืจื™ืงืจื™ื™ื™ื˜ ื“ื™ Kyber-512 ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืžืขืกื˜ืŸ ื“ื™ ื“ืึทื˜ืŸ ื“ื™ืงืึธื•ื“ื™ื ื’ ืฆื™ื™ื˜. ื“ืขืจ ืื•ืคึฟืŸ ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืฆื•ื’ืขืคืืกื˜ ืคึฟืึทืจ ืงื™ื‘ืขืจ-768 ืื•ืŸ ืงื™ื‘ืขืจ-1024 ืฉืœื™ืกืœืขืŸ. ืฆื• ื”ืฆืœื—ื” ื“ื•ืจื›ืคื™ืจืŸ ืึท ื‘ืึทืคืึทืœืŸ, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืึทื– ื“ื™ ืกื™ืคืขืจื˜ืขืงืกื˜ ืกืคึผืขืกื™ืคื™ืขื“ ื“ื•ืจืš ื“ื™ ืึทื˜ืึทืงืขืจ ืื™ื– ืคึผืจืึทืกืขืกื˜ ืžื™ื˜ ื“ื™ ื–ืขืœื‘ืข ืฉืœื™ืกืœ ืคึผืึธืจ ืื•ืŸ ืึทื– ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทืงื™ืขืจืึทื˜ืœื™ ื’ืขืžืืกื˜ืŸ.

ืืŸ ืื ื“ืขืจ ืจื™ื ืขืŸ (KyberSlash2) ืื™ื– ื™ื™ื“ืขื ืึทืคื™ื™ื“ ืื™ืŸ ืขื˜ืœืขื›ืข ืœื™ื™ื‘ืจืขืจื™ื–, ื•ื•ืึธืก ืื•ื™ืš ืึทืงืขืจื– ืจืขื›ื˜ ืฆื• ื“ืขืจ ื ื•ืฆืŸ ืคื•ืŸ ืึท ืกื•ื“ ื•ื•ืขืจื˜ ื•ื•ืขืŸ ืคึผืขืจืคืึธืจืžื™ื ื’ ืึธืคึผื˜ื™ื™ืœ. ื“ื™ ื“ื™ืคืขืจืึทื ืกื™ื– ืคื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืึธืคึผืฆื™ืข ืงื•ืžืขืŸ ืึทืจืึธืคึผ ืฆื• ื“ื™ ืจื•ืคืŸ ืื™ืŸ ื“ื™ ืขื ืงืจื™ืคึผืฉืึทืŸ ื‘ื™ื ืข (ืื™ืŸ ื“ื™ ืคึผืึธืœื™_ืงืึธืžืคึผืจืขืกืก ืื•ืŸ ืคึผืึธืœื™ื•ื•ืขืง_ืงืึธืžืคึผืจืขืกืก ืคืึทื ื’ืงืฉืึทื ื–), ืื•ืŸ ื ื™ืฉื˜ ื‘ืขืฉืึทืก ื“ืขืงืจื™ืคึผื˜ื™ืึธืŸ. ืึธื‘ืขืจ, ื“ื™ ืจื’ืข ืึธืคึผืฆื™ืข ืงืขืŸ ื–ื™ื™ืŸ ื ื•ืฆื™ืง ืคึฟืึทืจ ืึท ื‘ืึทืคืึทืœืŸ ื‘ืœื•ื™ื– ืื™ืŸ ืงืึทืกืขืก ื•ื•ืขืŸ ื“ื™ ืคึผืจืึธืฆืขื“ื•ืจ ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ืฉื™ื™ึทืขืš-ืขื ืงืจื™ืคึผืฉืึทืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื™ืŸ ื•ื•ืึธืก ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืกื™ืคืขืจื˜ืขืงืกื˜ ืื™ื– ื’ืขื”ืืœื˜ืŸ ืงืึทื ืคืึทื“ืขื ื˜ืฉืึทืœ.

ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ื– ืฉื•ื™ืŸ ืคืึทืจืคืขืกื˜ื™ืงื˜ ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืœื™ื™ื‘ืจืขืจื™ื–:

  • 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,
  • ืงื•ื“ืขืœืกืงื™ืกืขืงื•ืจื™ื˜ื™ / ืงืจื™ืกื˜ืึทืœื–-ื’ื™ื™ืŸ,
  • mupq/pqm4/crypto_kem/kyber* (ืื•ื™ืฃ 20 ื“ืขืฆืขืžื‘ืขืจ, ื‘ืœื•ื™ื– 1 ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ื– ืคืึทืจืคืขืกื˜ื™ืงื˜),
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/clean,
  • ืจืึทื ื“ืึทืžื‘ื™ื˜ / ื‘ืึธื˜ืึทืŸ (ืื•ื™ืฃ 20 ื“ืขืฆืขืžื‘ืขืจ, ื‘ืœื•ื™ื– 1 ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ื– ืคืึทืจืคืขืกื˜ื™ืงื˜),
  • rustpq/pqcrypto/pqcrypto-kyber (ืึท ืคืึทืจืจื™ื›ื˜ืŸ ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• libsignal ืื•ื™ืฃ ื™ืื ื•ืืจ 5, ืึธื‘ืขืจ ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ื– ื ืึธืš ื ื™ืฉื˜ ืคืึทืจืคืขืกื˜ื™ืงื˜ ืื™ืŸ pqcrypto-kyber ื–ื™ืš).

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’