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-декабрь),
  • pq-crystals/kyber/ref (30-декабрь),
  • symbolicsoft/kyber-k2so (19-декабрь),
  • cloudflare/circl (8-январь),
  • aws/aws-lc/crypto/kyber (4-январь),
  • liboqs/src/kem/kyber (8-январь).

Абалдан жабыркаган китепканалар:

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

Алсыздык китепканаларда такталган эмес:

  • antontutoeanu/crystals-kyber-javascript,
  • Argyle-Software/kyber,
  • debian/src/liboqs/unstable/src/kem/kyber,
  • kudelskisecurity/crystals-go,
  • mupq/pqm4/crypto_kem/kyber* (20-декабрда, кемчиликтин 1 гана версиясы оңдолду),
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/clean,
  • randombit/botan (20-декабрда 1 гана аялуу оңдолду),
  • rustpq/pqcrypto/pqcrypto-kyber (5-январда libsignalга оңдоо кошулган, бирок pqcrypto-kyberдин өзүндө алсыздык али оңдолгон эмес).

Source: opennet.ru

Комментарий кошуу