Vulnerability in implementation of the post-quantum encryption algorithm Kyber

In exsequenda algorithmus encryptionis Kyber, quae certamen algorithmorum cryptographicarum renitentium ad vim violentam in quantum computatorium vicit, vulnerabilitas notabatur, quae impetus lateris canalis permittit ut claves secretas recreare nititur tempore operationum in decryptione mensurae. ciphertext ab oppugnante provisum. Problema afficit utrumque referentem exsecutionem mechanismi crystalli-Kyber KEM key encapsulationis et multae tertiae factionis bibliothecae Kyber-encryptionis encryptionis, incluso bibliothecae pqcrypto in nuntio signum adhibitae.

Essentia vulnerabilitas, quae nomen KyberSlash accepit, in usu divisionis operationis "t = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;" in processu decoctionis nuntium in quo divisor valorem secretum "t" cum specie "duplex" continet, et divisor est notissimus valor publicus KYBER_Q. Problema est tempus divisionis operationis non esse constantem, et in diversis ambitibus numerus CPU cyclorum pro divisione praestitus a input data pendet. Et sic, secundum mutationes operationis in temporibus, potest accipi notio naturae data in divisione intellectus.

Daniel J. Bernstein, vir notissimus in regione cryptographiae peritissimus, demonstrationem probandi operationem praeparare poterat, ut impetus in praxi perfici posset. Duobus ex tribus experimentis peractis, cum currit codicem in Raspberry Pi 2 tabula, potuit penitus recreare Kyber-512 clavem privatam fundatam in mensura temporis decoctionis. Modus etiam accommodari potest clavium Kyber-768 et Kyber-1024. Ad impetum feliciter peragendum, necesse est ut ciphertextus ab oppugnatore determinatus eodem clavi paribus utendo discursum sit et tempus operationis exsecutio accurate metiri posse.

Alius Leak (KyberSlash2) in nonnullis bibliothecis notus est, quod etiam accidit ob usum pretii secreti cum divisione faciendo. Differentiae a optionis primae descendunt ad vocationem in scaena encryptionis (in functionibus poly_compress et polyvec_compressis), et non in decryptione. Sed secunda optio potest esse utilis ad oppugnationem solum in casibus in quibus ratio in operationibus re-encryptionis adhibetur, in quibus in secretioribus sumptio ciphericis consideratur.

Iam vulnerabilitas in bibliothecis fixa est;

  • zig/lib/std/crypto/kyber_d00.zig (22 Decembris);
  • pq-crystal/kyber/ref (December 30);
  • symbolicsoft/kyber-k2so (December 19);
  • nubem / circl (Jan. 8)
  • aws/aws-lc/crypto/kyber (Jan. 4);
  • liboqs/src/kem/kyber (8 Ianuarii).

Librarii initio vulnerabilitate non afficiuntur;

  • boringssl/crypto/kyber,
  • filippo.io/mlkem768;
  • formosa-crypto/libjade/arbor/ma/src/crypto_kem,
  • kyber/communi/amd64/avx2;
  • formosa-crypto/libjade/tree/main/src/crypto_kem/kyber/communi/amd64/ref;
  • pq-crystal/kyber/avx2;
  • pqclean/crypto_kem/kyber*/avx2.

Nuditabilitas in bibliothecis manet unicus;

  • antontutoveanu/crystal-kyber-javascript;
  • Argyle-Software/kyber,
  • debian/src/liboqs/inconstans/src/kem/kyber;
  • kudelskisecurity/crystal-go,
  • mupq/pqm4/crypto_kem/kyber* (die 20 Decembris, tantum 1 versio vulnerabilitas fixa est);
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/purus;
  • randombit/botan (Die XX Decembris, tantum vulnerability I fixa est);
  • rustpq/pqcrypto/pqcrypto-kyber (fixus additus est libsignal die 5 mensis Ianuarii, sed vulnerabilitas in ipso pqcrypto-kyber nondum fixa est).

Source: opennet.ru