Квантын дараах шифрлэлтийн Kyber алгоритмыг хэрэгжүүлэхэд эмзэг байдал

Квантын компьютер дээр харгис хэрцгий хүчинд тэсвэртэй криптограф алгоритмуудын өрсөлдөөнд ялсан Kyber шифрлэлтийн алгоритмыг хэрэгжүүлэх явцад нууц түлхүүрүүдийг тайлах явцад үйлдлийн хугацааг хэмжихэд тулгуурлан хажуугийн сувгийн халдлагад нэвтрэх боломжийг олгодог эмзэг байдал илэрсэн. халдагчийн өгсөн шифр текст. Асуудал нь CRYSTALS-Kyber KEM түлхүүрийн капсулжуулалтын механизмын лавлагааны хэрэгжилт болон Сигнал мессенжерт ашигладаг pqcrypto номын сан зэрэг Kyber-ийн дэмжлэгтэй олон гуравдагч талын шифрлэлтийн сангуудад нөлөөлж байна.

KyberSlash кодыг хүлээн авсан эмзэг байдлын мөн чанар нь мессежийг тайлах явцад "t = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;" хуваах үйлдлийг ашиглах явдал юм. , ногдол ашиг нь "давхар" төрлийн нууц утгыг агуулсан "t" бөгөөд хуваагч нь олон нийтэд танигдсан KYBER_Q утга юм. Асуудал нь хуваах үйлдлийн хугацаа тогтмол биш бөгөөд өөр өөр орчинд хуваахад гүйцэтгэсэн CPU-ийн циклийн тоо нь оролтын өгөгдлөөс хамаарна. Тиймээс, ашиглалтын хугацааны өөрчлөлт дээр үндэслэн хуваахад ашигласан өгөгдлийн мөн чанарын талаархи ойлголтыг авах боломжтой.

Криптографийн салбарын нэрт мэргэжилтэн Даниел Ж.Бернштейн практикт халдлага үйлдэж болохыг нотлох ажлын жишээ бэлдэж чадсан байна. Гурван туршилтын хоёрт нь Raspberry Pi 2 самбар дээр код ажиллуулахдаа өгөгдлийг тайлах цаг хугацааны хэмжилт дээр үндэслэн Kyber-512 хувийн түлхүүрийг бүрэн дахин бүтээх боломжтой болсон. Энэ аргыг мөн Kyber-768 болон Kyber-1024 товчлууруудад тохируулж болно. Халдлагыг амжилттай хэрэгжүүлэхийн тулд халдагчийн тодорхойлсон шифр текстийг ижил түлхүүрийн хослолоор боловсруулж, үйлдлийн гүйцэтгэлийн хугацааг нарийн хэмжих шаардлагатай.

Зарим номын санд өөр нэг алдагдлыг (KyberSlash2) илрүүлсэн бөгөөд энэ нь хуваах үед нууц утгыг ашигласантай холбоотой юм. Эхний сонголтоос ялгаатай нь шифрлэлтийн үе шатанд (poly_compress болон polyvec_compress функцууд) дуудлагад ирдэг бөгөөд код тайлах үед биш юм. Гэсэн хэдий ч, хоёр дахь сонголт нь шифрлэгдсэн текстийн гаралтыг нууц гэж үздэг дахин шифрлэлтийн үйл ажиллагаанд ашигладаг тохиолдолд л халдлагад тустай байж болно.

Дараах номын сангуудад энэ эмзэг байдлыг аль хэдийн зассан байна.

  • zig/lib/std/crypto/kyber_d00.zig (22-р сарын XNUMX),
  • pq-crystals/kyber/ref (30-р сарын XNUMX),
  • symbolicsoft/kyber-k2so (19-р сарын XNUMX),
  • cloudflare/circ (8-р сарын XNUMX),
  • aws/aws-lc/crypto/kyber (4-р сарын XNUMX),
  • liboqs/src/kem/kyber (8-р сарын XNUMX).

Эмзэг байдалд анх өртөөгүй номын сангууд:

  • 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-Програм хангамж/kyber,
  • debian/src/liboqs/unstable/src/kem/kyber,
  • kudelskisecurity/crystals-go,
  • mupq/pqm4/crypto_kem/kyber* (20-р сарын 1-нд эмзэг байдлын зөвхөн XNUMX хувилбарыг зассан),
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/clean,
  • randombit/botan (20-р сарын 1-нд зөвхөн XNUMX эмзэг байдлыг зассан),
  • rustpq/pqcrypto/pqcrypto-kyber (5-р сарын XNUMX-нд libsignal-д засвар нэмэгдсэн боловч pqcrypto-kyber-д эмзэг байдлыг хараахан засаагүй байна).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх