Kwetsberens yn ymplemintaasjes fan it post-quantum fersiferingsalgoritme Kyber

Yn 'e ymplemintaasje fan it Kyber-fersiferingsalgoritme, dat de konkurrinsje fan kryptografyske algoritmen wûn dy't resistint binne foar brute krêft op in kwantumkomputer, waard in kwetsberens identifisearre dy't side-kanaal oanfallen mooglik makket geheime kaaien opnij oan te meitsjen basearre op it mjitten fan' e tiid fan operaasjes tidens dekodearring fan 'e sifertekst levere troch de oanfaller. It probleem hat ynfloed op sawol de referinsje-ymplemintaasje fan it CRYSTALS-Kyber KEM-kaai-ynkapselingsmeganisme en in protte Kyber-ynskeakele fersiferingsbiblioteken fan tredden, ynklusyf de pqcrypto-bibleteek brûkt yn 'e Signal messenger.

De essinsje fan 'e kwetsberens, dy't de koadenamme KyberSlash krige, is yn it gebrûk fan' e divyzjeoperaasje "t = (((t

Daniel J. Bernstein, in bekende ekspert op it mêd fan kryptografy, koe in wurkjende demonstraasje meitsje fan bewiis dat de oanfal yn 'e praktyk útfierd wurde koe. Yn twa fan 'e trije útfierde eksperiminten, by it útfieren fan koade op it Raspberry Pi 2-boerd, wie it mooglik om de Kyber-512 privee-kaai folslein opnij oan te meitsjen basearre op it mjitten fan de gegevensdekodearringstiid. De metoade kin ek oanpast wurde foar Kyber-768- en Kyber-1024-kaaien. Om in oanfal mei súkses út te fieren, is it needsaaklik dat de troch de oanfaller oantsjutte sifertekst wurdt ferwurke mei itselde kaaipaar en dat de útfieringstiid fan 'e operaasje krekt mjitten wurde kin.

In oare lek (KyberSlash2) is identifisearre yn guon bibleteken, dy't ek foarkomt troch it brûken fan in geheime wearde by it útfieren fan divyzje. De ferskillen fan 'e earste opsje komme del op' e oprop yn 'e fersiferingsstadium (yn' e poly_compress en polyvec_compress funksjes), en net by ûntsiferjen. De twadde opsje kin lykwols nuttich wêze foar in oanfal allinich yn gefallen wêr't de proseduere wurdt brûkt yn opnij fersifering operaasjes wêryn de útfier fan 'e sifertekst wurdt beskôge as fertroulik.

De kwetsberens is al fêst yn de bibleteken:

  • zig/lib/std/crypto/kyber_d00.zig (22 desimber),
  • pq-crystals/kyber/ref (30 desimber),
  • symbolicsoft/kyber-k2so (19 desimber),
  • cloudflare/circl (8 jannewaris),
  • aws/aws-lc/crypto/kyber (4 jannewaris),
  • liboqs/src/kem/kyber (8. Jannewaris).

Biblioteken net yn earste ynstânsje beynfloede troch de kwetsberens:

  • 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.

De kwetsberens bliuwt unpatched yn 'e bibleteken:

  • antontutoveanu/crystals-kyber-javascript,
  • Argyle-Software/kyber,
  • debian/src/liboqs/unstable/src/kem/kyber,
  • kudelskisecurity/crystals-go,
  • mupq/pqm4/crypto_kem/kyber* (Op 20 desimber wie mar 1 ferzje fan 'e kwetsberens fêst),
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/clean,
  • randombit/botan (Op 20 desimber waard mar 1 kwetsberens fêststeld),
  • rustpq/pqcrypto/pqcrypto-kyber (in fix waard tafoege oan libsignal op 5 jannewaris, mar de kwetsberens is noch net fêst yn pqcrypto-kyber sels).

Boarne: opennet.ru

Add a comment