Ukuba sengozini ekusetshenzisweni kwe-algorithm ye-post-quantum yokubethela i-Kyber

Ekusetshenzisweni kwe-algorithm ye-Kyber encryption, ephumelele umncintiswano we-cryptographic algorithms ukumelana namandla anonya kukhompyutha ye-quantum, ubungozi buhlonziwe obuvumela ukuhlaselwa kwesiteshi esiseceleni ukuthi kuphinde kudale okhiye abayimfihlo ngokusekelwe ekulinganiseni isikhathi sokusebenza ngesikhathi sokucaciswa kwekhodi. i-ciphertext inikezwe umhlaseli. Inkinga ithinta kokubili ukuqaliswa kwereferensi yendlela yokuhlanganisa ukhiye we-CRYSTALS-Kyber KEM kanye nemitapo yolwazi eminingi yokubethela enikwe amandla yi-Kyber yenkampani yangaphandle, okuhlanganisa nelabhulali ye-pqcrypto esetshenziswa kusithunywa Esiginali.

Umongo wokuba sengozini, othole igama lekhodi elithi KyberSlash, usekusetshenzisweni komsebenzi wokuhlukanisa okuthi β€œt = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;” kunqubo yokukhipha ikhodi umlayezo. , lapho i-dividend iqukethe inani eliyimfihlo elithi β€œt” elinohlobo oluthi β€œdouble”, futhi isihlukanisi siyinani elidumile lasesidlangalaleni elingu-KYBER_Q. Inkinga ukuthi isikhathi sokusebenza kwesigaba asishintshi, futhi ezindaweni ezahlukene inani lemijikelezo ye-CPU eyenzelwe ukwahlukanisa lincike kudatha yokufaka. Ngakho-ke, ngokusekelwe ezinguqukweni zezikhathi zokusebenza, umuntu angathola umbono wemvelo yedatha esetshenziswa ekuhlukaniseni.

UDaniel J. Bernstein, uchwepheshe owaziwayo emkhakheni we-cryptography, wakwazi ukulungiselela ukubonakaliswa okusebenzayo kobufakazi bokuthi lokhu kuhlasela kwakungenziwa ngokoqobo. Ekuhloleni okubili kokuthathu okwenziwe, lapho kusetshenziswa ikhodi ebhodini le-Raspberry Pi 2, bekungenzeka ukuthi kuphinde kwakhiwe kabusha ukhiye oyimfihlo we-Kyber-512 ngokusekelwe ekulinganiseni isikhathi sokuqoshwa kwedatha. Indlela ingashintshwa futhi kokhiye be-Kyber-768 kanye ne-Kyber-1024. Ukuze wenze ukuhlasela ngempumelelo, kuyadingeka ukuthi umbhalo obhalwe phansi oshiwo umhlaseli ucutshungulwe kusetshenziswa ukhiye ofanayo kanye nokuthi isikhathi sokwenziwa komsebenzi singalinganiswa ngokunembile.

Okunye ukuvuza (KyberSlash2) kukhonjwe kweminye imitapo yolwazi, okwenzeka futhi ngenxa yokusetshenziswa kwevelu eyimfihlo lapho kwenziwa ukwahlukanisa. Umehluko osuka kunketho yokuqala wehlela ocingweni esigabeni sokubethela (emisebenzini ye-poly_compress kanye ne-polyvec_compress), futhi hhayi ngesikhathi sokukhishwa kwemfihlo. Nokho, inketho yesibili ingase ibe usizo ekuhlaselweni kuphela ezimeni lapho inqubo isetshenziswa emisebenzini yokubethela kabusha lapho okukhiphayo kwe-ciphertext kuthathwa njengokuyimfihlo.

Ukuba sengozini sekuvele kulungisiwe kumalabhulali:

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

Amalabhulali awathintwanga ekuqaleni ukuba sengozini:

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

Ukuba sengozini kuhlala kungapeyishwanga kumalabhulali:

  • antontutoveanu/crystals-kyber-javascript,
  • I-Argyle-Software/kyber,
  • i-debian/src/liboqs/engazinzile/src/kem/kyber,
  • kudelskisecurity/crystals-go,
  • mupq/pqm4/crypto_kem/kyber* (Ngomhla ka-20 Disemba, inguqulo engu-1 kuphela yokuba sengozini eyalungiswa),
  • I-PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • I-PQClean/PQClean/crypto_kem/kyber*/clean,
  • randombit/botan (Ngomhlaka-20 Disemba, ubungozi obu-1 kuphela obulungisiwe),
  • rustpq/pqcrypto/pqcrypto-kyber (ukulungiswa kwengezwe ku-libsignal ngoJanuwari 5, kodwa ukuba sengozini akukakalungiswa ku-pqcrypto-kyber ngokwayo).

Source: opennet.ru

Engeza amazwana