Botan 3.0.0 krüptograafilise raamatukogu väljalase

Botan 3.0.0 krüptograafiateek on nüüd saadaval kasutamiseks NeoPG projektis, GnuPG 2 hargis. Teek sisaldab suurt kogumit valmis primitiive, mida kasutatakse TLS-protokollis, X.509 sertifikaate, AEAD šifreid, TPM mooduleid , PKCS#11, paroolide räsimine ja postkvantkrüptograafia (räsipõhised allkirjad ja McEliece'il põhinev võtmeleping). Teek on kirjutatud C++ keeles ja seda levitatakse BSD litsentsi all.

Uue versiooni muudatuste hulgas:

  • Koodibaas võimaldab kasutada C++20 standardit (varem oli kasutusel C++11), vastavalt on tõstetud nõudeid kompilaatoritele - kokkupanekuks on nüüd vaja vähemalt GCC 11, Clang 14 või MSVC 2022. Tugi HP ja Pathscale kompilaatorite jaoks on lõpetatud, samuti Google NaCL ja IncludeOS projektid.
  • Suur osa muudatustest on tehtud, mis rikuvad tagasiühilduvust. Paljud aegunud päisefailid on eemaldatud, näiteks need, mis on spetsiifilised teatud algoritmidele (aes.h jne). Eemaldatud on varem vananenuks kuulutatud funktsioonide ja algoritmide juurutused (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Pseudojuhuslike arvude generaatori entroopia genereerimisel lõpetasime /proc ja /dev/random kasutamise. Mõned klassid (näiteks Data_Store), struktuurid ja loendid on API-st eemaldatud. Võimaluse korral on lõpetatud tagastamine ja paljaste siltide kasutamine.
  • Lisatud on TLS 1.3 protokolli tugi. TLS 1.0, TLS 1.1 ja DTLS 1.0 tugi on lõpetatud. DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK ja Camellia CBC šifrikomplektide, anonüümsete šifrite ja SHA-1 räside tugi on TLS-i juurutusest eemaldatud.
  • Lisatud on Kyberi postkvantkrüptograafia algoritmi tugi, mis on vastupidav kvantarvuti toorele jõule.
  • Lisatud on Dilithium postkvant-krüptograafia algoritmi tugi digitaalallkirjadega töötamiseks.
  • Lisatud on elliptilise kõvera punkti vormingu räsimise tugi, kasutades tehnikat SSWU (draft-irtf-cfrg-hash-to-curve).
  • Lisatud BLAKE2b krüptograafilise räsifunktsiooni tugi.
  • Välja on pakutud uus programmeerimisliides T::uus_objekt, mis tagastab ainulaadse_ptr palja "T*" kursori asemel.
  • Lisatud uued funktsioonid ja API: X509_DN::DER_encode, Public_Key::get_int_field, ideaalne_granularity, nõuab_kogu sõnumit, SymmetricAlgorithm::has_keying_material. Lisatud suur hulk uusi funktsioone kasutamiseks C (C89) koodis.
  • Argon2 algoritmi rakendamine kasutab AVX2 juhiseid.
  • Camellia, ARIA, SEED, DES ja Whirlpooli algoritmide rakenduste tabelite suurust on vähendatud.
  • Pakutakse välja uus DES/3DES-i rakendus, mis on kaitstud enamiku külgkanalite rünnakute klasside eest, mis hindavad vahemälu olekut.
  • SHACAL2 juurutus on optimeeritud ARMv8 ja POWER arhitektuuridel põhinevate süsteemide jaoks.
  • Paarsusbittide arvutamise, bcrypt/base64 teisenduse ja ASN.1 stringitüübi määramise kood vabastatakse tabeliotsingutest ja on nüüd töödeldavatest andmetest sõltumatu (töötab konstantse aja jooksul)

Allikas: opennet.ru

Lisa kommentaar