Vulnerabbiltà fl-implimentazzjonijiet tal-algoritmu ta' encryption post-quantum Kyber

Fl-implimentazzjoni ta 'l-algoritmu ta' encryption Kyber, li rebaħ il-kompetizzjoni ta 'algoritmi kriptografiċi reżistenti għall-forza bruta fuq kompjuter quantum, ġiet identifikata vulnerabbiltà li tippermetti attakki fuq kanali sekondarji biex jirrikreaw ċwievet sigrieti bbażati fuq il-kejl tal-ħin tal-operazzjonijiet waqt id-deċifrar tal- ċifrat ipprovdut mill-attakkant. Il-problema taffettwa kemm l-implimentazzjoni ta 'referenza tal-mekkaniżmu ta' inkapsulament taċ-ċavetta CRYSTALS-Kyber KEM kif ukoll ħafna libreriji ta 'encryption ta' partijiet terzi ppermettiet Kyber, inkluża l-librerija pqcrypto użata fil-messaġġier Signal.

L-essenza tal-vulnerabbiltà, li rċeviet l-isem tal-kodiċi KyberSlash, hija fl-użu tal-operazzjoni ta 'diviżjoni "t = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;" fil-proċess ta' dekodifikazzjoni ta 'messaġġ , li fih id-dividend fih il-valur sigriet "t" bit-tip "doppju", u d-diviżur huwa l-valur pubbliku magħruf KYBER_Q. Il-problema hija li l-ħin ta 'operazzjoni ta' diviżjoni mhuwiex kostanti, u f'ambjenti differenti in-numru ta 'ċikli CPU mwettqa għad-diviżjoni jiddependi fuq id-dejta tal-input. Għalhekk, ibbażat fuq bidliet fil-ħinijiet ta 'operazzjoni, wieħed jista' jieħu idea tan-natura tad-dejta użata fid-diviżjoni.

Daniel J. Bernstein, espert magħruf fil-qasam tal-kriptografija, seta 'jħejji dimostrazzjoni ta' ħidma ta 'prova li l-attakk jista' jitwettaq fil-prattika. Fi tnejn mit-tliet esperimenti mwettqa, meta tħaddem il-kodiċi fuq il-bord Raspberry Pi 2, kien possibbli li tinħoloq kompletament iċ-ċavetta privata Kyber-512 ibbażata fuq il-kejl tal-ħin tad-dekodifikazzjoni tad-dejta. Il-metodu jista 'jiġi adattat ukoll għaċ-ċwievet Kyber-768 u Kyber-1024. Biex twettaq attakk b'suċċess, huwa meħtieġ li t-test taċ-ċifra speċifikat mill-attakkant jiġi pproċessat bl-użu tal-istess par ta 'ċavetta u li l-ħin tal-eżekuzzjoni tal-operazzjoni jista' jitkejjel b'mod preċiż.

Tnixxija oħra (KyberSlash2) ġiet identifikata f'xi libreriji, li sseħħ ukoll minħabba l-użu ta 'valur sigriet meta titwettaq id-diviżjoni. Id-differenzi mill-ewwel għażla jinżlu għas-sejħa fl-istadju tal-encryption (fil-funzjonijiet poly_compress u polyvec_compress), u mhux waqt id-decryption. Madankollu, it-tieni għażla tista' tkun utli għal attakk biss f'każijiet fejn il-proċedura tintuża f'operazzjonijiet ta' kriptaġġ mill-ġdid li fihom l-output tat-test ċifrat jitqies kunfidenzjali.

Il-vulnerabbiltà diġà ġiet iffissata fil-libreriji:

  • zig/lib/std/crypto/kyber_d00.zig (22 ta' Diċembru),
  • pq-crystals/kyber/ref (it-30 ta' Diċembru),
  • symbolicsoft/kyber-k2so (19 ta' Diċembru),
  • cloudflare/circl (it-8 ta’ Jannar),
  • aws/aws-lc/crypto/kyber (4 ta' Jannar),
  • liboqs/src/kem/kyber (8 ta’ Jannar).

Libreriji mhux affettwati inizjalment mill-vulnerabbiltà:

  • 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-kristalli/kyber/avx2,
  • pqclean/crypto_kem/kyber*/avx2.

Il-vulnerabbiltà tibqa 'mhux patched fil-libreriji:

  • antontutoveanu/crystals-kyber-javascript,
  • Argyle-Software/kyber,
  • debian/src/liboqs/unstable/src/kem/kyber,
  • kudelskisigurtà/kristalli-go,
  • mupq/pqm4/crypto_kem/kyber* (Fl-20 ta' Diċembru, verżjoni waħda biss tal-vulnerabbiltà ġiet iffissata),
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/nadif,
  • randombit/botan (Fl-20 ta' Diċembru, vulnerabbiltà waħda biss ġiet iffissata),
  • rustpq/pqcrypto/pqcrypto-kyber (fiss ġie miżjud ma' libsignal fil-5 ta' Jannar, iżda l-vulnerabbiltà għadha ma ġietx iffissata f'pqcrypto-kyber innifsu).

Sors: opennet.ru

Żid kumment