Осебпазирӣ дар татбиқи алгоритми рамзгузории пас аз квантӣ Kyber

Ҳангоми татбиқи алгоритми рамзгузории Kyber, ки дар озмуни алгоритмҳои криптографии ба қувваи бераҳмона тобовар дар компютери квантӣ ғолиб омада буд, осебпазирӣ муайян карда шуд, ки ба ҳамлаҳои паҳлӯӣ имкон медиҳад, ки калидҳои махфиро дар асоси чен кардани вақти амалиёт ҳангоми рамзкушоӣ дубора эҷод кунанд. матни рамзӣ, ки ҳамлагар пешниҳод кардааст. Мушкилот ҳам ба татбиқи истинод ба механизми инкапсуляцияи калиди CRYSTALS-Kyber KEM ва ҳам бисёр китобхонаҳои рамзгузории тарафи сеюм, ки бо Kyber фаъол аст, аз ҷумла китобхонаи pqcrypto, ки дар паёмнависии Signal истифода мешавад, таъсир мерасонад.

Моҳияти осебпазирӣ, ки номи рамзии 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.

Осебият дар китобхонаҳо бетағйир боқӣ мемонад:

  • antontutoveanu/crystals-kyber-javascript,
  • Argyle-Software/kyber,
  • debian/src/liboqs/ноустувор/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 ҳанӯз ислоҳ нашудааст).

Манбаъ: opennet.ru

Илова Эзоҳ