Schwachstelle bei Implementatiounen vum Post-Quanteverschlësselungsalgorithmus Kyber

An der Ëmsetzung vum Kyber Verschlësselungsalgorithmus, deen d'Konkurrenz vu kryptografeschen Algorithmen gewonnen huet, déi resistent géint brute Kraaft op engem Quantecomputer sinn, gouf eng Schwachstelle identifizéiert, déi Säit-Kanal Attacke erlaabt geheime Schlësselen ze kreéieren baséiert op der Messung vun der Zäit vun Operatiounen während der Entschlësselung vum Chiffertext vum Ugräifer geliwwert. De Problem beaflosst souwuel d'Referenzimplementatioun vum CRYSTALS-Kyber KEM Schlësselverschlësselungsmechanismus a vill Drëtt Partei Kyber-aktivéierte Verschlësselungsbibliothéiken, dorënner d'pqcrypto-Bibliothéik déi am Signal Messenger benotzt gëtt.

D'Essenz vun der Schwachstelle, déi de Codenumm KyberSlash krut, ass am Gebrauch vun der Divisiounsoperatioun "t = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;" am Prozess vun der Dekodéierung vun engem Message , an deem d'Dividend de geheime Wäert "t" mam Typ "duebel" enthält, an den Divisor ass de bekannte ëffentleche Wäert KYBER_Q. De Problem ass datt d'Zäit vun enger Divisiounsoperatioun net konstant ass, an a verschiddenen Ëmfeld hänkt d'Zuel vun den CPU-Zyklen fir Divisioun of vun den Inputdaten of. Also, baséiert op Ännerungen an Operatiounszäiten, kann een eng Iddi kréien iwwer d'Natur vun den Daten, déi an der Divisioun benotzt ginn.

Den Daniel J. Bernstein, e bekannten Expert am Beräich vun der Kryptografie, konnt eng Aarbechtsdemonstratioun vum Beweis virbereeden, datt d'Attack an der Praxis duerchgefouert ka ginn. An zwee vun den dräi Experimenter, déi duerchgefouert goufen, wann Dir Code um Raspberry Pi 2 Board leeft, war et méiglech de Kyber-512 private Schlëssel komplett ze kreéieren op Basis vun der Messung vun der Datekodéierungszäit. D'Method kann och fir Kyber-768 an Kyber-1024 Schlësselen ugepasst ginn. Fir en Attack erfollegräich auszeféieren, ass et néideg datt de Chiffertext, deen vum Ugräifer spezifizéiert gëtt, mat deemselwechte Schlësselpaar veraarbecht gëtt an datt d'Ausféierungszäit vun der Operatioun präzis gemooss ka ginn.

En anere Leck (KyberSlash2) gouf an e puer Bibliothéiken identifizéiert, wat och geschitt wéinst der Notzung vun engem geheime Wäert wann Dir Divisioun ausféiert. D'Ënnerscheeder vun der éischter Optioun kommen erof op den Uruff an der Verschlësselungsstadium (an de Funktiounen poly_compress an polyvec_compress), an net während der Entschlësselung. Wéi och ëmmer, déi zweet Optioun kann nëtzlech sinn fir en Attack nëmmen a Fäll wou d'Prozedur an Neiverschlësselungsoperatioune benotzt gëtt, an deenen d'Ausgab vum Chiffertext als vertraulech ugesi gëtt.

D'Vulnerabilitéit ass schonn an de Bibliothéike fixéiert:

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

Bibliothéiken, déi net ufanks vun der Schwachstelle betraff sinn:

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

D'Vulnerabilitéit bleift an de Bibliothéiken ongepatcht:

  • antontutoveanu/crystals-kyber-javascript,
  • Argyle-Software/kyber,
  • debian/src/liboqs/unstable/src/kem/kyber,
  • kudelskisecurity/crystals-go,
  • mupq/pqm4/crypto_kem/kyber* (den 20. Dezember gouf nëmmen 1 Versioun vun der Schwachstelle fixéiert),
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/clean,
  • randombit/botan (den 20. Dezember gouf nëmmen 1 Schwachstelle fixéiert),
  • rustpq/pqcrypto/pqcrypto-kyber (e Fix gouf de 5. Januar op libsignal bäigefüügt, awer d'Schwachheet ass nach net an pqcrypto-kyber selwer fixéiert).

Source: opennet.ru

Setzt e Commentaire