Nan aplikasyon an nan algorithm nan chifreman Kyber, ki te genyen konpetisyon an nan algoritm kriptografik rezistan a fòs brital sou yon òdinatè pwopòsyon, yo te idantifye yon vilnerabilite ki pèmèt atak bò-chanèl yo rkree kle sekrè ki baze sou mezire tan an nan operasyon pandan dechifre la. tèks chifre atakè a bay. Pwoblèm lan afekte tou de aplikasyon referans CRYSTALS-Kyber KEM kle enkapsulasyon mekanis ak anpil twazyèm pati Kyber-pèmèt bibliyotèk chifreman, ki gen ladan bibliyotèk pqcrypto yo itilize nan mesaje Signal la.
Sans nan vilnerabilite a, ki te resevwa non an kòd KyberSlash, se nan itilize nan operasyon an divizyon "t = (((t <1) + KYBER_Q/2)/KYBER_Q) & 1;" nan pwosesis la nan dekode yon mesaj. , nan ki dividann nan gen valè sekrè "t" ak kalite "double", ak divizè a se byen li te ye valè piblik KYBER_Q. Pwoblèm lan se ke tan an nan yon operasyon divizyon se pa konstan, ak nan diferan anviwònman kantite sik CPU fè pou divizyon depann sou done yo opinyon. Kidonk, ki baze sou chanjman nan tan operasyon yo, yon moun ka jwenn yon lide sou nati a nan done yo itilize nan divizyon.
Daniel J. Bernstein, yon ekspè byen koni nan domèn kriptografik, te kapab prepare yon demonstrasyon k ap travay nan prèv ke atak la te kapab fèt an pratik. Nan de nan twa eksperyans yo te fè, lè w ap kouri kòd sou tablo Raspberry Pi 2 la, li te posib konplètman rkree kle prive Kyber-512 ki baze sou mezire tan dekodaj done yo. Metòd la kapab tou adapte pou kle Kyber-768 ak Kyber-1024. Pou fè yon atak avèk siksè, li nesesè pou tèks chifreman ki espesifye pa atakè a trete lè l sèvi avèk menm pè kle a epi yo ka mezire tan egzekisyon operasyon an avèk presizyon.
Yon lòt fwit (KyberSlash2) te idantifye nan kèk bibliyotèk, ki rive tou akòz itilizasyon yon valè sekrè lè w ap fè divizyon. Diferans ki genyen soti nan premye opsyon an desann nan apèl la nan etap nan chifreman (nan fonksyon yo poly_compress ak polyvec_compress), epi yo pa pandan dechifre. Sepandan, dezyèm opsyon an ka itil pou yon atak sèlman nan ka kote yo itilize pwosedi a nan operasyon re-chiffreman kote yo konsidere pwodiksyon tèks chifreman an konfidansyèl.
Vilnerabilite a te deja fiks nan bibliyotèk yo:
- zig/lib/std/crypto/kyber_d00.zig (22 desanm),
- pq-crystals/kyber/ref (30 desanm),
- symbolicsoft/kyber-k2so (19 desanm),
- cloudflare/circl (8 janvye),
- aws/aws-lc/crypto/kyber (4 janvye),
- liboqs/src/kem/kyber (8 janvye).
Bibliyotèk yo pa te afekte okòmansman pa vilnerabilite a:
- 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.
Vilnerabilite a rete san patch nan bibliyotèk yo:
- antontutoveanu/crystals-kyber-javascript,
- Argyle-lojisyèl/kyber,
- debian/src/liboqs/enstab/src/kem/kyber,
- kudelskisecurity/kristal-ale,
- mupq/pqm4/crypto_kem/kyber* (Le 20 desanm, sèlman 1 vèsyon vilnerabilite a te fikse),
- PQClean/PQClean/crypto_kem/kyber*/aarch64,
- PQClean/PQClean/crypto_kem/kyber*/clean,
- randombit/botan (Nan 20 desanm, sèlman 1 vilnerabilite te fikse),
- rustpq/pqcrypto/pqcrypto-kyber (yo te ajoute yon ranje nan libsignal sou 5 janvye, men vilnerabilite a poko te fiks nan pqcrypto-kyber tèt li).
Sous: opennet.ru
