Kyber post-kvant şifrələmə alqoritminin tətbiqində zəiflik

Kvant kompüterində kobud gücə davamlı kriptoqrafik alqoritmlərin müsabiqəsində qalib gələn Kyber şifrələmə alqoritminin tətbiqində yan kanal hücumlarına şifrənin açılması zamanı əməliyyatların vaxtının ölçülməsi əsasında məxfi açarları yenidən yaratmağa imkan verən zəiflik müəyyən edilib. təcavüzkar tərəfindən təmin edilən şifrəli mətn. Problem həm CRYSTALS-Kyber KEM açar inkapsulyasiya mexanizminin istinad tətbiqinə, həm də Siqnal messencerində istifadə olunan pqcrypto kitabxanası da daxil olmaqla bir çox üçüncü tərəf Kyber-in aktivləşdirilmiş şifrələmə kitabxanalarına təsir göstərir.

KyberSlash kod adını alan zəifliyin mahiyyəti mesajın dekodlanması prosesində “t = ((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;” bölmə əməliyyatının istifadəsindədir. , burada dividend “ikiqat” tipli “t” məxfi dəyərini ehtiva edir və bölən KYBER_Q məşhur ictimai dəyəridir. Problem ondadır ki, bölmə əməliyyatının vaxtı sabit deyil və müxtəlif mühitlərdə bölmə üçün yerinə yetirilən CPU dövrlərinin sayı daxil edilən məlumatlardan asılıdır. Beləliklə, əməliyyat müddətindəki dəyişikliklərə əsaslanaraq, bölmədə istifadə olunan məlumatların təbiəti haqqında fikir əldə etmək olar.

Kriptoqrafiya sahəsində tanınmış mütəxəssis Daniel J. Bernstein hücumun praktikada həyata keçirilə biləcəyini sübut edən işçi nümayişi hazırlaya bildi. Aparılan üç eksperimentdən ikisində Raspberry Pi 2 lövhəsində kod işlədərkən məlumatların dekodlanması vaxtının ölçülməsi əsasında Kyber-512 özəl açarını tamamilə yenidən yaratmaq mümkün olub. Metod Kyber-768 və Kyber-1024 düymələri üçün də uyğunlaşdırıla bilər. Hücumun müvəffəqiyyətlə həyata keçirilməsi üçün təcavüzkarın göstərdiyi şifrə mətninin eyni açar cütündən istifadə edilərək işlənilməsi və əməliyyatın icra müddətinin dəqiq ölçülə bilməsi lazımdır.

Bəzi kitabxanalarda başqa bir sızma (KyberSlash2) müəyyən edilmişdir ki, bu da bölməni həyata keçirərkən məxfi dəyərin istifadəsi səbəbindən baş verir. Birinci seçimdən fərqlər şifrənin açılması zamanı deyil, şifrələmə mərhələsində (poly_compress və polyvec_compress funksiyalarında) çağırışa düşür. Bununla belə, ikinci variant hücum üçün yalnız prosedurun şifrəli mətnin çıxışının məxfi hesab edildiyi təkrar şifrələmə əməliyyatlarında istifadə edildiyi hallarda faydalı ola bilər.

Artıq kitabxanalarda zəiflik aradan qaldırılıb:

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

Əvvəlcə zəiflikdən təsirlənməyən kitabxanalar:

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

Zəiflik kitabxanalarda yamaqsız olaraq qalır:

  • antontutoveanu/crystals-kyber-javascript,
  • Argyle-Software/kyber,
  • debian/src/liboqs/unstable/src/kem/kyber,
  • kudelskisecurity/crystals-get,
  • mupq/pqm4/crypto_kem/kyber* (20 dekabrda zəifliyin yalnız 1 versiyası düzəldildi),
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/clean,
  • randombit/botan (20 dekabrda yalnız 1 zəiflik aradan qaldırıldı),
  • rustpq/pqcrypto/pqcrypto-kyber (5 yanvarda libsignal-a düzəliş əlavə edildi, lakin pqcrypto-kyber-in özündə zəiflik hələ düzəldilməyib).

Mənbə: opennet.ru

Добавить комментарий